"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
from builtins import (
    bool,
    bytes,
    int,
)

from google.protobuf.descriptor import (
    Descriptor,
    FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
)

from google.protobuf.message import (
    Message,
)

from typing import (
    Iterable,
    Optional,
    Text,
)

from typing_extensions import (
    Literal,
)


DESCRIPTOR: FileDescriptor

class AIOGrayTipsInfo(Message):
    """tencent/im/oidb/cmd0x857/TroopTips0x857.java

    """
    DESCRIPTOR: Descriptor
    SHOW_LASTEST_FIELD_NUMBER: int
    CONTENT_FIELD_NUMBER: int
    REMIND_FIELD_NUMBER: int
    BRIEF_FIELD_NUMBER: int
    RECEIVER_UIN_FIELD_NUMBER: int
    RELIAO_ADMIN_OPT_FIELD_NUMBER: int
    ROBOT_GROUP_OPT_FIELD_NUMBER: int
    show_lastest: int
    content: bytes
    remind: int
    brief: bytes
    receiver_uin: int
    reliao_admin_opt: int
    robot_group_opt: int
    def __init__(self,
        *,
        show_lastest: Optional[int] = ...,
        content: Optional[bytes] = ...,
        remind: Optional[int] = ...,
        brief: Optional[bytes] = ...,
        receiver_uin: Optional[int] = ...,
        reliao_admin_opt: Optional[int] = ...,
        robot_group_opt: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["brief",b"brief","content",b"content","receiver_uin",b"receiver_uin","reliao_admin_opt",b"reliao_admin_opt","remind",b"remind","robot_group_opt",b"robot_group_opt","show_lastest",b"show_lastest"]) -> bool: ...
    def ClearField(self, field_name: Literal["brief",b"brief","content",b"content","receiver_uin",b"receiver_uin","reliao_admin_opt",b"reliao_admin_opt","remind",b"remind","robot_group_opt",b"robot_group_opt","show_lastest",b"show_lastest"]) -> None: ...

class AIOTopTipsInfo(Message):
    DESCRIPTOR: Descriptor
    CONTENT_FIELD_NUMBER: int
    ICON_FIELD_NUMBER: int
    ENUM_ACTION_FIELD_NUMBER: int
    URL_FIELD_NUMBER: int
    DATA_FIELD_NUMBER: int
    DATA_I_FIELD_NUMBER: int
    DATA_A_FIELD_NUMBER: int
    DATA_P_FIELD_NUMBER: int
    content: bytes
    icon: int
    enum_action: int
    url: bytes
    data: bytes
    data_i: bytes
    data_a: bytes
    data_p: bytes
    def __init__(self,
        *,
        content: Optional[bytes] = ...,
        icon: Optional[int] = ...,
        enum_action: Optional[int] = ...,
        url: Optional[bytes] = ...,
        data: Optional[bytes] = ...,
        data_i: Optional[bytes] = ...,
        data_a: Optional[bytes] = ...,
        data_p: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["content",b"content","data",b"data","data_a",b"data_a","data_i",b"data_i","data_p",b"data_p","enum_action",b"enum_action","icon",b"icon","url",b"url"]) -> bool: ...
    def ClearField(self, field_name: Literal["content",b"content","data",b"data","data_a",b"data_a","data_i",b"data_i","data_p",b"data_p","enum_action",b"enum_action","icon",b"icon","url",b"url"]) -> None: ...

class FloatedTipsInfo(Message):
    DESCRIPTOR: Descriptor
    CONTENT_FIELD_NUMBER: int
    content: bytes
    def __init__(self,
        *,
        content: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["content",b"content"]) -> bool: ...
    def ClearField(self, field_name: Literal["content",b"content"]) -> None: ...

class GeneralGrayTipInfo(Message):
    DESCRIPTOR: Descriptor
    BUSI_TYPE_FIELD_NUMBER: int
    BUSI_ID_FIELD_NUMBER: int
    CTRL_FLAG_FIELD_NUMBER: int
    C2C_TYPE_FIELD_NUMBER: int
    SERVICE_TYPE_FIELD_NUMBER: int
    TEMPL_ID_FIELD_NUMBER: int
    TEMPL_PARAM_FIELD_NUMBER: int
    CONTENT_FIELD_NUMBER: int
    TIPS_SEQ_ID_FIELD_NUMBER: int
    PB_RESERV_FIELD_NUMBER: int
    busi_type: int
    busi_id: int
    ctrl_flag: int
    c2c_type: int
    service_type: int
    templ_id: int
    @property
    def templ_param(self) -> RepeatedCompositeFieldContainer[TemplParam]: ...
    content: bytes
    tips_seq_id: int
    pb_reserv: bytes
    def __init__(self,
        *,
        busi_type: Optional[int] = ...,
        busi_id: Optional[int] = ...,
        ctrl_flag: Optional[int] = ...,
        c2c_type: Optional[int] = ...,
        service_type: Optional[int] = ...,
        templ_id: Optional[int] = ...,
        templ_param: Optional[Iterable[TemplParam]] = ...,
        content: Optional[bytes] = ...,
        tips_seq_id: Optional[int] = ...,
        pb_reserv: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["busi_id",b"busi_id","busi_type",b"busi_type","c2c_type",b"c2c_type","content",b"content","ctrl_flag",b"ctrl_flag","pb_reserv",b"pb_reserv","service_type",b"service_type","templ_id",b"templ_id","tips_seq_id",b"tips_seq_id"]) -> bool: ...
    def ClearField(self, field_name: Literal["busi_id",b"busi_id","busi_type",b"busi_type","c2c_type",b"c2c_type","content",b"content","ctrl_flag",b"ctrl_flag","pb_reserv",b"pb_reserv","service_type",b"service_type","templ_id",b"templ_id","templ_param",b"templ_param","tips_seq_id",b"tips_seq_id"]) -> None: ...

class GoldMsgTipsElem(Message):
    DESCRIPTOR: Descriptor
    TYPE_FIELD_NUMBER: int
    BILLNO_FIELD_NUMBER: int
    RESULT_FIELD_NUMBER: int
    AMOUNT_FIELD_NUMBER: int
    TOTAL_FIELD_NUMBER: int
    INTERVAL_FIELD_NUMBER: int
    FINISH_FIELD_NUMBER: int
    UIN_FIELD_NUMBER: int
    ACTION_FIELD_NUMBER: int
    type: int
    billno: Text
    result: int
    amount: int
    total: int
    interval: int
    finish: int
    @property
    def uin(self) -> RepeatedScalarFieldContainer[int]: ...
    action: int
    def __init__(self,
        *,
        type: Optional[int] = ...,
        billno: Optional[Text] = ...,
        result: Optional[int] = ...,
        amount: Optional[int] = ...,
        total: Optional[int] = ...,
        interval: Optional[int] = ...,
        finish: Optional[int] = ...,
        uin: Optional[Iterable[int]] = ...,
        action: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["action",b"action","amount",b"amount","billno",b"billno","finish",b"finish","interval",b"interval","result",b"result","total",b"total","type",b"type"]) -> bool: ...
    def ClearField(self, field_name: Literal["action",b"action","amount",b"amount","billno",b"billno","finish",b"finish","interval",b"interval","result",b"result","total",b"total","type",b"type","uin",b"uin"]) -> None: ...

