"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import google.protobuf.wrappers_pb2
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 _HostRequestStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _HostRequestStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HostRequestStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    HOST_REQUEST_STATUS_PENDING: _HostRequestStatus.ValueType  # 0
    HOST_REQUEST_STATUS_ACCEPTED: _HostRequestStatus.ValueType  # 1
    HOST_REQUEST_STATUS_REJECTED: _HostRequestStatus.ValueType  # 2
    HOST_REQUEST_STATUS_CONFIRMED: _HostRequestStatus.ValueType  # 3
    HOST_REQUEST_STATUS_CANCELLED: _HostRequestStatus.ValueType  # 4

class HostRequestStatus(_HostRequestStatus, metaclass=_HostRequestStatusEnumTypeWrapper): ...

HOST_REQUEST_STATUS_PENDING: HostRequestStatus.ValueType  # 0
HOST_REQUEST_STATUS_ACCEPTED: HostRequestStatus.ValueType  # 1
HOST_REQUEST_STATUS_REJECTED: HostRequestStatus.ValueType  # 2
HOST_REQUEST_STATUS_CONFIRMED: HostRequestStatus.ValueType  # 3
HOST_REQUEST_STATUS_CANCELLED: HostRequestStatus.ValueType  # 4
Global___HostRequestStatus: typing_extensions.TypeAlias = HostRequestStatus

