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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.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

@typing.final
class Thread(google.protobuf.message.Message):
    """object returned by pages, discussions etc to refer to top level threads."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    THREAD_ID_FIELD_NUMBER: builtins.int
    NUM_RESPONSES_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    """top level thread id."""
    num_responses: builtins.int
    """total number of comments and replies to comments."""
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
        num_responses: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["num_responses", b"num_responses", "thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Thread: typing_extensions.TypeAlias = Thread

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    page_size: builtins.int
    """Maximum number of replies to return. Defaults to 1000."""
    page_token: builtins.str
    """A page token, received from a previous `GetThread` call.
    Provide this to retrieve the subsequent page.

    When paginating, `thread_id` must match
    the call that provided the page token.
    """
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["page_size", b"page_size", "page_token", b"page_token", "thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetThreadReq: typing_extensions.TypeAlias = GetThreadReq

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

    REPLIES_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    """A token that can be sent as `page_token` to retrieve the next page.
    If this field is omitted, there are no subsequent pages.
    """
    @property
    def replies(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Reply]:
        """sorted in inverse time order, latest reply first."""

    def __init__(
        self,
        *,
        replies: collections.abc.Iterable[Global___Reply] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["next_page_token", b"next_page_token", "replies", b"replies"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetThreadRes: typing_extensions.TypeAlias = GetThreadRes

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    CREATED_TIME_FIELD_NUMBER: builtins.int
    NUM_REPLIES_FIELD_NUMBER: builtins.int
    DELETED_FIELD_NUMBER: builtins.int
    CAN_EDIT_FIELD_NUMBER: builtins.int
    LAST_EDITED_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    """id of this comment"""
    content: builtins.str
    """CommonMark without images"""
    author_user_id: builtins.int
    num_replies: builtins.int
    """number of replies to this comment"""
    deleted: builtins.bool
    can_edit: builtins.bool
    @property
    def created_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def last_edited(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
        content: builtins.str | None = ...,
        author_user_id: builtins.int | None = ...,
        created_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        num_replies: builtins.int | None = ...,
        deleted: builtins.bool | None = ...,
        can_edit: builtins.bool | None = ...,
        last_edited: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["created_time", b"created_time", "last_edited", b"last_edited"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["author_user_id", b"author_user_id", "can_edit", b"can_edit", "content", b"content", "created_time", b"created_time", "deleted", b"deleted", "last_edited", b"last_edited", "num_replies", b"num_replies", "thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Reply: typing_extensions.TypeAlias = Reply

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    """The comment to reply to"""
    content: builtins.str
    """CommonMark without images"""
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
        content: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["content", b"content", "thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PostReplyReq: typing_extensions.TypeAlias = PostReplyReq

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    """The id of the just posted comment"""
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PostReplyRes: typing_extensions.TypeAlias = PostReplyRes

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    content: builtins.str
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
        content: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["content", b"content", "thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UpdateReplyReq: typing_extensions.TypeAlias = UpdateReplyReq

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

    THREAD_ID_FIELD_NUMBER: builtins.int
    thread_id: builtins.int
    def __init__(
        self,
        *,
        thread_id: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thread_id", b"thread_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteReplyReq: typing_extensions.TypeAlias = DeleteReplyReq
