from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class FriendRelationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    RELATION_UNSPECIFIED: _ClassVar[FriendRelationStatus]
    PENDING_SENT: _ClassVar[FriendRelationStatus]
    PENDING_RECEIVED: _ClassVar[FriendRelationStatus]
    ACCEPTED: _ClassVar[FriendRelationStatus]
    BLOCKED: _ClassVar[FriendRelationStatus]

class OnlinePresenceStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    STATUS_OFFLINE: _ClassVar[OnlinePresenceStatus]
    STATUS_ONLINE: _ClassVar[OnlinePresenceStatus]
    STATUS_AFK: _ClassVar[OnlinePresenceStatus]
    STATUS_IN_COMBAT: _ClassVar[OnlinePresenceStatus]

class SocialErrorCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    SOCIAL_OK: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_PLAYER_NOT_FOUND: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_ALREADY_FRIENDS: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_REQUEST_ALREADY_SENT: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_REQUEST_NOT_FOUND: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_FRIEND_LIST_FULL: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_TARGET_FRIEND_LIST_FULL: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_BLOCKED_BY_TARGET: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_TARGET_IS_SELF: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_NOTE_TOO_LONG: _ClassVar[SocialErrorCode]
    SOCIAL_ERR_RATE_LIMITED: _ClassVar[SocialErrorCode]