@typing.final
class MessageContentText(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    text: builtins.str
    """plain text"""
    def __init__(
        self,
        *,
        text: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["text", b"text"]) -> None: ...

Global___MessageContentText: typing_extensions.TypeAlias = MessageContentText

@typing.final
class MessageContentChatCreated(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___MessageContentChatCreated: typing_extensions.TypeAlias = MessageContentChatCreated

@typing.final
class MessageContentChatEdited(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___MessageContentChatEdited: typing_extensions.TypeAlias = MessageContentChatEdited

@typing.final
class MessageContentUserInvited(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    target_user_id: builtins.int
    def __init__(
        self,
        *,
        target_user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["target_user_id", b"target_user_id"]) -> None: ...

Global___MessageContentUserInvited: typing_extensions.TypeAlias = MessageContentUserInvited

@typing.final
class MessageContentUserLeft(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___MessageContentUserLeft: typing_extensions.TypeAlias = MessageContentUserLeft

@typing.final
class MessageContentUserMadeAdmin(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    target_user_id: builtins.int
    def __init__(
        self,
        *,
        target_user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["target_user_id", b"target_user_id"]) -> None: ...

Global___MessageContentUserMadeAdmin: typing_extensions.TypeAlias = MessageContentUserMadeAdmin

@typing.final
class MessageContentUserRemovedAdmin(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    target_user_id: builtins.int
    def __init__(
        self,
        *,
        target_user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["target_user_id", b"target_user_id"]) -> None: ...

Global___MessageContentUserRemovedAdmin: typing_extensions.TypeAlias = MessageContentUserRemovedAdmin

@typing.final
class MessageContentUserRemoved(google.protobuf.message.Message):
    """field in Message, when a user is removed by admin"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    target_user_id: builtins.int
    def __init__(
        self,
        *,
        target_user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["target_user_id", b"target_user_id"]) -> None: ...

Global___MessageContentUserRemoved: typing_extensions.TypeAlias = MessageContentUserRemoved

@typing.final
class MessageContentHostRequestStatusChanged(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATUS_FIELD_NUMBER: builtins.int
    status: Global___HostRequestStatus.ValueType
    """this is the new host request status"""
    def __init__(
        self,
        *,
        status: Global___HostRequestStatus.ValueType | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["status", b"status"]) -> None: ...

Global___MessageContentHostRequestStatusChanged: typing_extensions.TypeAlias = MessageContentHostRequestStatusChanged

@typing.final
class Message(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_ID_FIELD_NUMBER: builtins.int
    AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    CHAT_CREATED_FIELD_NUMBER: builtins.int
    CHAT_EDITED_FIELD_NUMBER: builtins.int
    USER_INVITED_FIELD_NUMBER: builtins.int
    USER_LEFT_FIELD_NUMBER: builtins.int
    USER_MADE_ADMIN_FIELD_NUMBER: builtins.int
    USER_REMOVED_ADMIN_FIELD_NUMBER: builtins.int
    HOST_REQUEST_STATUS_CHANGED_FIELD_NUMBER: builtins.int
    GROUP_CHAT_USER_REMOVED_FIELD_NUMBER: builtins.int
    message_id: builtins.int
    author_user_id: builtins.int
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def text(self) -> Global___MessageContentText:
        """plain text"""

    @property
    def chat_created(self) -> Global___MessageContentChatCreated: ...
    @property
    def chat_edited(self) -> Global___MessageContentChatEdited: ...
    @property
    def user_invited(self) -> Global___MessageContentUserInvited: ...
    @property
    def user_left(self) -> Global___MessageContentUserLeft: ...
    @property
    def user_made_admin(self) -> Global___MessageContentUserMadeAdmin: ...
    @property
    def user_removed_admin(self) -> Global___MessageContentUserRemovedAdmin: ...
    @property
    def host_request_status_changed(self) -> Global___MessageContentHostRequestStatusChanged: ...
    @property
    def group_chat_user_removed(self) -> Global___MessageContentUserRemoved:
        """user removed by admin"""

    def __init__(
        self,
        *,
        message_id: builtins.int | None = ...,
        author_user_id: builtins.int | None = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        text: Global___MessageContentText | None = ...,
        chat_created: Global___MessageContentChatCreated | None = ...,
        chat_edited: Global___MessageContentChatEdited | None = ...,
        user_invited: Global___MessageContentUserInvited | None = ...,
        user_left: Global___MessageContentUserLeft | None = ...,
        user_made_admin: Global___MessageContentUserMadeAdmin | None = ...,
        user_removed_admin: Global___MessageContentUserRemovedAdmin | None = ...,
        host_request_status_changed: Global___MessageContentHostRequestStatusChanged | None = ...,
        group_chat_user_removed: Global___MessageContentUserRemoved | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["chat_created", b"chat_created", "chat_edited", b"chat_edited", "content", b"content", "group_chat_user_removed", b"group_chat_user_removed", "host_request_status_changed", b"host_request_status_changed", "text", b"text", "time", b"time", "user_invited", b"user_invited", "user_left", b"user_left", "user_made_admin", b"user_made_admin", "user_removed_admin", b"user_removed_admin"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["author_user_id", b"author_user_id", "chat_created", b"chat_created", "chat_edited", b"chat_edited", "content", b"content", "group_chat_user_removed", b"group_chat_user_removed", "host_request_status_changed", b"host_request_status_changed", "message_id", b"message_id", "text", b"text", "time", b"time", "user_invited", b"user_invited", "user_left", b"user_left", "user_made_admin", b"user_made_admin", "user_removed_admin", b"user_removed_admin"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["content", b"content"]) -> typing.Literal["text", "chat_created", "chat_edited", "user_invited", "user_left", "user_made_admin", "user_removed_admin", "host_request_status_changed", "group_chat_user_removed"] | None: ...

Global___Message: typing_extensions.TypeAlias = Message

@typing.final
class MuteInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MUTED_FIELD_NUMBER: builtins.int
    MUTED_UNTIL_FIELD_NUMBER: builtins.int
    muted: builtins.bool
    @property
    def muted_until(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """muted_until is not present if muted forever"""

    def __init__(
        self,
        *,
        muted: builtins.bool | None = ...,
        muted_until: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["muted_until", b"muted_until"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["muted", b"muted", "muted_until", b"muted_until"]) -> None: ...

Global___MuteInfo: typing_extensions.TypeAlias = MuteInfo

@typing.final
class GroupChat(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    MEMBER_USER_IDS_FIELD_NUMBER: builtins.int
    ADMIN_USER_IDS_FIELD_NUMBER: builtins.int
    ONLY_ADMINS_INVITE_FIELD_NUMBER: builtins.int
    IS_DM_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    UNSEEN_MESSAGE_COUNT_FIELD_NUMBER: builtins.int
    LAST_SEEN_MESSAGE_ID_FIELD_NUMBER: builtins.int
    LATEST_MESSAGE_FIELD_NUMBER: builtins.int
    MUTE_INFO_FIELD_NUMBER: builtins.int
    CAN_MESSAGE_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    title: builtins.str
    only_admins_invite: builtins.bool
    is_dm: builtins.bool
    unseen_message_count: builtins.int
    last_seen_message_id: builtins.int
    can_message: builtins.bool
    @property
    def member_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """inclusive of admins"""

    @property
    def admin_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def latest_message(self) -> Global___Message: ...
    @property
    def mute_info(self) -> Global___MuteInfo: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        title: builtins.str | None = ...,
        member_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
        admin_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
        only_admins_invite: builtins.bool | None = ...,
        is_dm: builtins.bool | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        unseen_message_count: builtins.int | None = ...,
        last_seen_message_id: builtins.int | None = ...,
        latest_message: Global___Message | None = ...,
        mute_info: Global___MuteInfo | None = ...,
        can_message: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created", b"created", "latest_message", b"latest_message", "mute_info", b"mute_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["admin_user_ids", b"admin_user_ids", "can_message", b"can_message", "created", b"created", "group_chat_id", b"group_chat_id", "is_dm", b"is_dm", "last_seen_message_id", b"last_seen_message_id", "latest_message", b"latest_message", "member_user_ids", b"member_user_ids", "mute_info", b"mute_info", "only_admins_invite", b"only_admins_invite", "title", b"title", "unseen_message_count", b"unseen_message_count"]) -> None: ...

Global___GroupChat: typing_extensions.TypeAlias = GroupChat

@typing.final
class GetGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id"]) -> None: ...

Global___GetGroupChatReq: typing_extensions.TypeAlias = GetGroupChatReq

@typing.final
class ListGroupChatsReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NUMBER_FIELD_NUMBER: builtins.int
    last_message_id: builtins.int
    number: builtins.int
    def __init__(
        self,
        *,
        last_message_id: builtins.int | None = ...,
        number: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["last_message_id", b"last_message_id", "number", b"number"]) -> None: ...

Global___ListGroupChatsReq: typing_extensions.TypeAlias = ListGroupChatsReq

@typing.final
class ListGroupChatsRes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHATS_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NO_MORE_FIELD_NUMBER: builtins.int
    last_message_id: builtins.int
    no_more: builtins.bool
    @property
    def group_chats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___GroupChat]: ...
    def __init__(
        self,
        *,
        group_chats: collections.abc.Iterable[Global___GroupChat] | None = ...,
        last_message_id: builtins.int | None = ...,
        no_more: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chats", b"group_chats", "last_message_id", b"last_message_id", "no_more", b"no_more"]) -> None: ...

Global___ListGroupChatsRes: typing_extensions.TypeAlias = ListGroupChatsRes

@typing.final
class GetUpdatesReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NEWEST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    newest_message_id: builtins.int
    def __init__(
        self,
        *,
        newest_message_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["newest_message_id", b"newest_message_id"]) -> None: ...

Global___GetUpdatesReq: typing_extensions.TypeAlias = GetUpdatesReq

@typing.final
class GetDirectMessageReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_ID_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["user_id", b"user_id"]) -> None: ...

Global___GetDirectMessageReq: typing_extensions.TypeAlias = GetDirectMessageReq

@typing.final
class Update(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    @property
    def message(self) -> Global___Message: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        message: Global___Message | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["message", b"message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "message", b"message"]) -> None: ...

Global___Update: typing_extensions.TypeAlias = Update

@typing.final
class GetUpdatesRes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    UPDATES_FIELD_NUMBER: builtins.int
    NO_MORE_FIELD_NUMBER: builtins.int
    no_more: builtins.bool
    @property
    def updates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Update]: ...
    def __init__(
        self,
        *,
        updates: collections.abc.Iterable[Global___Update] | None = ...,
        no_more: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["no_more", b"no_more", "updates", b"updates"]) -> None: ...

Global___GetUpdatesRes: typing_extensions.TypeAlias = GetUpdatesRes

@typing.final
class GetGroupChatMessagesReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NUMBER_FIELD_NUMBER: builtins.int
    ONLY_UNSEEN_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    last_message_id: builtins.int
    number: builtins.int
    only_unseen: builtins.bool
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        last_message_id: builtins.int | None = ...,
        number: builtins.int | None = ...,
        only_unseen: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "last_message_id", b"last_message_id", "number", b"number", "only_unseen", b"only_unseen"]) -> None: ...

Global___GetGroupChatMessagesReq: typing_extensions.TypeAlias = GetGroupChatMessagesReq

@typing.final
class GetGroupChatMessagesRes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGES_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NO_MORE_FIELD_NUMBER: builtins.int
    last_message_id: builtins.int
    no_more: builtins.bool
    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Message]: ...
    def __init__(
        self,
        *,
        messages: collections.abc.Iterable[Global___Message] | None = ...,
        last_message_id: builtins.int | None = ...,
        no_more: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["last_message_id", b"last_message_id", "messages", b"messages", "no_more", b"no_more"]) -> None: ...

Global___GetGroupChatMessagesRes: typing_extensions.TypeAlias = GetGroupChatMessagesRes

@typing.final
class MarkLastSeenGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    LAST_SEEN_MESSAGE_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    last_seen_message_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        last_seen_message_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "last_seen_message_id", b"last_seen_message_id"]) -> None: ...

Global___MarkLastSeenGroupChatReq: typing_extensions.TypeAlias = MarkLastSeenGroupChatReq

@typing.final
class MuteGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    UNMUTE_FIELD_NUMBER: builtins.int
    FOREVER_FIELD_NUMBER: builtins.int
    FOR_DURATION_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    unmute: builtins.bool
    forever: builtins.bool
    @property
    def for_duration(self) -> google.protobuf.duration_pb2.Duration: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        unmute: builtins.bool | None = ...,
        forever: builtins.bool | None = ...,
        for_duration: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["duration", b"duration", "for_duration", b"for_duration", "forever", b"forever", "unmute", b"unmute"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["duration", b"duration", "for_duration", b"for_duration", "forever", b"forever", "group_chat_id", b"group_chat_id", "unmute", b"unmute"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["duration", b"duration"]) -> typing.Literal["unmute", "forever", "for_duration"] | None: ...

Global___MuteGroupChatReq: typing_extensions.TypeAlias = MuteGroupChatReq

@typing.final
class CreateGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TITLE_FIELD_NUMBER: builtins.int
    RECIPIENT_USER_IDS_FIELD_NUMBER: builtins.int
    @property
    def title(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def recipient_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        title: google.protobuf.wrappers_pb2.StringValue | None = ...,
        recipient_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["title", b"title"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["recipient_user_ids", b"recipient_user_ids", "title", b"title"]) -> None: ...

Global___CreateGroupChatReq: typing_extensions.TypeAlias = CreateGroupChatReq

@typing.final
class EditGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    ONLY_ADMINS_INVITE_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    @property
    def title(self) -> google.protobuf.wrappers_pb2.StringValue: ...
    @property
    def only_admins_invite(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        title: google.protobuf.wrappers_pb2.StringValue | None = ...,
        only_admins_invite: google.protobuf.wrappers_pb2.BoolValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["only_admins_invite", b"only_admins_invite", "title", b"title"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "only_admins_invite", b"only_admins_invite", "title", b"title"]) -> None: ...

Global___EditGroupChatReq: typing_extensions.TypeAlias = EditGroupChatReq

@typing.final
class InviteToGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    user_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "user_id", b"user_id"]) -> None: ...

Global___InviteToGroupChatReq: typing_extensions.TypeAlias = InviteToGroupChatReq

@typing.final
class MakeGroupChatAdminReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    user_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "user_id", b"user_id"]) -> None: ...

Global___MakeGroupChatAdminReq: typing_extensions.TypeAlias = MakeGroupChatAdminReq

@typing.final
class RemoveGroupChatUserReq(google.protobuf.message.Message):
    """required fields and types"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    user_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "user_id", b"user_id"]) -> None: ...

Global___RemoveGroupChatUserReq: typing_extensions.TypeAlias = RemoveGroupChatUserReq

@typing.final
class RemoveGroupChatAdminReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    user_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        user_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "user_id", b"user_id"]) -> None: ...

Global___RemoveGroupChatAdminReq: typing_extensions.TypeAlias = RemoveGroupChatAdminReq

@typing.final
class SendMessageReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    text: builtins.str
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        text: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "text", b"text"]) -> None: ...

Global___SendMessageReq: typing_extensions.TypeAlias = SendMessageReq

@typing.final
class SendDirectMessageReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RECIPIENT_USER_ID_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    recipient_user_id: builtins.int
    text: builtins.str
    def __init__(
        self,
        *,
        recipient_user_id: builtins.int | None = ...,
        text: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["recipient_user_id", b"recipient_user_id", "text", b"text"]) -> None: ...

Global___SendDirectMessageReq: typing_extensions.TypeAlias = SendDirectMessageReq

@typing.final
class SendDirectMessageRes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id"]) -> None: ...

Global___SendDirectMessageRes: typing_extensions.TypeAlias = SendDirectMessageRes

@typing.final
class LeaveGroupChatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id"]) -> None: ...

Global___LeaveGroupChatReq: typing_extensions.TypeAlias = LeaveGroupChatReq

@typing.final
class SearchMessagesReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    QUERY_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NUMBER_FIELD_NUMBER: builtins.int
    query: builtins.str
    last_message_id: builtins.int
    number: builtins.int
    def __init__(
        self,
        *,
        query: builtins.str | None = ...,
        last_message_id: builtins.int | None = ...,
        number: builtins.int | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["last_message_id", b"last_message_id", "number", b"number", "query", b"query"]) -> None: ...

Global___SearchMessagesReq: typing_extensions.TypeAlias = SearchMessagesReq

@typing.final
class MessageSearchResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    @property
    def message(self) -> Global___Message: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        message: Global___Message | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["message", b"message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["group_chat_id", b"group_chat_id", "message", b"message"]) -> None: ...

Global___MessageSearchResult: typing_extensions.TypeAlias = MessageSearchResult

@typing.final
class SearchMessagesRes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULTS_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_ID_FIELD_NUMBER: builtins.int
    NO_MORE_FIELD_NUMBER: builtins.int
    last_message_id: builtins.int
    no_more: builtins.bool
    @property
    def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___MessageSearchResult]: ...
    def __init__(
        self,
        *,
        results: collections.abc.Iterable[Global___MessageSearchResult] | None = ...,
        last_message_id: builtins.int | None = ...,
        no_more: builtins.bool | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["last_message_id", b"last_message_id", "no_more", b"no_more", "results", b"results"]) -> None: ...

Global___SearchMessagesRes: typing_extensions.TypeAlias = SearchMessagesRes