class GrayData(Message):
    DESCRIPTOR: Descriptor
    ALL_READ_FIELD_NUMBER: int
    FEED_ID_FIELD_NUMBER: int
    all_read: int
    feed_id: Text
    def __init__(self,
        *,
        all_read: Optional[int] = ...,
        feed_id: Optional[Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["all_read",b"all_read","feed_id",b"feed_id"]) -> bool: ...
    def ClearField(self, field_name: Literal["all_read",b"all_read","feed_id",b"feed_id"]) -> None: ...

class GroupAnnounceTBCInfo(Message):
    DESCRIPTOR: Descriptor
    FEEDS_ID_FIELD_NUMBER: int
    GROUP_ID_FIELD_NUMBER: int
    ACTION_FIELD_NUMBER: int
    feeds_id: bytes
    group_id: int
    action: int
    def __init__(self,
        *,
        feeds_id: Optional[bytes] = ...,
        group_id: Optional[int] = ...,
        action: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["action",b"action","feeds_id",b"feeds_id","group_id",b"group_id"]) -> bool: ...
    def ClearField(self, field_name: Literal["action",b"action","feeds_id",b"feeds_id","group_id",b"group_id"]) -> None: ...

class GroupAsyncNotify(Message):
    DESCRIPTOR: Descriptor
    MSG_TYPE_FIELD_NUMBER: int
    MSG_SEQ_FIELD_NUMBER: int
    msg_type: int
    msg_seq: int
    def __init__(self,
        *,
        msg_type: Optional[int] = ...,
        msg_seq: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["msg_seq",b"msg_seq","msg_type",b"msg_type"]) -> bool: ...
    def ClearField(self, field_name: Literal["msg_seq",b"msg_seq","msg_type",b"msg_type"]) -> None: ...

class GroupInfoChange(Message):
    DESCRIPTOR: Descriptor
    GROUP_HONOR_SWITCH_FIELD_NUMBER: int
    GROUP_MEMBER_LEVEL_SWITCH_FIELD_NUMBER: int
    GROUP_FLAGEXT4_FIELD_NUMBER: int
    APPEAL_DEADLINE_FIELD_NUMBER: int
    GROUP_FLAG_FIELD_NUMBER: int
    GROUP_FLAGEXT3_FIELD_NUMBER: int
    GROUP_CLASS_EXT_FIELD_NUMBER: int
    GROUP_INFO_EXT_SEQ_FIELD_NUMBER: int
    group_honor_switch: int
    group_member_level_switch: int
    group_flagext4: int
    appeal_deadline: int
    group_flag: int
    group_flagext3: int
    group_class_ext: int
    group_info_ext_seq: int
    def __init__(self,
        *,
        group_honor_switch: Optional[int] = ...,
        group_member_level_switch: Optional[int] = ...,
        group_flagext4: Optional[int] = ...,
        appeal_deadline: Optional[int] = ...,
        group_flag: Optional[int] = ...,
        group_flagext3: Optional[int] = ...,
        group_class_ext: Optional[int] = ...,
        group_info_ext_seq: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["appeal_deadline",b"appeal_deadline","group_class_ext",b"group_class_ext","group_flag",b"group_flag","group_flagext3",b"group_flagext3","group_flagext4",b"group_flagext4","group_honor_switch",b"group_honor_switch","group_info_ext_seq",b"group_info_ext_seq","group_member_level_switch",b"group_member_level_switch"]) -> bool: ...
    def ClearField(self, field_name: Literal["appeal_deadline",b"appeal_deadline","group_class_ext",b"group_class_ext","group_flag",b"group_flag","group_flagext3",b"group_flagext3","group_flagext4",b"group_flagext4","group_honor_switch",b"group_honor_switch","group_info_ext_seq",b"group_info_ext_seq","group_member_level_switch",b"group_member_level_switch"]) -> None: ...

class GroupNotifyInfo(Message):
    DESCRIPTOR: Descriptor
    AUTO_PULL_FLAG_FIELD_NUMBER: int
    FEEDS_ID_FIELD_NUMBER: int
    auto_pull_flag: int
    feeds_id: bytes
    def __init__(self,
        *,
        auto_pull_flag: Optional[int] = ...,
        feeds_id: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["auto_pull_flag",b"auto_pull_flag","feeds_id",b"feeds_id"]) -> bool: ...
    def ClearField(self, field_name: Literal["auto_pull_flag",b"auto_pull_flag","feeds_id",b"feeds_id"]) -> None: ...

class InstCtrl(Message):
    DESCRIPTOR: Descriptor
    SEND_TO_INST_FIELD_NUMBER: int
    EXCLUDE_INST_FIELD_NUMBER: int
    FROM_INST_FIELD_NUMBER: int
    @property
    def send_to_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
    @property
    def exclude_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
    @property
    def from_inst(self) -> InstInfo: ...
    def __init__(self,
        *,
        send_to_inst: Optional[Iterable[InstInfo]] = ...,
        exclude_inst: Optional[Iterable[InstInfo]] = ...,
        from_inst: Optional[InstInfo] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["from_inst",b"from_inst"]) -> bool: ...
    def ClearField(self, field_name: Literal["exclude_inst",b"exclude_inst","from_inst",b"from_inst","send_to_inst",b"send_to_inst"]) -> None: ...

class InstInfo(Message):
    DESCRIPTOR: Descriptor
    APPPID_FIELD_NUMBER: int
    INSTID_FIELD_NUMBER: int
    PLATFORM_FIELD_NUMBER: int
    OPEN_APPID_FIELD_NUMBER: int
    PRODUCTID_FIELD_NUMBER: int
    SSO_BID_FIELD_NUMBER: int
    GUID_FIELD_NUMBER: int
    VER_MIN_FIELD_NUMBER: int
    VER_MAX_FIELD_NUMBER: int
    apppid: int
    instid: int
    platform: int
    open_appid: int
    productid: int
    sso_bid: int
    guid: bytes
    ver_min: int
    ver_max: int
    def __init__(self,
        *,
        apppid: Optional[int] = ...,
        instid: Optional[int] = ...,
        platform: Optional[int] = ...,
        open_appid: Optional[int] = ...,
        productid: Optional[int] = ...,
        sso_bid: Optional[int] = ...,
        guid: Optional[bytes] = ...,
        ver_min: Optional[int] = ...,
        ver_max: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["apppid",b"apppid","guid",b"guid","instid",b"instid","open_appid",b"open_appid","platform",b"platform","productid",b"productid","sso_bid",b"sso_bid","ver_max",b"ver_max","ver_min",b"ver_min"]) -> bool: ...
    def ClearField(self, field_name: Literal["apppid",b"apppid","guid",b"guid","instid",b"instid","open_appid",b"open_appid","platform",b"platform","productid",b"productid","sso_bid",b"sso_bid","ver_max",b"ver_max","ver_min",b"ver_min"]) -> None: ...

class LbsShareChangePushInfo(Message):
    DESCRIPTOR: Descriptor
    MSG_TYPE_FIELD_NUMBER: int
    MSG_INFO_FIELD_NUMBER: int
    VERSION_CTRL_FIELD_NUMBER: int
    GROUP_ID_FIELD_NUMBER: int
    OPER_UIN_FIELD_NUMBER: int
    GRAY_TIPS_FIELD_NUMBER: int
    MSG_SEQ_FIELD_NUMBER: int
    JOIN_NUMS_FIELD_NUMBER: int
    PUSH_TYPE_FIELD_NUMBER: int
    EXT_INFO_FIELD_NUMBER: int
    msg_type: int
    msg_info: bytes
    version_ctrl: bytes
    group_id: int
    oper_uin: int
    gray_tips: bytes
    msg_seq: int
    join_nums: int
    push_type: int
    ext_info: bytes
    def __init__(self,
        *,
        msg_type: Optional[int] = ...,
        msg_info: Optional[bytes] = ...,
        version_ctrl: Optional[bytes] = ...,
        group_id: Optional[int] = ...,
        oper_uin: Optional[int] = ...,
        gray_tips: Optional[bytes] = ...,
        msg_seq: Optional[int] = ...,
        join_nums: Optional[int] = ...,
        push_type: Optional[int] = ...,
        ext_info: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","push_type",b"push_type","version_ctrl",b"version_ctrl"]) -> bool: ...
    def ClearField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","push_type",b"push_type","version_ctrl",b"version_ctrl"]) -> None: ...

class LuckyBagNotify(Message):
    DESCRIPTOR: Descriptor
    MSG_TIPS_FIELD_NUMBER: int
    msg_tips: bytes
    def __init__(self,
        *,
        msg_tips: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["msg_tips",b"msg_tips"]) -> bool: ...
    def ClearField(self, field_name: Literal["msg_tips",b"msg_tips"]) -> None: ...

class MediaChangePushInfo(Message):
    DESCRIPTOR: Descriptor
    class PersonalSetting(Message):
        DESCRIPTOR: Descriptor
        THEME_ID_FIELD_NUMBER: int
        PLAYER_ID_FIELD_NUMBER: int
        FONT_ID_FIELD_NUMBER: int
        theme_id: int
        player_id: int
        font_id: int
        def __init__(self,
            *,
            theme_id: Optional[int] = ...,
            player_id: Optional[int] = ...,
            font_id: Optional[int] = ...,
            ) -> None: ...
        def HasField(self, field_name: Literal["font_id",b"font_id","player_id",b"player_id","theme_id",b"theme_id"]) -> bool: ...
        def ClearField(self, field_name: Literal["font_id",b"font_id","player_id",b"player_id","theme_id",b"theme_id"]) -> None: ...

    MSG_TYPE_FIELD_NUMBER: int
    MSG_INFO_FIELD_NUMBER: int
    VERSION_CTRL_FIELD_NUMBER: int
    GROUP_ID_FIELD_NUMBER: int
    OPER_UIN_FIELD_NUMBER: int
    GRAY_TIPS_FIELD_NUMBER: int
    MSG_SEQ_FIELD_NUMBER: int
    JOIN_NUMS_FIELD_NUMBER: int
    PER_SETTING_FIELD_NUMBER: int
    PLAY_MODE_FIELD_NUMBER: int
    IS_JOIN_WHEN_START_FIELD_NUMBER: int
    MEDIA_TYPE_FIELD_NUMBER: int
    EXT_INFO_FIELD_NUMBER: int
    msg_type: int
    msg_info: bytes
    version_ctrl: bytes
    group_id: int
    oper_uin: int
    gray_tips: bytes
    msg_seq: int
    join_nums: int
    @property
    def per_setting(self) -> MediaChangePushInfo.PersonalSetting: ...
    play_mode: int
    is_join_when_start: bool
    media_type: int
    ext_info: bytes
    def __init__(self,
        *,
        msg_type: Optional[int] = ...,
        msg_info: Optional[bytes] = ...,
        version_ctrl: Optional[bytes] = ...,
        group_id: Optional[int] = ...,
        oper_uin: Optional[int] = ...,
        gray_tips: Optional[bytes] = ...,
        msg_seq: Optional[int] = ...,
        join_nums: Optional[int] = ...,
        per_setting: Optional[MediaChangePushInfo.PersonalSetting] = ...,
        play_mode: Optional[int] = ...,
        is_join_when_start: Optional[bool] = ...,
        media_type: Optional[int] = ...,
        ext_info: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","is_join_when_start",b"is_join_when_start","join_nums",b"join_nums","media_type",b"media_type","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","per_setting",b"per_setting","play_mode",b"play_mode","version_ctrl",b"version_ctrl"]) -> bool: ...
    def ClearField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","is_join_when_start",b"is_join_when_start","join_nums",b"join_nums","media_type",b"media_type","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","per_setting",b"per_setting","play_mode",b"play_mode","version_ctrl",b"version_ctrl"]) -> None: ...

class MessageBoxInfo(Message):
    DESCRIPTOR: Descriptor
    CONTENT_FIELD_NUMBER: int
    TITLE_FIELD_NUMBER: int
    BUTTON_FIELD_NUMBER: int
    content: bytes
    title: bytes
    button: bytes
    def __init__(self,
        *,
        content: Optional[bytes] = ...,
        title: Optional[bytes] = ...,
        button: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["button",b"button","content",b"content","title",b"title"]) -> bool: ...
    def ClearField(self, field_name: Literal["button",b"button","content",b"content","title",b"title"]) -> None: ...

class MessageRecallReminder(Message):
    DESCRIPTOR: Descriptor
    class MessageMeta(Message):
        DESCRIPTOR: Descriptor
        SEQ_FIELD_NUMBER: int
        TIME_FIELD_NUMBER: int
        MSG_RANDOM_FIELD_NUMBER: int
        MSG_TYPE_FIELD_NUMBER: int
        MSG_FLAG_FIELD_NUMBER: int
        AUTHOR_UIN_FIELD_NUMBER: int
        IS_ANONY_MSG_FIELD_NUMBER: int
        seq: int
        time: int
        msg_random: int
        msg_type: int
        msg_flag: int
        author_uin: int
        is_anony_msg: int
        def __init__(self,
            *,
            seq: Optional[int] = ...,
            time: Optional[int] = ...,
            msg_random: Optional[int] = ...,
            msg_type: Optional[int] = ...,
            msg_flag: Optional[int] = ...,
            author_uin: Optional[int] = ...,
            is_anony_msg: Optional[int] = ...,
            ) -> None: ...
        def HasField(self, field_name: Literal["author_uin",b"author_uin","is_anony_msg",b"is_anony_msg","msg_flag",b"msg_flag","msg_random",b"msg_random","msg_type",b"msg_type","seq",b"seq","time",b"time"]) -> bool: ...
        def ClearField(self, field_name: Literal["author_uin",b"author_uin","is_anony_msg",b"is_anony_msg","msg_flag",b"msg_flag","msg_random",b"msg_random","msg_type",b"msg_type","seq",b"seq","time",b"time"]) -> None: ...

    class WithDrawWordingInfo(Message):
        DESCRIPTOR: Descriptor
        ITEM_ID_FIELD_NUMBER: int
        ITEM_NAME_FIELD_NUMBER: int
        item_id: int
        item_name: Text
        def __init__(self,
            *,
            item_id: Optional[int] = ...,
            item_name: Optional[Text] = ...,
            ) -> None: ...
        def HasField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> bool: ...
        def ClearField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> None: ...

    UIN_FIELD_NUMBER: int
    NICKNAME_FIELD_NUMBER: int
    RECALLED_MSG_LIST_FIELD_NUMBER: int
    REMINDER_CONTENT_FIELD_NUMBER: int
    USERDEF_FIELD_NUMBER: int
    GROUP_TYPE_FIELD_NUMBER: int
    OP_TYPE_FIELD_NUMBER: int
    ADMIN_UIN_FIELD_NUMBER: int
    WORDING_INFO_FIELD_NUMBER: int
    uin: int
    nickname: bytes
    @property
    def recalled_msg_list(self) -> RepeatedCompositeFieldContainer[MessageRecallReminder.MessageMeta]: ...
    reminder_content: bytes
    userdef: bytes
    group_type: int
    op_type: int
    admin_uin: int
    @property
    def wording_info(self) -> MessageRecallReminder.WithDrawWordingInfo: ...
    def __init__(self,
        *,
        uin: Optional[int] = ...,
        nickname: Optional[bytes] = ...,
        recalled_msg_list: Optional[Iterable[MessageRecallReminder.MessageMeta]] = ...,
        reminder_content: Optional[bytes] = ...,
        userdef: Optional[bytes] = ...,
        group_type: Optional[int] = ...,
        op_type: Optional[int] = ...,
        admin_uin: Optional[int] = ...,
        wording_info: Optional[MessageRecallReminder.WithDrawWordingInfo] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["admin_uin",b"admin_uin","group_type",b"group_type","nickname",b"nickname","op_type",b"op_type","reminder_content",b"reminder_content","uin",b"uin","userdef",b"userdef","wording_info",b"wording_info"]) -> bool: ...
    def ClearField(self, field_name: Literal["admin_uin",b"admin_uin","group_type",b"group_type","nickname",b"nickname","op_type",b"op_type","recalled_msg_list",b"recalled_msg_list","reminder_content",b"reminder_content","uin",b"uin","userdef",b"userdef","wording_info",b"wording_info"]) -> None: ...

class MiniAppNotify(Message):
    DESCRIPTOR: Descriptor
    MSG_FIELD_NUMBER: int
    msg: bytes
    def __init__(self,
        *,
        msg: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["msg",b"msg"]) -> bool: ...
    def ClearField(self, field_name: Literal["msg",b"msg"]) -> None: ...

class NotifyMsgBody(Message):
    DESCRIPTOR: Descriptor
    ENUM_TYPE_FIELD_NUMBER: int
    MSG_TIME_FIELD_NUMBER: int
    MSG_EXPIRES_FIELD_NUMBER: int
    GROUP_CODE_FIELD_NUMBER: int
    GRAYTIPS_FIELD_NUMBER: int
    MESSAGEBOX_FIELD_NUMBER: int
    FLOATEDTIPS_FIELD_NUMBER: int
    TOPTIPS_FIELD_NUMBER: int
    REDTIPS_FIELD_NUMBER: int
    GROUP_NOTIFY_FIELD_NUMBER: int
    RECALL_FIELD_NUMBER: int
    THEME_NOTIFY_FIELD_NUMBER: int
    SERVICE_TYPE_FIELD_NUMBER: int
    OBJMSG_UPDATE_FIELD_NUMBER: int
    WEREWOLF_PUSH_FIELD_NUMBER: int
    GOLDTIPS_FIELD_NUMBER: int
    MINIAPP_NOTIFY_FIELD_NUMBER: int
    SENDER_UIN_FIELD_NUMBER: int
    LUCKYBAG_NOTIFY_FIELD_NUMBER: int
    TROOPFORMTIPS_PUSH_FIELD_NUMBER: int
    MEDIA_PUSH_FIELD_NUMBER: int
    GENERAL_GRAY_TIP_FIELD_NUMBER: int
    VIDEO_PUSH_FIELD_NUMBER: int
    LBS_SHARE_CHANGE_PLUS_INFO_FIELD_NUMBER: int
    SING_PUSH_FIELD_NUMBER: int
    GROUP_INFO_CHANGE_FIELD_NUMBER: int
    GROUP_ANNOUNCE_TBC_INFO_FIELD_NUMBER: int
    QQ_VEDIO_GAME_PUSH_INFO_FIELD_NUMBER: int
    QQ_GROUP_DIGEST_MSG_FIELD_NUMBER: int
    STUDY_ROOM_MEMBER_MSG_FIELD_NUMBER: int
    QQ_LIVE_NOTIFY_FIELD_NUMBER: int
    GROUP_ASYNC_NOTIDY_FIELD_NUMBER: int
    GROUP_CUR_MSG_SEQ_FIELD_NUMBER: int
    GROUP_DIGEST_MSG_SUMMARY_FIELD_NUMBER: int
    SYSDB_MSG_ID_FIELD_NUMBER: int
    REVERT_GRAYTIPS_TRACELESS_FIELD_NUMBER: int
    enum_type: int
    msg_time: int
    msg_expires: int
    group_code: int
    @property
    def graytips(self) -> AIOGrayTipsInfo: ...
    @property
    def messagebox(self) -> MessageBoxInfo: ...
    @property
    def floatedtips(self) -> FloatedTipsInfo: ...
    @property
    def toptips(self) -> AIOTopTipsInfo: ...
    @property
    def redtips(self) -> RedGrayTipsInfo: ...
    @property
    def group_notify(self) -> GroupNotifyInfo: ...
    @property
    def recall(self) -> MessageRecallReminder: ...
    @property
    def theme_notify(self) -> ThemeStateNotify: ...
    service_type: int
    @property
    def objmsg_update(self) -> NotifyObjmsgUpdate: ...
    @property
    def werewolf_push(self) -> WereWolfPush: ...
    @property
    def goldtips(self) -> GoldMsgTipsElem:
        """optional apollo_game_status.STCMGameMessage stcm_game_state = 16;
        optional apollo_push_msgInfo.STPushMsgElem apllo_msg_push = 17;
        """
        pass
    @property
    def miniapp_notify(self) -> MiniAppNotify: ...
    sender_uin: int
    @property
    def luckybag_notify(self) -> LuckyBagNotify: ...
    @property
    def troopformtips_push(self) -> TroopFormGrayTipsInfo: ...
    @property
    def media_push(self) -> MediaChangePushInfo: ...
    @property
    def general_gray_tip(self) -> GeneralGrayTipInfo: ...
    @property
    def video_push(self) -> VideoChangePushInfo: ...
    @property
    def lbs_share_change_plus_info(self) -> LbsShareChangePushInfo: ...
    @property
    def sing_push(self) -> SingChangePushInfo: ...
    @property
    def group_info_change(self) -> GroupInfoChange: ...
    @property
    def group_announce_tbc_info(self) -> GroupAnnounceTBCInfo: ...
    @property
    def qq_vedio_game_push_info(self) -> QQVedioGamePushInfo: ...
    @property
    def qq_group_digest_msg(self) -> QQGroupDigestMsg: ...
    @property
    def study_room_member_msg(self) -> StudyRoomMemberChangePush: ...
    @property
    def qq_live_notify(self) -> QQVaLiveNotifyMsg: ...
    @property
    def group_async_notidy(self) -> GroupAsyncNotify: ...
    group_cur_msg_seq: int
    @property
    def group_digest_msg_summary(self) -> QQGroupDigestMsgSummary: ...
    sysdb_msg_id: int
    @property
    def revert_graytips_traceless(self) -> RevertGrayTipsMsgTraceless: ...
    def __init__(self,
        *,
        enum_type: Optional[int] = ...,
        msg_time: Optional[int] = ...,
        msg_expires: Optional[int] = ...,
        group_code: Optional[int] = ...,
        graytips: Optional[AIOGrayTipsInfo] = ...,
        messagebox: Optional[MessageBoxInfo] = ...,
        floatedtips: Optional[FloatedTipsInfo] = ...,
        toptips: Optional[AIOTopTipsInfo] = ...,
        redtips: Optional[RedGrayTipsInfo] = ...,
        group_notify: Optional[GroupNotifyInfo] = ...,
        recall: Optional[MessageRecallReminder] = ...,
        theme_notify: Optional[ThemeStateNotify] = ...,
        service_type: Optional[int] = ...,
        objmsg_update: Optional[NotifyObjmsgUpdate] = ...,
        werewolf_push: Optional[WereWolfPush] = ...,
        goldtips: Optional[GoldMsgTipsElem] = ...,
        miniapp_notify: Optional[MiniAppNotify] = ...,
        sender_uin: Optional[int] = ...,
        luckybag_notify: Optional[LuckyBagNotify] = ...,
        troopformtips_push: Optional[TroopFormGrayTipsInfo] = ...,
        media_push: Optional[MediaChangePushInfo] = ...,
        general_gray_tip: Optional[GeneralGrayTipInfo] = ...,
        video_push: Optional[VideoChangePushInfo] = ...,
        lbs_share_change_plus_info: Optional[LbsShareChangePushInfo] = ...,
        sing_push: Optional[SingChangePushInfo] = ...,
        group_info_change: Optional[GroupInfoChange] = ...,
        group_announce_tbc_info: Optional[GroupAnnounceTBCInfo] = ...,
        qq_vedio_game_push_info: Optional[QQVedioGamePushInfo] = ...,
        qq_group_digest_msg: Optional[QQGroupDigestMsg] = ...,
        study_room_member_msg: Optional[StudyRoomMemberChangePush] = ...,
        qq_live_notify: Optional[QQVaLiveNotifyMsg] = ...,
        group_async_notidy: Optional[GroupAsyncNotify] = ...,
        group_cur_msg_seq: Optional[int] = ...,
        group_digest_msg_summary: Optional[QQGroupDigestMsgSummary] = ...,
        sysdb_msg_id: Optional[int] = ...,
        revert_graytips_traceless: Optional[RevertGrayTipsMsgTraceless] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["enum_type",b"enum_type","floatedtips",b"floatedtips","general_gray_tip",b"general_gray_tip","goldtips",b"goldtips","graytips",b"graytips","group_announce_tbc_info",b"group_announce_tbc_info","group_async_notidy",b"group_async_notidy","group_code",b"group_code","group_cur_msg_seq",b"group_cur_msg_seq","group_digest_msg_summary",b"group_digest_msg_summary","group_info_change",b"group_info_change","group_notify",b"group_notify","lbs_share_change_plus_info",b"lbs_share_change_plus_info","luckybag_notify",b"luckybag_notify","media_push",b"media_push","messagebox",b"messagebox","miniapp_notify",b"miniapp_notify","msg_expires",b"msg_expires","msg_time",b"msg_time","objmsg_update",b"objmsg_update","qq_group_digest_msg",b"qq_group_digest_msg","qq_live_notify",b"qq_live_notify","qq_vedio_game_push_info",b"qq_vedio_game_push_info","recall",b"recall","redtips",b"redtips","revert_graytips_traceless",b"revert_graytips_traceless","sender_uin",b"sender_uin","service_type",b"service_type","sing_push",b"sing_push","study_room_member_msg",b"study_room_member_msg","sysdb_msg_id",b"sysdb_msg_id","theme_notify",b"theme_notify","toptips",b"toptips","troopformtips_push",b"troopformtips_push","video_push",b"video_push","werewolf_push",b"werewolf_push"]) -> bool: ...
    def ClearField(self, field_name: Literal["enum_type",b"enum_type","floatedtips",b"floatedtips","general_gray_tip",b"general_gray_tip","goldtips",b"goldtips","graytips",b"graytips","group_announce_tbc_info",b"group_announce_tbc_info","group_async_notidy",b"group_async_notidy","group_code",b"group_code","group_cur_msg_seq",b"group_cur_msg_seq","group_digest_msg_summary",b"group_digest_msg_summary","group_info_change",b"group_info_change","group_notify",b"group_notify","lbs_share_change_plus_info",b"lbs_share_change_plus_info","luckybag_notify",b"luckybag_notify","media_push",b"media_push","messagebox",b"messagebox","miniapp_notify",b"miniapp_notify","msg_expires",b"msg_expires","msg_time",b"msg_time","objmsg_update",b"objmsg_update","qq_group_digest_msg",b"qq_group_digest_msg","qq_live_notify",b"qq_live_notify","qq_vedio_game_push_info",b"qq_vedio_game_push_info","recall",b"recall","redtips",b"redtips","revert_graytips_traceless",b"revert_graytips_traceless","sender_uin",b"sender_uin","service_type",b"service_type","sing_push",b"sing_push","study_room_member_msg",b"study_room_member_msg","sysdb_msg_id",b"sysdb_msg_id","theme_notify",b"theme_notify","toptips",b"toptips","troopformtips_push",b"troopformtips_push","video_push",b"video_push","werewolf_push",b"werewolf_push"]) -> None: ...

class NotifyObjmsgUpdate(Message):
    DESCRIPTOR: Descriptor
    OBJMSG_ID_FIELD_NUMBER: int
    UPDATE_TYPE_FIELD_NUMBER: int
    EXT_MSG_FIELD_NUMBER: int
    objmsg_id: bytes
    update_type: int
    ext_msg: bytes
    def __init__(self,
        *,
        objmsg_id: Optional[bytes] = ...,
        update_type: Optional[int] = ...,
        ext_msg: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["ext_msg",b"ext_msg","objmsg_id",b"objmsg_id","update_type",b"update_type"]) -> bool: ...
    def ClearField(self, field_name: Literal["ext_msg",b"ext_msg","objmsg_id",b"objmsg_id","update_type",b"update_type"]) -> None: ...

class QQGroupDigestMsg(Message):
    DESCRIPTOR: Descriptor
    GROUP_CODE_FIELD_NUMBER: int
    SEQ_FIELD_NUMBER: int
    RANDOM_FIELD_NUMBER: int
    OP_TYPE_FIELD_NUMBER: int
    SENDER_FIELD_NUMBER: int
    DIGEST_OPER_FIELD_NUMBER: int
    OP_TIME_FIELD_NUMBER: int
    LASTEST_MSG_SEQ_FIELD_NUMBER: int
    OPER_NICK_FIELD_NUMBER: int
    SENDER_NICK_FIELD_NUMBER: int
    EXT_INFO_FIELD_NUMBER: int
    group_code: int
    seq: int
    random: int
    op_type: int
    sender: int
    digest_oper: int
    op_time: int
    lastest_msg_seq: int
    oper_nick: bytes
    sender_nick: bytes
    ext_info: int
    def __init__(self,
        *,
        group_code: Optional[int] = ...,
        seq: Optional[int] = ...,
        random: Optional[int] = ...,
        op_type: Optional[int] = ...,
        sender: Optional[int] = ...,
        digest_oper: Optional[int] = ...,
        op_time: Optional[int] = ...,
        lastest_msg_seq: Optional[int] = ...,
        oper_nick: Optional[bytes] = ...,
        sender_nick: Optional[bytes] = ...,
        ext_info: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["digest_oper",b"digest_oper","ext_info",b"ext_info","group_code",b"group_code","lastest_msg_seq",b"lastest_msg_seq","op_time",b"op_time","op_type",b"op_type","oper_nick",b"oper_nick","random",b"random","sender",b"sender","sender_nick",b"sender_nick","seq",b"seq"]) -> bool: ...
    def ClearField(self, field_name: Literal["digest_oper",b"digest_oper","ext_info",b"ext_info","group_code",b"group_code","lastest_msg_seq",b"lastest_msg_seq","op_time",b"op_time","op_type",b"op_type","oper_nick",b"oper_nick","random",b"random","sender",b"sender","sender_nick",b"sender_nick","seq",b"seq"]) -> None: ...

class QQGroupDigestMsgSummary(Message):
    DESCRIPTOR: Descriptor
    DIGEST_OPER_FIELD_NUMBER: int
    OP_TYPE_FIELD_NUMBER: int
    OP_TIME_FIELD_NUMBER: int
    DIGEST_NICK_FIELD_NUMBER: int
    SUCC_CNT_FIELD_NUMBER: int
    SUMMARY_INFO_FIELD_NUMBER: int
    digest_oper: int
    op_type: int
    op_time: int
    digest_nick: bytes
    succ_cnt: int
    @property
    def summary_info(self) -> RepeatedCompositeFieldContainer[QQGroupDigestSummaryInfo]: ...
    def __init__(self,
        *,
        digest_oper: Optional[int] = ...,
        op_type: Optional[int] = ...,
        op_time: Optional[int] = ...,
        digest_nick: Optional[bytes] = ...,
        succ_cnt: Optional[int] = ...,
        summary_info: Optional[Iterable[QQGroupDigestSummaryInfo]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["digest_nick",b"digest_nick","digest_oper",b"digest_oper","op_time",b"op_time","op_type",b"op_type","succ_cnt",b"succ_cnt"]) -> bool: ...
    def ClearField(self, field_name: Literal["digest_nick",b"digest_nick","digest_oper",b"digest_oper","op_time",b"op_time","op_type",b"op_type","succ_cnt",b"succ_cnt","summary_info",b"summary_info"]) -> None: ...

class QQGroupDigestSummaryInfo(Message):
    DESCRIPTOR: Descriptor
    SEQ_FIELD_NUMBER: int
    RANDOM_FIELD_NUMBER: int
    ERROR_CODE_FIELD_NUMBER: int
    seq: int
    random: int
    error_code: int
    def __init__(self,
        *,
        seq: Optional[int] = ...,
        random: Optional[int] = ...,
        error_code: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["error_code",b"error_code","random",b"random","seq",b"seq"]) -> bool: ...
    def ClearField(self, field_name: Literal["error_code",b"error_code","random",b"random","seq",b"seq"]) -> None: ...

class QQVaLiveNotifyMsg(Message):
    DESCRIPTOR: Descriptor
    UID_FIELD_NUMBER: int
    NOTIFY_TYPE_FIELD_NUMBER: int
    EXT1_FIELD_NUMBER: int
    EXT2_FIELD_NUMBER: int
    EXT3_FIELD_NUMBER: int
    uid: bytes
    notify_type: int
    ext1: bytes
    ext2: bytes
    ext3: bytes
    def __init__(self,
        *,
        uid: Optional[bytes] = ...,
        notify_type: Optional[int] = ...,
        ext1: Optional[bytes] = ...,
        ext2: Optional[bytes] = ...,
        ext3: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["ext1",b"ext1","ext2",b"ext2","ext3",b"ext3","notify_type",b"notify_type","uid",b"uid"]) -> bool: ...
    def ClearField(self, field_name: Literal["ext1",b"ext1","ext2",b"ext2","ext3",b"ext3","notify_type",b"notify_type","uid",b"uid"]) -> None: ...

class QQVedioGamePushInfo(Message):
    DESCRIPTOR: Descriptor
    MSG_TYPE_FIELD_NUMBER: int
    GROUP_CODE_FIELD_NUMBER: int
    OPER_UIN_FIELD_NUMBER: int
    VERSION_CTRL_FIELD_NUMBER: int
    EXT_INFO_FIELD_NUMBER: int
    msg_type: int
    group_code: int
    oper_uin: int
    version_ctrl: bytes
    ext_info: bytes
    def __init__(self,
        *,
        msg_type: Optional[int] = ...,
        group_code: Optional[int] = ...,
        oper_uin: Optional[int] = ...,
        version_ctrl: Optional[bytes] = ...,
        ext_info: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["ext_info",b"ext_info","group_code",b"group_code","msg_type",b"msg_type","oper_uin",b"oper_uin","version_ctrl",b"version_ctrl"]) -> bool: ...
    def ClearField(self, field_name: Literal["ext_info",b"ext_info","group_code",b"group_code","msg_type",b"msg_type","oper_uin",b"oper_uin","version_ctrl",b"version_ctrl"]) -> None: ...

class RedGrayTipsInfo(Message):
    DESCRIPTOR: Descriptor
    SHOW_LASTEST_FIELD_NUMBER: int
    SENDER_UIN_FIELD_NUMBER: int
    RECEIVER_UIN_FIELD_NUMBER: int
    SENDER_RICH_CONTENT_FIELD_NUMBER: int
    RECEIVER_RICH_CONTENT_FIELD_NUMBER: int
    AUTHKEY_FIELD_NUMBER: int
    MSGTYPE_FIELD_NUMBER: int
    LUCKY_FLAG_FIELD_NUMBER: int
    HIDE_FLAG_FIELD_NUMBER: int
    PC_BODY_FIELD_NUMBER: int
    ICON_FIELD_NUMBER: int
    LUCKY_UIN_FIELD_NUMBER: int
    TIME_FIELD_NUMBER: int
    RANDOM_FIELD_NUMBER: int
    BROADCAST_RICH_CONTENT_FIELD_NUMBER: int
    IDIOM_FIELD_NUMBER: int
    IDIOM_SEQ_FIELD_NUMBER: int
    IDIOM_ALPHA_FIELD_NUMBER: int
    JUMPURL_FIELD_NUMBER: int
    SUBCHANNEL_FIELD_NUMBER: int
    POEM_RULE_FIELD_NUMBER: int
    show_lastest: int
    sender_uin: int
    receiver_uin: int
    sender_rich_content: bytes
    receiver_rich_content: bytes
    authkey: bytes
    msgtype: int
    lucky_flag: int
    hide_flag: int
    pc_body: bytes
    icon: int
    lucky_uin: int
    time: int
    random: int
    broadcast_rich_content: bytes
    idiom: bytes
    idiom_seq: int
    idiom_alpha: bytes
    jumpurl: bytes
    subchannel: int
    poem_rule: bytes
    def __init__(self,
        *,
        show_lastest: Optional[int] = ...,
        sender_uin: Optional[int] = ...,
        receiver_uin: Optional[int] = ...,
        sender_rich_content: Optional[bytes] = ...,
        receiver_rich_content: Optional[bytes] = ...,
        authkey: Optional[bytes] = ...,
        msgtype: Optional[int] = ...,
        lucky_flag: Optional[int] = ...,
        hide_flag: Optional[int] = ...,
        pc_body: Optional[bytes] = ...,
        icon: Optional[int] = ...,
        lucky_uin: Optional[int] = ...,
        time: Optional[int] = ...,
        random: Optional[int] = ...,
        broadcast_rich_content: Optional[bytes] = ...,
        idiom: Optional[bytes] = ...,
        idiom_seq: Optional[int] = ...,
        idiom_alpha: Optional[bytes] = ...,
        jumpurl: Optional[bytes] = ...,
        subchannel: Optional[int] = ...,
        poem_rule: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["authkey",b"authkey","broadcast_rich_content",b"broadcast_rich_content","hide_flag",b"hide_flag","icon",b"icon","idiom",b"idiom","idiom_alpha",b"idiom_alpha","idiom_seq",b"idiom_seq","jumpurl",b"jumpurl","lucky_flag",b"lucky_flag","lucky_uin",b"lucky_uin","msgtype",b"msgtype","pc_body",b"pc_body","poem_rule",b"poem_rule","random",b"random","receiver_rich_content",b"receiver_rich_content","receiver_uin",b"receiver_uin","sender_rich_content",b"sender_rich_content","sender_uin",b"sender_uin","show_lastest",b"show_lastest","subchannel",b"subchannel","time",b"time"]) -> bool: ...
    def ClearField(self, field_name: Literal["authkey",b"authkey","broadcast_rich_content",b"broadcast_rich_content","hide_flag",b"hide_flag","icon",b"icon","idiom",b"idiom","idiom_alpha",b"idiom_alpha","idiom_seq",b"idiom_seq","jumpurl",b"jumpurl","lucky_flag",b"lucky_flag","lucky_uin",b"lucky_uin","msgtype",b"msgtype","pc_body",b"pc_body","poem_rule",b"poem_rule","random",b"random","receiver_rich_content",b"receiver_rich_content","receiver_uin",b"receiver_uin","sender_rich_content",b"sender_rich_content","sender_uin",b"sender_uin","show_lastest",b"show_lastest","subchannel",b"subchannel","time",b"time"]) -> None: ...

class ReqBody(Message):
    DESCRIPTOR: Descriptor
    GROUP_CODE_FIELD_NUMBER: int
    MEMBERUINS_FIELD_NUMBER: int
    OFFLINE_FIELD_NUMBER: int
    INST_CTRL_FIELD_NUMBER: int
    MSG_FIELD_NUMBER: int
    BUSI_TYPE_FIELD_NUMBER: int
    group_code: int
    @property
    def memberuins(self) -> RepeatedScalarFieldContainer[int]: ...
    offline: int
    @property
    def inst_ctrl(self) -> InstCtrl: ...
    msg: bytes
    busi_type: int
    def __init__(self,
        *,
        group_code: Optional[int] = ...,
        memberuins: Optional[Iterable[int]] = ...,
        offline: Optional[int] = ...,
        inst_ctrl: Optional[InstCtrl] = ...,
        msg: Optional[bytes] = ...,
        busi_type: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["busi_type",b"busi_type","group_code",b"group_code","inst_ctrl",b"inst_ctrl","msg",b"msg","offline",b"offline"]) -> bool: ...
    def ClearField(self, field_name: Literal["busi_type",b"busi_type","group_code",b"group_code","inst_ctrl",b"inst_ctrl","memberuins",b"memberuins","msg",b"msg","offline",b"offline"]) -> None: ...

class RevertGrayTipsMsgTraceless(Message):
    DESCRIPTOR: Descriptor
    FROM_FIELD_NUMBER: int
    TO_FIELD_NUMBER: int
    GROUP_CODE_FIELD_NUMBER: int
    BUSI_ID_FIELD_NUMBER: int
    TIPS_SEQ_ID_FIELD_NUMBER: int
    to: int
    group_code: int
    busi_id: int
    tips_seq_id: int
    def __init__(self,
        *,
        to: Optional[int] = ...,
        group_code: Optional[int] = ...,
        busi_id: Optional[int] = ...,
        tips_seq_id: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["busi_id",b"busi_id","from",b"from","group_code",b"group_code","tips_seq_id",b"tips_seq_id","to",b"to"]) -> bool: ...
    def ClearField(self, field_name: Literal["busi_id",b"busi_id","from",b"from","group_code",b"group_code","tips_seq_id",b"tips_seq_id","to",b"to"]) -> None: ...

class RspBody(Message):
    DESCRIPTOR: Descriptor
    GROUP_CODE_FIELD_NUMBER: int
    group_code: int
    def __init__(self,
        *,
        group_code: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["group_code",b"group_code"]) -> bool: ...
    def ClearField(self, field_name: Literal["group_code",b"group_code"]) -> None: ...

class SingChangePushInfo(Message):
    DESCRIPTOR: Descriptor
    SEQ_FIELD_NUMBER: int
    ACTION_TYPE_FIELD_NUMBER: int
    GROUP_ID_FIELD_NUMBER: int
    OPER_UIN_FIELD_NUMBER: int
    GRAY_TIPS_FIELD_NUMBER: int
    JOIN_NUMS_FIELD_NUMBER: int
    seq: int
    action_type: int
    group_id: int
    oper_uin: int
    gray_tips: bytes
    join_nums: int
    def __init__(self,
        *,
        seq: Optional[int] = ...,
        action_type: Optional[int] = ...,
        group_id: Optional[int] = ...,
        oper_uin: Optional[int] = ...,
        gray_tips: Optional[bytes] = ...,
        join_nums: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["action_type",b"action_type","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","oper_uin",b"oper_uin","seq",b"seq"]) -> bool: ...
    def ClearField(self, field_name: Literal["action_type",b"action_type","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","oper_uin",b"oper_uin","seq",b"seq"]) -> None: ...

class StudyRoomMemberChangePush(Message):
    DESCRIPTOR: Descriptor
    MEMBER_COUNT_FIELD_NUMBER: int
    member_count: int
    def __init__(self,
        *,
        member_count: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["member_count",b"member_count"]) -> bool: ...
    def ClearField(self, field_name: Literal["member_count",b"member_count"]) -> None: ...

class TemplParam(Message):
    DESCRIPTOR: Descriptor
    NAME_FIELD_NUMBER: int
    VALUE_FIELD_NUMBER: int
    name: bytes
    value: bytes
    def __init__(self,
        *,
        name: Optional[bytes] = ...,
        value: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["name",b"name","value",b"value"]) -> bool: ...
    def ClearField(self, field_name: Literal["name",b"name","value",b"value"]) -> None: ...

class ThemeStateNotify(Message):
    DESCRIPTOR: Descriptor
    STATE_FIELD_NUMBER: int
    FEEDS_ID_FIELD_NUMBER: int
    THEME_NAME_FIELD_NUMBER: int
    ACTION_UIN_FIELD_NUMBER: int
    CREATE_UIN_FIELD_NUMBER: int
    state: int
    feeds_id: bytes
    theme_name: bytes
    action_uin: int
    create_uin: int
    def __init__(self,
        *,
        state: Optional[int] = ...,
        feeds_id: Optional[bytes] = ...,
        theme_name: Optional[bytes] = ...,
        action_uin: Optional[int] = ...,
        create_uin: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["action_uin",b"action_uin","create_uin",b"create_uin","feeds_id",b"feeds_id","state",b"state","theme_name",b"theme_name"]) -> bool: ...
    def ClearField(self, field_name: Literal["action_uin",b"action_uin","create_uin",b"create_uin","feeds_id",b"feeds_id","state",b"state","theme_name",b"theme_name"]) -> None: ...

class TroopFormGrayTipsInfo(Message):
    DESCRIPTOR: Descriptor
    WRITER_UIN_FIELD_NUMBER: int
    CREATOR_UIN_FIELD_NUMBER: int
    RICH_CONTENT_FIELD_NUMBER: int
    OPT_BYTES_URL_FIELD_NUMBER: int
    CREATOR_NICK_FIELD_NUMBER: int
    writer_uin: int
    creator_uin: int
    rich_content: bytes
    opt_bytes_url: bytes
    creator_nick: bytes
    def __init__(self,
        *,
        writer_uin: Optional[int] = ...,
        creator_uin: Optional[int] = ...,
        rich_content: Optional[bytes] = ...,
        opt_bytes_url: Optional[bytes] = ...,
        creator_nick: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["creator_nick",b"creator_nick","creator_uin",b"creator_uin","opt_bytes_url",b"opt_bytes_url","rich_content",b"rich_content","writer_uin",b"writer_uin"]) -> bool: ...
    def ClearField(self, field_name: Literal["creator_nick",b"creator_nick","creator_uin",b"creator_uin","opt_bytes_url",b"opt_bytes_url","rich_content",b"rich_content","writer_uin",b"writer_uin"]) -> None: ...

class VideoChangePushInfo(Message):
    DESCRIPTOR: Descriptor
    SEQ_FIELD_NUMBER: int
    ACTION_TYPE_FIELD_NUMBER: int
    GROUP_ID_FIELD_NUMBER: int
    OPER_UIN_FIELD_NUMBER: int
    GRAY_TIPS_FIELD_NUMBER: int
    JOIN_NUMS_FIELD_NUMBER: int
    JOIN_STATE_FIELD_NUMBER: int
    EXT_INFO_FIELD_NUMBER: int
    seq: int
    action_type: int
    group_id: int
    oper_uin: int
    gray_tips: bytes
    join_nums: int
    join_state: int
    ext_info: bytes
    def __init__(self,
        *,
        seq: Optional[int] = ...,
        action_type: Optional[int] = ...,
        group_id: Optional[int] = ...,
        oper_uin: Optional[int] = ...,
        gray_tips: Optional[bytes] = ...,
        join_nums: Optional[int] = ...,
        join_state: Optional[int] = ...,
        ext_info: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["action_type",b"action_type","ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","join_state",b"join_state","oper_uin",b"oper_uin","seq",b"seq"]) -> bool: ...
    def ClearField(self, field_name: Literal["action_type",b"action_type","ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","join_state",b"join_state","oper_uin",b"oper_uin","seq",b"seq"]) -> None: ...

class WereWolfPush(Message):
    DESCRIPTOR: Descriptor
    class GameRecord(Message):
        DESCRIPTOR: Descriptor
        TOTAL_FIELD_NUMBER: int
        WIN_FIELD_NUMBER: int
        LOSE_FIELD_NUMBER: int
        DRAW_FIELD_NUMBER: int
        total: int
        win: int
        lose: int
        draw: int
        def __init__(self,
            *,
            total: Optional[int] = ...,
            win: Optional[int] = ...,
            lose: Optional[int] = ...,
            draw: Optional[int] = ...,
            ) -> None: ...
        def HasField(self, field_name: Literal["draw",b"draw","lose",b"lose","total",b"total","win",b"win"]) -> bool: ...
        def ClearField(self, field_name: Literal["draw",b"draw","lose",b"lose","total",b"total","win",b"win"]) -> None: ...

    class Role(Message):
        DESCRIPTOR: Descriptor
        UIN_FIELD_NUMBER: int
        ENUM_TYPE_FIELD_NUMBER: int
        ENUM_STATE_FIELD_NUMBER: int
        CAN_SPEAK_FIELD_NUMBER: int
        CAN_LISTEN_FIELD_NUMBER: int
        POSITION_FIELD_NUMBER: int
        CAN_VOTE_FIELD_NUMBER: int
        CAN_VOTED_FIELD_NUMBER: int
        ALREADY_CHECKED_FIELD_NUMBER: int
        ALREADY_SAVED_FIELD_NUMBER: int
        ALREADY_POISONED_FIELD_NUMBER: int
        PLAYER_STATE_FIELD_NUMBER: int
        ENUM_DEAD_OP_FIELD_NUMBER: int
        ENUM_OPERATION_FIELD_NUMBER: int
        DST_USER_FIELD_NUMBER: int
        OPERATION_ROUND_FIELD_NUMBER: int
        GAME_RECORD_FIELD_NUMBER: int
        IS_WEREWOLF_FIELD_NUMBER: int
        DEFENDED_USER_FIELD_NUMBER: int
        IS_SHERIFF_FIELD_NUMBER: int
        uin: int
        enum_type: int
        enum_state: int
        can_speak: int
        can_listen: int
        position: int
        can_vote: int
        can_voted: int
        already_checked: int
        already_saved: int
        already_poisoned: int
        player_state: int
        enum_dead_op: int
        enum_operation: int
        dst_user: int
        operation_round: int
        @property
        def game_record(self) -> WereWolfPush.GameRecord: ...
        is_werewolf: int
        defended_user: int
        is_sheriff: int
        def __init__(self,
            *,
            uin: Optional[int] = ...,
            enum_type: Optional[int] = ...,
            enum_state: Optional[int] = ...,
            can_speak: Optional[int] = ...,
            can_listen: Optional[int] = ...,
            position: Optional[int] = ...,
            can_vote: Optional[int] = ...,
            can_voted: Optional[int] = ...,
            already_checked: Optional[int] = ...,
            already_saved: Optional[int] = ...,
            already_poisoned: Optional[int] = ...,
            player_state: Optional[int] = ...,
            enum_dead_op: Optional[int] = ...,
            enum_operation: Optional[int] = ...,
            dst_user: Optional[int] = ...,
            operation_round: Optional[int] = ...,
            game_record: Optional[WereWolfPush.GameRecord] = ...,
            is_werewolf: Optional[int] = ...,
            defended_user: Optional[int] = ...,
            is_sheriff: Optional[int] = ...,
            ) -> None: ...
        def HasField(self, field_name: Literal["already_checked",b"already_checked","already_poisoned",b"already_poisoned","already_saved",b"already_saved","can_listen",b"can_listen","can_speak",b"can_speak","can_vote",b"can_vote","can_voted",b"can_voted","defended_user",b"defended_user","dst_user",b"dst_user","enum_dead_op",b"enum_dead_op","enum_operation",b"enum_operation","enum_state",b"enum_state","enum_type",b"enum_type","game_record",b"game_record","is_sheriff",b"is_sheriff","is_werewolf",b"is_werewolf","operation_round",b"operation_round","player_state",b"player_state","position",b"position","uin",b"uin"]) -> bool: ...
        def ClearField(self, field_name: Literal["already_checked",b"already_checked","already_poisoned",b"already_poisoned","already_saved",b"already_saved","can_listen",b"can_listen","can_speak",b"can_speak","can_vote",b"can_vote","can_voted",b"can_voted","defended_user",b"defended_user","dst_user",b"dst_user","enum_dead_op",b"enum_dead_op","enum_operation",b"enum_operation","enum_state",b"enum_state","enum_type",b"enum_type","game_record",b"game_record","is_sheriff",b"is_sheriff","is_werewolf",b"is_werewolf","operation_round",b"operation_round","player_state",b"player_state","position",b"position","uin",b"uin"]) -> None: ...

    PUSH_TYPE_FIELD_NUMBER: int
    GAME_ROOM_FIELD_NUMBER: int
    ENUM_GAME_STATE_FIELD_NUMBER: int
    GAME_ROUND_FIELD_NUMBER: int
    ROLES_FIELD_NUMBER: int
    SPEAKER_FIELD_NUMBER: int
    JUDGE_UIN_FIELD_NUMBER: int
    JUDGE_WORDS_FIELD_NUMBER: int
    ENUM_OPERATION_FIELD_NUMBER: int
    SRC_USER_FIELD_NUMBER: int
    DST_USER_FIELD_NUMBER: int
    DEAD_USERS_FIELD_NUMBER: int
    GAME_RESULT_FIELD_NUMBER: int
    TIMEOUT_SEC_FIELD_NUMBER: int
    KILL_CONFIRMED_FIELD_NUMBER: int
    JUDGE_NICKNAME_FIELD_NUMBER: int
    VOTED_TIE_USERS_FIELD_NUMBER: int
    push_type: int
    game_room: int
    enum_game_state: int
    game_round: int
    @property
    def roles(self) -> RepeatedCompositeFieldContainer[WereWolfPush.Role]: ...
    speaker: int
    judge_uin: int
    judge_words: bytes
    enum_operation: int
    src_user: int
    dst_user: int
    @property
    def dead_users(self) -> RepeatedScalarFieldContainer[int]: ...
    game_result: int
    timeout_sec: int
    kill_confirmed: int
    judge_nickname: bytes
    @property
    def voted_tie_users(self) -> RepeatedScalarFieldContainer[int]: ...
    def __init__(self,
        *,
        push_type: Optional[int] = ...,
        game_room: Optional[int] = ...,
        enum_game_state: Optional[int] = ...,
        game_round: Optional[int] = ...,
        roles: Optional[Iterable[WereWolfPush.Role]] = ...,
        speaker: Optional[int] = ...,
        judge_uin: Optional[int] = ...,
        judge_words: Optional[bytes] = ...,
        enum_operation: Optional[int] = ...,
        src_user: Optional[int] = ...,
        dst_user: Optional[int] = ...,
        dead_users: Optional[Iterable[int]] = ...,
        game_result: Optional[int] = ...,
        timeout_sec: Optional[int] = ...,
        kill_confirmed: Optional[int] = ...,
        judge_nickname: Optional[bytes] = ...,
        voted_tie_users: Optional[Iterable[int]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["dst_user",b"dst_user","enum_game_state",b"enum_game_state","enum_operation",b"enum_operation","game_result",b"game_result","game_room",b"game_room","game_round",b"game_round","judge_nickname",b"judge_nickname","judge_uin",b"judge_uin","judge_words",b"judge_words","kill_confirmed",b"kill_confirmed","push_type",b"push_type","speaker",b"speaker","src_user",b"src_user","timeout_sec",b"timeout_sec"]) -> bool: ...
    def ClearField(self, field_name: Literal["dead_users",b"dead_users","dst_user",b"dst_user","enum_game_state",b"enum_game_state","enum_operation",b"enum_operation","game_result",b"game_result","game_room",b"game_room","game_round",b"game_round","judge_nickname",b"judge_nickname","judge_uin",b"judge_uin","judge_words",b"judge_words","kill_confirmed",b"kill_confirmed","push_type",b"push_type","roles",b"roles","speaker",b"speaker","src_user",b"src_user","timeout_sec",b"timeout_sec","voted_tie_users",b"voted_tie_users"]) -> None: ...
