"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _PLType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PLTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PLType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    EN_PAYLOAD_NORMAL: _PLType.ValueType  # 0
    """"""
    EN_PAYLOAD_BASE64: _PLType.ValueType  # 1
    """"""

class PLType(_PLType, metaclass=_PLTypeEnumTypeWrapper):
    """"""

EN_PAYLOAD_NORMAL: PLType.ValueType  # 0
""""""
EN_PAYLOAD_BASE64: PLType.ValueType  # 1
""""""
global___PLType = PLType

class _CmdId:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CmdIdEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CmdId.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    EN_CMD_ID_INVALID: _CmdId.ValueType  # 0
    """非法cmd"""
    EN_CMD_ID_MSG_NOTIFY: _CmdId.ValueType  # 1
    """服务端主动发起"""
    EN_CMD_ID_KICK_OUT: _CmdId.ValueType  # 2
    """"""

class CmdId(_CmdId, metaclass=_CmdIdEnumTypeWrapper):
    """"""

EN_CMD_ID_INVALID: CmdId.ValueType  # 0
"""非法cmd"""
EN_CMD_ID_MSG_NOTIFY: CmdId.ValueType  # 1
"""服务端主动发起"""
EN_CMD_ID_KICK_OUT: CmdId.ValueType  # 2
""""""
global___CmdId = CmdId

@typing_extensions.final
class NotifyRsp(google.protobuf.message.Message):
    """"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    UID_FIELD_NUMBER: builtins.int
    CMD_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    PAYLOAD_TYPE_FIELD_NUMBER: builtins.int
    uid: builtins.int
    """"""
    cmd: builtins.int
    """命令id"""
    payload: builtins.bytes
    """"""
    payload_type: global___PLType.ValueType
    """"""
    def __init__(
        self,
        *,
        uid: builtins.int = ...,
        cmd: builtins.int = ...,
        payload: builtins.bytes = ...,
        payload_type: global___PLType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cmd", b"cmd", "payload", b"payload", "payload_type", b"payload_type", "uid", b"uid"]) -> None: ...

global___NotifyRsp = NotifyRsp

@typing_extensions.final
class Msg(google.protobuf.message.Message):
    """"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_UID_FIELD_NUMBER: builtins.int
    RECEIVER_TYPE_FIELD_NUMBER: builtins.int
    RECEIVER_ID_FIELD_NUMBER: builtins.int
    CLI_MSG_ID_FIELD_NUMBER: builtins.int
    MSG_TYPE_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    MSG_SEQNO_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    AT_UIDS_FIELD_NUMBER: builtins.int
    RECVER_IDS_FIELD_NUMBER: builtins.int
    MSG_KEY_FIELD_NUMBER: builtins.int
    MSG_STATUS_FIELD_NUMBER: builtins.int
    SYS_CANCEL_FIELD_NUMBER: builtins.int
    IS_MULTI_CHAT_FIELD_NUMBER: builtins.int
    WITHDRAW_SEQNO_FIELD_NUMBER: builtins.int
    NOTIFY_CODE_FIELD_NUMBER: builtins.int
    MSG_SOURCE_FIELD_NUMBER: builtins.int
    sender_uid: builtins.int
    """发送方uid"""
    receiver_type: builtins.int
    """接收方类型"""
    receiver_id: builtins.int
    """接收方id"""
    cli_msg_id: builtins.int
    """客户端的序列id 用于服务端去重"""
    msg_type: builtins.int
    """消息类型"""
    content: builtins.str
    """消息内容"""
    msg_seqno: builtins.int
    """服务端的序列号"""
    timestamp: builtins.int
    """消息发送时间（服务端时间）"""
    @property
    def at_uids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """at用户列表"""
    @property
    def recver_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """多人消息"""
    msg_key: builtins.int
    """消息唯一标示"""
    msg_status: builtins.int
    """消息状态"""
    sys_cancel: builtins.bool
    """是否为系统撤销"""
    is_multi_chat: builtins.int
    """是否是多聊消息 目前群通知管理员的部分通知属于该类消息"""
    withdraw_seqno: builtins.int
    """表示撤回的消息的session_seqno 用以后续的比较 实现未读数的正确显示"""
    notify_code: builtins.str
    """通知码"""
    msg_source: builtins.int
    """消息来源"""
    def __init__(
        self,
        *,
        sender_uid: builtins.int = ...,
        receiver_type: builtins.int = ...,
        receiver_id: builtins.int = ...,
        cli_msg_id: builtins.int = ...,
        msg_type: builtins.int = ...,
        content: builtins.str = ...,
        msg_seqno: builtins.int = ...,
        timestamp: builtins.int = ...,
        at_uids: collections.abc.Iterable[builtins.int] | None = ...,
        recver_ids: collections.abc.Iterable[builtins.int] | None = ...,
        msg_key: builtins.int = ...,
        msg_status: builtins.int = ...,
        sys_cancel: builtins.bool = ...,
        is_multi_chat: builtins.int = ...,
        withdraw_seqno: builtins.int = ...,
        notify_code: builtins.str = ...,
        msg_source: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["at_uids", b"at_uids", "cli_msg_id", b"cli_msg_id", "content", b"content", "is_multi_chat", b"is_multi_chat", "msg_key", b"msg_key", "msg_seqno", b"msg_seqno", "msg_source", b"msg_source", "msg_status", b"msg_status", "msg_type", b"msg_type", "notify_code", b"notify_code", "receiver_id", b"receiver_id", "receiver_type", b"receiver_type", "recver_ids", b"recver_ids", "sender_uid", b"sender_uid", "sys_cancel", b"sys_cancel", "timestamp", b"timestamp", "withdraw_seqno", b"withdraw_seqno"]) -> None: ...

global___Msg = Msg

@typing_extensions.final
class NotifyInfo(google.protobuf.message.Message):
    """"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MSG_TYPE_FIELD_NUMBER: builtins.int
    TALKER_ID_FIELD_NUMBER: builtins.int
    SESSION_TYPE_FIELD_NUMBER: builtins.int
    msg_type: builtins.int
    """"""
    talker_id: builtins.int
    """"""
    session_type: builtins.int
    """"""
    def __init__(
        self,
        *,
        msg_type: builtins.int = ...,
        talker_id: builtins.int = ...,
        session_type: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["msg_type", b"msg_type", "session_type", b"session_type", "talker_id", b"talker_id"]) -> None: ...

global___NotifyInfo = NotifyInfo

@typing_extensions.final
class ReqServerNotify(google.protobuf.message.Message):
    """"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LASTEST_SEQNO_FIELD_NUMBER: builtins.int
    INSTANT_MSG_FIELD_NUMBER: builtins.int
    NOTIFY_INFO_FIELD_NUMBER: builtins.int
    lastest_seqno: builtins.int
    """最新序列号"""
    @property
    def instant_msg(self) -> global___Msg:
        """即时消息 该类消息主要用于系统通知 当客户端sync msg时 不会sync到此类消息"""
    @property
    def notify_info(self) -> global___NotifyInfo:
        """"""
    def __init__(
        self,
        *,
        lastest_seqno: builtins.int = ...,
        instant_msg: global___Msg | None = ...,
        notify_info: global___NotifyInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["instant_msg", b"instant_msg", "notify_info", b"notify_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["instant_msg", b"instant_msg", "lastest_seqno", b"lastest_seqno", "notify_info", b"notify_info"]) -> None: ...

global___ReqServerNotify = ReqServerNotify
