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

import builtins
import collections.abc
import discussions_pb2
import events_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import pages_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 CommunityParent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMMUNITY_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SLUG_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    community_id: builtins.int
    name: builtins.str
    slug: builtins.str
    """a short URL fragment generated from the name, e.g. New York City: a guide to Phở might become
    new-york-city-guide-to-pho
    """
    description: builtins.str
    def __init__(
        self,
        *,
        community_id: builtins.int | None = ...,
        name: builtins.str | None = ...,
        slug: builtins.str | None = ...,
        description: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["community_id", b"community_id", "description", b"description", "name", b"name", "slug", b"slug"]) -> None: ...

Global___CommunityParent: typing_extensions.TypeAlias = CommunityParent

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SLUG_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    name: builtins.str
    slug: builtins.str
    """a short URL fragment generated from the name, e.g. New York City: a guide to Phở might become
    new-york-city-guide-to-pho
    """
    description: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        name: builtins.str | None = ...,
        slug: builtins.str | None = ...,
        description: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["description", b"description", "group_id", b"group_id", "name", b"name", "slug", b"slug"]) -> None: ...

Global___GroupParent: typing_extensions.TypeAlias = GroupParent

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

    COMMUNITY_FIELD_NUMBER: builtins.int
    GROUP_FIELD_NUMBER: builtins.int
    @property
    def community(self) -> Global___CommunityParent: ...
    @property
    def group(self) -> Global___GroupParent: ...
    def __init__(
        self,
        *,
        community: Global___CommunityParent | None = ...,
        group: Global___GroupParent | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["community", b"community", "group", b"group", "parent", b"parent"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["community", b"community", "group", b"group", "parent", b"parent"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["parent", b"parent"]) -> typing.Literal["community", "group"] | None: ...

Global___Parent: typing_extensions.TypeAlias = Parent

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SLUG_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    PARENTS_FIELD_NUMBER: builtins.int
    MAIN_PAGE_FIELD_NUMBER: builtins.int
    MEMBER_FIELD_NUMBER: builtins.int
    ADMIN_FIELD_NUMBER: builtins.int
    MEMBER_COUNT_FIELD_NUMBER: builtins.int
    ADMIN_COUNT_FIELD_NUMBER: builtins.int
    CAN_MODERATE_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    name: builtins.str
    slug: builtins.str
    """a short URL fragment generated from the name, e.g. New York City: a guide to Phở might become
    new-york-city-guide-to-pho
    """
    description: builtins.str
    member: builtins.bool
    admin: builtins.bool
    member_count: builtins.int
    admin_count: builtins.int
    can_moderate: builtins.bool
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def parents(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Parent]:
        """list of parents, ordered according to inclusion, e.g. World, Australia, (East Coast Hitchhikers)"""

    @property
    def main_page(self) -> pages_pb2.Page: ...
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        name: builtins.str | None = ...,
        slug: builtins.str | None = ...,
        description: builtins.str | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        parents: collections.abc.Iterable[Global___Parent] | None = ...,
        main_page: pages_pb2.Page | None = ...,
        member: builtins.bool | None = ...,
        admin: builtins.bool | None = ...,
        member_count: builtins.int | None = ...,
        admin_count: builtins.int | None = ...,
        can_moderate: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created", b"created", "main_page", b"main_page"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["admin", b"admin", "admin_count", b"admin_count", "can_moderate", b"can_moderate", "created", b"created", "description", b"description", "group_id", b"group_id", "main_page", b"main_page", "member", b"member", "member_count", b"member_count", "name", b"name", "parents", b"parents", "slug", b"slug"]) -> None: ...

Global___Group: typing_extensions.TypeAlias = Group

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

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

Global___GetGroupReq: typing_extensions.TypeAlias = GetGroupReq

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListAdminsReq: typing_extensions.TypeAlias = ListAdminsReq

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

    ADMIN_USER_IDS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def admin_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        admin_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["admin_user_ids", b"admin_user_ids", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListAdminsRes: typing_extensions.TypeAlias = ListAdminsRes

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListMembersReq: typing_extensions.TypeAlias = ListMembersReq

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

    MEMBER_USER_IDS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def member_user_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        member_user_ids: collections.abc.Iterable[builtins.int] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["member_user_ids", b"member_user_ids", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListMembersRes: typing_extensions.TypeAlias = ListMembersRes

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListPlacesReq: typing_extensions.TypeAlias = ListPlacesReq

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

    PLACES_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def places(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[pages_pb2.Page]: ...
    def __init__(
        self,
        *,
        places: collections.abc.Iterable[pages_pb2.Page] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "places", b"places"]) -> None: ...

Global___ListPlacesRes: typing_extensions.TypeAlias = ListPlacesRes

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListGuidesReq: typing_extensions.TypeAlias = ListGuidesReq

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

    GUIDES_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def guides(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[pages_pb2.Page]: ...
    def __init__(
        self,
        *,
        guides: collections.abc.Iterable[pages_pb2.Page] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["guides", b"guides", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListGuidesRes: typing_extensions.TypeAlias = ListGuidesRes

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAST_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    past: builtins.bool
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        past: builtins.bool | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token", "past", b"past"]) -> None: ...

Global___ListEventsReq: typing_extensions.TypeAlias = ListEventsReq

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

    EVENTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[events_pb2.Event]: ...
    def __init__(
        self,
        *,
        events: collections.abc.Iterable[events_pb2.Event] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["events", b"events", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListEventsRes: typing_extensions.TypeAlias = ListEventsRes

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

    GROUP_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    group_id: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        group_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_id", b"group_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...

Global___ListDiscussionsReq: typing_extensions.TypeAlias = ListDiscussionsReq

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

    DISCUSSIONS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def discussions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[discussions_pb2.Discussion]: ...
    def __init__(
        self,
        *,
        discussions: collections.abc.Iterable[discussions_pb2.Discussion] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["discussions", b"discussions", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListDiscussionsRes: typing_extensions.TypeAlias = ListDiscussionsRes

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

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

Global___JoinGroupReq: typing_extensions.TypeAlias = JoinGroupReq

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

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

Global___LeaveGroupReq: typing_extensions.TypeAlias = LeaveGroupReq

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

    USER_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    """the user to get groups from, set to 0 for current user"""
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["page_size", b"page_size", "page_token", b"page_token", "user_id", b"user_id"]) -> None: ...

Global___ListUserGroupsReq: typing_extensions.TypeAlias = ListUserGroupsReq

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

    GROUPS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    @property
    def groups(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Group]: ...
    def __init__(
        self,
        *,
        groups: collections.abc.Iterable[Global___Group] | None = ...,
        next_page_token: builtins.str | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["groups", b"groups", "next_page_token", b"next_page_token"]) -> None: ...

Global___ListUserGroupsRes: typing_extensions.TypeAlias = ListUserGroupsRes
