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

import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_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):
    """Shared conversation types used by multiple services (conversations, requests).
    These live in their own leaf file (no couchers imports) so that any service
    can reference them without creating circular proto imports.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    text: builtins.str
    """plain text"""
    def __init__(
        self,
        *,
        text: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["text", b"text"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["target_user_id", b"target_user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["target_user_id", b"target_user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["target_user_id", b"target_user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["target_user_id", b"target_user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["status", b"status"]
    def ClearField(self, field_name: _ClearFieldArgType) -> 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: ...
    _HasFieldArgType: typing_extensions.TypeAlias = 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"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = 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"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType_content: typing_extensions.TypeAlias = 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"]
    _WhichOneofArgType_content: typing_extensions.TypeAlias = typing.Literal["content", b"content"]
    def WhichOneof(self, oneof_group: _WhichOneofArgType_content) -> _WhichOneofReturnType_content | None: ...

Global___Message: typing_extensions.TypeAlias = Message