class GuildMemberRole(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    GUILD_ROLE_UNSPECIFIED: _ClassVar[GuildMemberRole]
    GUILD_MEMBER: _ClassVar[GuildMemberRole]
    GUILD_OFFICER: _ClassVar[GuildMemberRole]
    GUILD_MASTER: _ClassVar[GuildMemberRole]
RELATION_UNSPECIFIED: FriendRelationStatus
PENDING_SENT: FriendRelationStatus
PENDING_RECEIVED: FriendRelationStatus
ACCEPTED: FriendRelationStatus
BLOCKED: FriendRelationStatus
STATUS_OFFLINE: OnlinePresenceStatus
STATUS_ONLINE: OnlinePresenceStatus
STATUS_AFK: OnlinePresenceStatus
STATUS_IN_COMBAT: OnlinePresenceStatus
SOCIAL_OK: SocialErrorCode
SOCIAL_ERR_PLAYER_NOT_FOUND: SocialErrorCode
SOCIAL_ERR_ALREADY_FRIENDS: SocialErrorCode
SOCIAL_ERR_REQUEST_ALREADY_SENT: SocialErrorCode
SOCIAL_ERR_REQUEST_NOT_FOUND: SocialErrorCode
SOCIAL_ERR_FRIEND_LIST_FULL: SocialErrorCode
SOCIAL_ERR_TARGET_FRIEND_LIST_FULL: SocialErrorCode
SOCIAL_ERR_BLOCKED_BY_TARGET: SocialErrorCode
SOCIAL_ERR_TARGET_IS_SELF: SocialErrorCode
SOCIAL_ERR_NOTE_TOO_LONG: SocialErrorCode
SOCIAL_ERR_RATE_LIMITED: SocialErrorCode
GUILD_ROLE_UNSPECIFIED: GuildMemberRole
GUILD_MEMBER: GuildMemberRole
GUILD_OFFICER: GuildMemberRole
GUILD_MASTER: GuildMemberRole

class FriendEntry(_message.Message):
    __slots__ = ("account_id", "friend_account_id", "friend_name", "friend_class", "friend_level", "current_zone_id", "current_zone_name", "presence_status", "friend_note", "status", "created_at_ms", "last_seen_ms")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    FRIEND_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    FRIEND_NAME_FIELD_NUMBER: _ClassVar[int]
    FRIEND_CLASS_FIELD_NUMBER: _ClassVar[int]
    FRIEND_LEVEL_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_NAME_FIELD_NUMBER: _ClassVar[int]
    PRESENCE_STATUS_FIELD_NUMBER: _ClassVar[int]
    FRIEND_NOTE_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_MS_FIELD_NUMBER: _ClassVar[int]
    LAST_SEEN_MS_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    friend_account_id: str
    friend_name: str
    friend_class: str
    friend_level: int
    current_zone_id: str
    current_zone_name: str
    presence_status: OnlinePresenceStatus
    friend_note: str
    status: FriendRelationStatus
    created_at_ms: int
    last_seen_ms: int
    def __init__(self, account_id: _Optional[str] = ..., friend_account_id: _Optional[str] = ..., friend_name: _Optional[str] = ..., friend_class: _Optional[str] = ..., friend_level: _Optional[int] = ..., current_zone_id: _Optional[str] = ..., current_zone_name: _Optional[str] = ..., presence_status: _Optional[_Union[OnlinePresenceStatus, str]] = ..., friend_note: _Optional[str] = ..., status: _Optional[_Union[FriendRelationStatus, str]] = ..., created_at_ms: _Optional[int] = ..., last_seen_ms: _Optional[int] = ...) -> None: ...

class BlockedPlayerEntry(_message.Message):
    __slots__ = ("account_id", "blocked_account_id", "blocked_name", "blocked_at_ms")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    BLOCKED_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    BLOCKED_NAME_FIELD_NUMBER: _ClassVar[int]
    BLOCKED_AT_MS_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    blocked_account_id: str
    blocked_name: str
    blocked_at_ms: int
    def __init__(self, account_id: _Optional[str] = ..., blocked_account_id: _Optional[str] = ..., blocked_name: _Optional[str] = ..., blocked_at_ms: _Optional[int] = ...) -> None: ...

class GuildRosterMember(_message.Message):
    __slots__ = ("player_id", "player_name", "character_class", "level", "role", "current_zone_id", "current_zone_name", "presence_status", "last_seen_ms")
    PLAYER_ID_FIELD_NUMBER: _ClassVar[int]
    PLAYER_NAME_FIELD_NUMBER: _ClassVar[int]
    CHARACTER_CLASS_FIELD_NUMBER: _ClassVar[int]
    LEVEL_FIELD_NUMBER: _ClassVar[int]
    ROLE_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_NAME_FIELD_NUMBER: _ClassVar[int]
    PRESENCE_STATUS_FIELD_NUMBER: _ClassVar[int]
    LAST_SEEN_MS_FIELD_NUMBER: _ClassVar[int]
    player_id: str
    player_name: str
    character_class: str
    level: int
    role: GuildMemberRole
    current_zone_id: str
    current_zone_name: str
    presence_status: OnlinePresenceStatus
    last_seen_ms: int
    def __init__(self, player_id: _Optional[str] = ..., player_name: _Optional[str] = ..., character_class: _Optional[str] = ..., level: _Optional[int] = ..., role: _Optional[_Union[GuildMemberRole, str]] = ..., current_zone_id: _Optional[str] = ..., current_zone_name: _Optional[str] = ..., presence_status: _Optional[_Union[OnlinePresenceStatus, str]] = ..., last_seen_ms: _Optional[int] = ...) -> None: ...

class SendFriendRequestRequest(_message.Message):
    __slots__ = ("account_id", "target_name_or_id")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_NAME_OR_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    target_name_or_id: str
    def __init__(self, account_id: _Optional[str] = ..., target_name_or_id: _Optional[str] = ...) -> None: ...

class SendFriendRequestResponse(_message.Message):
    __slots__ = ("success", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class FriendRequestNotice(_message.Message):
    __slots__ = ("sender_account_id", "sender_name", "sender_class", "sender_level", "timestamp_ms")
    SENDER_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    SENDER_NAME_FIELD_NUMBER: _ClassVar[int]
    SENDER_CLASS_FIELD_NUMBER: _ClassVar[int]
    SENDER_LEVEL_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
    sender_account_id: str
    sender_name: str
    sender_class: str
    sender_level: int
    timestamp_ms: int
    def __init__(self, sender_account_id: _Optional[str] = ..., sender_name: _Optional[str] = ..., sender_class: _Optional[str] = ..., sender_level: _Optional[int] = ..., timestamp_ms: _Optional[int] = ...) -> None: ...

class RespondFriendRequestRequest(_message.Message):
    __slots__ = ("account_id", "target_account_id", "accept")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    ACCEPT_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    target_account_id: str
    accept: bool
    def __init__(self, account_id: _Optional[str] = ..., target_account_id: _Optional[str] = ..., accept: _Optional[bool] = ...) -> None: ...

class RespondFriendRequestResponse(_message.Message):
    __slots__ = ("success", "friend_entry", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    FRIEND_ENTRY_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    friend_entry: FriendEntry
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., friend_entry: _Optional[_Union[FriendEntry, _Mapping]] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class RemoveFriendRequest(_message.Message):
    __slots__ = ("account_id", "friend_account_id")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    FRIEND_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    friend_account_id: str
    def __init__(self, account_id: _Optional[str] = ..., friend_account_id: _Optional[str] = ...) -> None: ...

class RemoveFriendResponse(_message.Message):
    __slots__ = ("success", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class BlockPlayerRequest(_message.Message):
    __slots__ = ("account_id", "target_account_id")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    target_account_id: str
    def __init__(self, account_id: _Optional[str] = ..., target_account_id: _Optional[str] = ...) -> None: ...

class BlockPlayerResponse(_message.Message):
    __slots__ = ("success", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class UnblockPlayerRequest(_message.Message):
    __slots__ = ("account_id", "target_account_id")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    TARGET_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    target_account_id: str
    def __init__(self, account_id: _Optional[str] = ..., target_account_id: _Optional[str] = ...) -> None: ...

class UnblockPlayerResponse(_message.Message):
    __slots__ = ("success", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class SetFriendNoteRequest(_message.Message):
    __slots__ = ("account_id", "friend_account_id", "friend_note")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    FRIEND_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    FRIEND_NOTE_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    friend_account_id: str
    friend_note: str
    def __init__(self, account_id: _Optional[str] = ..., friend_account_id: _Optional[str] = ..., friend_note: _Optional[str] = ...) -> None: ...

class SetFriendNoteResponse(_message.Message):
    __slots__ = ("success", "error_code", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_code: SocialErrorCode
    error_message: str
    def __init__(self, success: _Optional[bool] = ..., error_code: _Optional[_Union[SocialErrorCode, str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class GetFriendListRequest(_message.Message):
    __slots__ = ("account_id",)
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    def __init__(self, account_id: _Optional[str] = ...) -> None: ...

class GetFriendListResponse(_message.Message):
    __slots__ = ("friends", "total_online")
    FRIENDS_FIELD_NUMBER: _ClassVar[int]
    TOTAL_ONLINE_FIELD_NUMBER: _ClassVar[int]
    friends: _containers.RepeatedCompositeFieldContainer[FriendEntry]
    total_online: int
    def __init__(self, friends: _Optional[_Iterable[_Union[FriendEntry, _Mapping]]] = ..., total_online: _Optional[int] = ...) -> None: ...

class GetBlockListRequest(_message.Message):
    __slots__ = ("account_id",)
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    def __init__(self, account_id: _Optional[str] = ...) -> None: ...

class GetBlockListResponse(_message.Message):
    __slots__ = ("blocked_players",)
    BLOCKED_PLAYERS_FIELD_NUMBER: _ClassVar[int]
    blocked_players: _containers.RepeatedCompositeFieldContainer[BlockedPlayerEntry]
    def __init__(self, blocked_players: _Optional[_Iterable[_Union[BlockedPlayerEntry, _Mapping]]] = ...) -> None: ...

class GetGuildRosterRequest(_message.Message):
    __slots__ = ("guild_id",)
    GUILD_ID_FIELD_NUMBER: _ClassVar[int]
    guild_id: str
    def __init__(self, guild_id: _Optional[str] = ...) -> None: ...

class GetGuildRosterResponse(_message.Message):
    __slots__ = ("members", "total_online")
    MEMBERS_FIELD_NUMBER: _ClassVar[int]
    TOTAL_ONLINE_FIELD_NUMBER: _ClassVar[int]
    members: _containers.RepeatedCompositeFieldContainer[GuildRosterMember]
    total_online: int
    def __init__(self, members: _Optional[_Iterable[_Union[GuildRosterMember, _Mapping]]] = ..., total_online: _Optional[int] = ...) -> None: ...

class PresenceUpdateNotice(_message.Message):
    __slots__ = ("account_id", "character_name", "character_class", "level", "current_zone_id", "current_zone_name", "status", "timestamp_ms")
    ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    CHARACTER_NAME_FIELD_NUMBER: _ClassVar[int]
    CHARACTER_CLASS_FIELD_NUMBER: _ClassVar[int]
    LEVEL_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_ID_FIELD_NUMBER: _ClassVar[int]
    CURRENT_ZONE_NAME_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
    account_id: str
    character_name: str
    character_class: str
    level: int
    current_zone_id: str
    current_zone_name: str
    status: OnlinePresenceStatus
    timestamp_ms: int
    def __init__(self, account_id: _Optional[str] = ..., character_name: _Optional[str] = ..., character_class: _Optional[str] = ..., level: _Optional[int] = ..., current_zone_id: _Optional[str] = ..., current_zone_name: _Optional[str] = ..., status: _Optional[_Union[OnlinePresenceStatus, str]] = ..., timestamp_ms: _Optional[int] = ...) -> None: ...
