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

import api_pb2
import builtins
import collections.abc
import google.protobuf.descriptor
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 _AdminActionLevel:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _AdminActionLevelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AdminActionLevel.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ADMIN_ACTION_LEVEL_UNSPECIFIED: _AdminActionLevel.ValueType  # 0
    ADMIN_ACTION_LEVEL_TRACE: _AdminActionLevel.ValueType  # 4
    """firehose, below debug"""
    ADMIN_ACTION_LEVEL_DEBUG: _AdminActionLevel.ValueType  # 1
    """low-importance chatter"""
    ADMIN_ACTION_LEVEL_NORMAL: _AdminActionLevel.ValueType  # 2
    """regular admin work"""
    ADMIN_ACTION_LEVEL_HIGH: _AdminActionLevel.ValueType  # 3
    """significant state changes"""

class AdminActionLevel(_AdminActionLevel, metaclass=_AdminActionLevelEnumTypeWrapper): ...

ADMIN_ACTION_LEVEL_UNSPECIFIED: AdminActionLevel.ValueType  # 0
ADMIN_ACTION_LEVEL_TRACE: AdminActionLevel.ValueType  # 4
"""firehose, below debug"""
ADMIN_ACTION_LEVEL_DEBUG: AdminActionLevel.ValueType  # 1
"""low-importance chatter"""
ADMIN_ACTION_LEVEL_NORMAL: AdminActionLevel.ValueType  # 2
"""regular admin work"""
ADMIN_ACTION_LEVEL_HIGH: AdminActionLevel.ValueType  # 3
"""significant state changes"""
Global___AdminActionLevel: typing_extensions.TypeAlias = AdminActionLevel

class _NonvisibleUserAccessType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _NonvisibleUserAccessTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NonvisibleUserAccessType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NONVISIBLE_USER_ACCESS_TYPE_UNSPECIFIED: _NonvisibleUserAccessType.ValueType  # 0
    NONVISIBLE_USER_ACCESS_TYPE_LOGIN_ATTEMPT: _NonvisibleUserAccessType.ValueType  # 1
    NONVISIBLE_USER_ACCESS_TYPE_PROFILE_VIEW: _NonvisibleUserAccessType.ValueType  # 2
    NONVISIBLE_USER_ACCESS_TYPE_GHOST_SERVED: _NonvisibleUserAccessType.ValueType  # 3

class NonvisibleUserAccessType(_NonvisibleUserAccessType, metaclass=_NonvisibleUserAccessTypeEnumTypeWrapper): ...

NONVISIBLE_USER_ACCESS_TYPE_UNSPECIFIED: NonvisibleUserAccessType.ValueType  # 0
NONVISIBLE_USER_ACCESS_TYPE_LOGIN_ATTEMPT: NonvisibleUserAccessType.ValueType  # 1
NONVISIBLE_USER_ACCESS_TYPE_PROFILE_VIEW: NonvisibleUserAccessType.ValueType  # 2
NONVISIBLE_USER_ACCESS_TYPE_GHOST_SERVED: NonvisibleUserAccessType.ValueType  # 3
Global___NonvisibleUserAccessType: typing_extensions.TypeAlias = NonvisibleUserAccessType

class _NonvisibleUserState:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _NonvisibleUserStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NonvisibleUserState.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NONVISIBLE_USER_STATE_UNSPECIFIED: _NonvisibleUserState.ValueType  # 0
    NONVISIBLE_USER_STATE_BANNED: _NonvisibleUserState.ValueType  # 1
    NONVISIBLE_USER_STATE_SHADOWED: _NonvisibleUserState.ValueType  # 2
    NONVISIBLE_USER_STATE_DELETED: _NonvisibleUserState.ValueType  # 3

class NonvisibleUserState(_NonvisibleUserState, metaclass=_NonvisibleUserStateEnumTypeWrapper): ...

NONVISIBLE_USER_STATE_UNSPECIFIED: NonvisibleUserState.ValueType  # 0
NONVISIBLE_USER_STATE_BANNED: NonvisibleUserState.ValueType  # 1
NONVISIBLE_USER_STATE_SHADOWED: NonvisibleUserState.ValueType  # 2
NONVISIBLE_USER_STATE_DELETED: NonvisibleUserState.ValueType  # 3
Global___NonvisibleUserState: typing_extensions.TypeAlias = NonvisibleUserState

class _UploadUseType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _UploadUseTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UploadUseType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UPLOAD_USE_TYPE_UNSPECIFIED: _UploadUseType.ValueType  # 0
    UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO: _UploadUseType.ValueType  # 1
    UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO_AVATAR: _UploadUseType.ValueType  # 2
    UPLOAD_USE_TYPE_EVENT: _UploadUseType.ValueType  # 3
    UPLOAD_USE_TYPE_PAGE: _UploadUseType.ValueType  # 4

class UploadUseType(_UploadUseType, metaclass=_UploadUseTypeEnumTypeWrapper): ...

UPLOAD_USE_TYPE_UNSPECIFIED: UploadUseType.ValueType  # 0
UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO: UploadUseType.ValueType  # 1
UPLOAD_USE_TYPE_PROFILE_GALLERY_PHOTO_AVATAR: UploadUseType.ValueType  # 2
UPLOAD_USE_TYPE_EVENT: UploadUseType.ValueType  # 3
UPLOAD_USE_TYPE_PAGE: UploadUseType.ValueType  # 4
Global___UploadUseType: typing_extensions.TypeAlias = UploadUseType

class _OTAPlatform:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _OTAPlatformEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OTAPlatform.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    OTA_PLATFORM_UNSPECIFIED: _OTAPlatform.ValueType  # 0
    OTA_PLATFORM_IOS: _OTAPlatform.ValueType  # 1
    OTA_PLATFORM_ANDROID: _OTAPlatform.ValueType  # 2

class OTAPlatform(_OTAPlatform, metaclass=_OTAPlatformEnumTypeWrapper): ...

OTA_PLATFORM_UNSPECIFIED: OTAPlatform.ValueType  # 0
OTA_PLATFORM_IOS: OTAPlatform.ValueType  # 1
OTA_PLATFORM_ANDROID: OTAPlatform.ValueType  # 2
Global___OTAPlatform: typing_extensions.TypeAlias = OTAPlatform

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

    ADMIN_ACTION_ID_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    ADMIN_USER_ID_FIELD_NUMBER: builtins.int
    ADMIN_USERNAME_FIELD_NUMBER: builtins.int
    ACTION_TYPE_FIELD_NUMBER: builtins.int
    NOTE_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    LEVEL_FIELD_NUMBER: builtins.int
    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    TARGET_USERNAME_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    admin_action_id: builtins.int
    admin_user_id: builtins.int
    admin_username: builtins.str
    action_type: builtins.str
    note: builtins.str
    """optional human-readable note/details"""
    tag: builtins.str
    """for tag-related actions"""
    level: Global___AdminActionLevel.ValueType
    target_user_id: builtins.int
    target_username: builtins.str
    data: builtins.str
    """optional machine-readable JSON payload"""
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        admin_action_id: builtins.int | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        admin_user_id: builtins.int | None = ...,
        admin_username: builtins.str | None = ...,
        action_type: builtins.str | None = ...,
        note: builtins.str | None = ...,
        tag: builtins.str | None = ...,
        level: Global___AdminActionLevel.ValueType | None = ...,
        target_user_id: builtins.int | None = ...,
        target_username: builtins.str | None = ...,
        data: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["created", b"created"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["action_type", b"action_type", "admin_action_id", b"admin_action_id", "admin_user_id", b"admin_user_id", "admin_username", b"admin_username", "created", b"created", "data", b"data", "level", b"level", "note", b"note", "tag", b"tag", "target_user_id", b"target_user_id", "target_username", b"target_username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminActionLog: typing_extensions.TypeAlias = AdminActionLog

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

    ADMIN_TAG_ID_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    admin_tag_id: builtins.int
    tag: builtins.str
    def __init__(
        self,
        *,
        admin_tag_id: builtins.int | None = ...,
        tag: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_tag_id", b"admin_tag_id", "tag", b"tag"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminTagInfo: typing_extensions.TypeAlias = AdminTagInfo

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

    USER_ID_FIELD_NUMBER: builtins.int
    USERNAME_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    GENDER_FIELD_NUMBER: builtins.int
    BIRTHDATE_FIELD_NUMBER: builtins.int
    BANNED_FIELD_NUMBER: builtins.int
    DELETED_FIELD_NUMBER: builtins.int
    SHADOWED_FIELD_NUMBER: builtins.int
    DO_NOT_EMAIL_FIELD_NUMBER: builtins.int
    BADGES_FIELD_NUMBER: builtins.int
    HAS_STRONG_VERIFICATION_FIELD_NUMBER: builtins.int
    BIRTHDATE_VERIFICATION_STATUS_FIELD_NUMBER: builtins.int
    GENDER_VERIFICATION_STATUS_FIELD_NUMBER: builtins.int
    HAS_PASSPORT_SEX_GENDER_EXCEPTION_FIELD_NUMBER: builtins.int
    PENDING_MOD_NOTES_COUNT_FIELD_NUMBER: builtins.int
    ACKNOWLEDGED_MOD_NOTES_COUNT_FIELD_NUMBER: builtins.int
    LAST_MOD_NOTE_ACKNOWLEDGED_FIELD_NUMBER: builtins.int
    ADMIN_ACTIONS_FIELD_NUMBER: builtins.int
    ADMIN_TAGS_FIELD_NUMBER: builtins.int
    MOD_SCORE_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    username: builtins.str
    name: builtins.str
    email: builtins.str
    gender: builtins.str
    birthdate: builtins.str
    banned: builtins.bool
    deleted: builtins.bool
    shadowed: builtins.bool
    do_not_email: builtins.bool
    has_strong_verification: builtins.bool
    birthdate_verification_status: api_pb2.BirthdateVerificationStatus.ValueType
    gender_verification_status: api_pb2.GenderVerificationStatus.ValueType
    has_passport_sex_gender_exception: builtins.bool
    pending_mod_notes_count: builtins.int
    acknowledged_mod_notes_count: builtins.int
    mod_score: builtins.float
    @property
    def badges(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def last_mod_note_acknowledged(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def admin_actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminActionLog]: ...
    @property
    def admin_tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
        username: builtins.str | None = ...,
        name: builtins.str | None = ...,
        email: builtins.str | None = ...,
        gender: builtins.str | None = ...,
        birthdate: builtins.str | None = ...,
        banned: builtins.bool | None = ...,
        deleted: builtins.bool | None = ...,
        shadowed: builtins.bool | None = ...,
        do_not_email: builtins.bool | None = ...,
        badges: collections.abc.Iterable[builtins.str] | None = ...,
        has_strong_verification: builtins.bool | None = ...,
        birthdate_verification_status: api_pb2.BirthdateVerificationStatus.ValueType | None = ...,
        gender_verification_status: api_pb2.GenderVerificationStatus.ValueType | None = ...,
        has_passport_sex_gender_exception: builtins.bool | None = ...,
        pending_mod_notes_count: builtins.int | None = ...,
        acknowledged_mod_notes_count: builtins.int | None = ...,
        last_mod_note_acknowledged: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        admin_actions: collections.abc.Iterable[Global___AdminActionLog] | None = ...,
        admin_tags: collections.abc.Iterable[builtins.str] | None = ...,
        mod_score: builtins.float | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["last_mod_note_acknowledged", b"last_mod_note_acknowledged"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["acknowledged_mod_notes_count", b"acknowledged_mod_notes_count", "admin_actions", b"admin_actions", "admin_tags", b"admin_tags", "badges", b"badges", "banned", b"banned", "birthdate", b"birthdate", "birthdate_verification_status", b"birthdate_verification_status", "deleted", b"deleted", "do_not_email", b"do_not_email", "email", b"email", "gender", b"gender", "gender_verification_status", b"gender_verification_status", "has_passport_sex_gender_exception", b"has_passport_sex_gender_exception", "has_strong_verification", b"has_strong_verification", "last_mod_note_acknowledged", b"last_mod_note_acknowledged", "mod_score", b"mod_score", "name", b"name", "pending_mod_notes_count", b"pending_mod_notes_count", "shadowed", b"shadowed", "user_id", b"user_id", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UserDetails: typing_extensions.TypeAlias = UserDetails

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetUserDetailsReq: typing_extensions.TypeAlias = GetUserDetailsReq

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

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

Global___GetUserReq: typing_extensions.TypeAlias = GetUserReq

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

    USERNAME_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    ADMIN_ACTION_LOG_FIELD_NUMBER: builtins.int
    CITY_FIELD_NUMBER: builtins.int
    MIN_USER_ID_FIELD_NUMBER: builtins.int
    MAX_USER_ID_FIELD_NUMBER: builtins.int
    MIN_BIRTHDATE_FIELD_NUMBER: builtins.int
    MAX_BIRTHDATE_FIELD_NUMBER: builtins.int
    MIN_JOINED_DATE_FIELD_NUMBER: builtins.int
    MAX_JOINED_DATE_FIELD_NUMBER: builtins.int
    MIN_LAST_ACTIVE_DATE_FIELD_NUMBER: builtins.int
    MAX_LAST_ACTIVE_DATE_FIELD_NUMBER: builtins.int
    GENDERS_FIELD_NUMBER: builtins.int
    LANGUAGE_CODES_FIELD_NUMBER: builtins.int
    IS_DELETED_FIELD_NUMBER: builtins.int
    IS_BANNED_FIELD_NUMBER: builtins.int
    IS_SHADOWED_FIELD_NUMBER: builtins.int
    HAS_AVATAR_FIELD_NUMBER: builtins.int
    ADMIN_TAGS_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    username: builtins.str
    email: builtins.str
    name: builtins.str
    admin_action_log: builtins.str
    city: builtins.str
    min_user_id: builtins.int
    max_user_id: builtins.int
    min_birthdate: builtins.str
    """in YYYY-MM-DD format"""
    max_birthdate: builtins.str
    """in YYYY-MM-DD format"""
    min_joined_date: builtins.str
    """in YYYY-MM-DD format"""
    max_joined_date: builtins.str
    """in YYYY-MM-DD format"""
    min_last_active_date: builtins.str
    """in YYYY-MM-DD format"""
    max_last_active_date: builtins.str
    """in YYYY-MM-DD format"""
    page_size: builtins.int
    page_token: builtins.str
    @property
    def genders(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def language_codes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def is_deleted(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def is_banned(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def is_shadowed(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def has_avatar(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    @property
    def admin_tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        username: builtins.str | None = ...,
        email: builtins.str | None = ...,
        name: builtins.str | None = ...,
        admin_action_log: builtins.str | None = ...,
        city: builtins.str | None = ...,
        min_user_id: builtins.int | None = ...,
        max_user_id: builtins.int | None = ...,
        min_birthdate: builtins.str | None = ...,
        max_birthdate: builtins.str | None = ...,
        min_joined_date: builtins.str | None = ...,
        max_joined_date: builtins.str | None = ...,
        min_last_active_date: builtins.str | None = ...,
        max_last_active_date: builtins.str | None = ...,
        genders: collections.abc.Iterable[builtins.str] | None = ...,
        language_codes: collections.abc.Iterable[builtins.str] | None = ...,
        is_deleted: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        is_banned: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        is_shadowed: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        has_avatar: google.protobuf.wrappers_pb2.BoolValue | None = ...,
        admin_tags: collections.abc.Iterable[builtins.str] | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["has_avatar", b"has_avatar", "is_banned", b"is_banned", "is_deleted", b"is_deleted", "is_shadowed", b"is_shadowed"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_action_log", b"admin_action_log", "admin_tags", b"admin_tags", "city", b"city", "email", b"email", "genders", b"genders", "has_avatar", b"has_avatar", "is_banned", b"is_banned", "is_deleted", b"is_deleted", "is_shadowed", b"is_shadowed", "language_codes", b"language_codes", "max_birthdate", b"max_birthdate", "max_joined_date", b"max_joined_date", "max_last_active_date", b"max_last_active_date", "max_user_id", b"max_user_id", "min_birthdate", b"min_birthdate", "min_joined_date", b"min_joined_date", "min_last_active_date", b"min_last_active_date", "min_user_id", b"min_user_id", "name", b"name", "page_size", b"page_size", "page_token", b"page_token", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SearchUsersReq: typing_extensions.TypeAlias = SearchUsersReq

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

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

Global___SearchUsersRes: typing_extensions.TypeAlias = SearchUsersRes

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

    USER_FIELD_NUMBER: builtins.int
    GENDER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    gender: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        gender: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["gender", b"gender", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ChangeUserGenderReq: typing_extensions.TypeAlias = ChangeUserGenderReq

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

    USER_FIELD_NUMBER: builtins.int
    BIRTHDATE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    birthdate: builtins.str
    """in YYYY-MM-DD format"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        birthdate: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["birthdate", b"birthdate", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ChangeUserBirthdateReq: typing_extensions.TypeAlias = ChangeUserBirthdateReq

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

    USER_FIELD_NUMBER: builtins.int
    BADGE_ID_FIELD_NUMBER: builtins.int
    user: builtins.str
    badge_id: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        badge_id: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["badge_id", b"badge_id", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AddBadgeReq: typing_extensions.TypeAlias = AddBadgeReq

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

    USER_FIELD_NUMBER: builtins.int
    BADGE_ID_FIELD_NUMBER: builtins.int
    user: builtins.str
    badge_id: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        badge_id: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["badge_id", b"badge_id", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RemoveBadgeReq: typing_extensions.TypeAlias = RemoveBadgeReq

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

    USER_FIELD_NUMBER: builtins.int
    PASSPORT_SEX_GENDER_EXCEPTION_FIELD_NUMBER: builtins.int
    user: builtins.str
    passport_sex_gender_exception: builtins.bool
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        passport_sex_gender_exception: builtins.bool | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["passport_sex_gender_exception", b"passport_sex_gender_exception", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetPassportSexGenderExceptionReq: typing_extensions.TypeAlias = SetPassportSexGenderExceptionReq

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

    USER_FIELD_NUMBER: builtins.int
    ADMIN_NOTE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    admin_note: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        admin_note: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_note", b"admin_note", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___BanUserReq: typing_extensions.TypeAlias = BanUserReq

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

    USER_FIELD_NUMBER: builtins.int
    ADMIN_NOTE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    admin_note: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        admin_note: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_note", b"admin_note", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UnbanUserReq: typing_extensions.TypeAlias = UnbanUserReq

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

    USER_FIELD_NUMBER: builtins.int
    ADMIN_NOTE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    admin_note: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        admin_note: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_note", b"admin_note", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ShadowUserReq: typing_extensions.TypeAlias = ShadowUserReq

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

    USER_FIELD_NUMBER: builtins.int
    ADMIN_NOTE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    admin_note: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        admin_note: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_note", b"admin_note", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UnshadowUserReq: typing_extensions.TypeAlias = UnshadowUserReq

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

    USER_FIELD_NUMBER: builtins.int
    ADMIN_NOTE_FIELD_NUMBER: builtins.int
    LEVEL_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    admin_note: builtins.str
    """exactly one of admin_note or data must be provided; data is a JSON-encoded object"""
    level: Global___AdminActionLevel.ValueType
    """defaults to NORMAL if unset"""
    data: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        admin_note: builtins.str | None = ...,
        level: Global___AdminActionLevel.ValueType | None = ...,
        data: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_note", b"admin_note", "data", b"data", "level", b"level", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AddAdminNoteReq: typing_extensions.TypeAlias = AddAdminNoteReq

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

    CONTENT_REPORT_ID_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    REPORTING_USER_ID_FIELD_NUMBER: builtins.int
    AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    CONTENT_REF_FIELD_NUMBER: builtins.int
    USER_AGENT_FIELD_NUMBER: builtins.int
    PAGE_FIELD_NUMBER: builtins.int
    content_report_id: builtins.int
    reporting_user_id: builtins.int
    author_user_id: builtins.int
    reason: builtins.str
    description: builtins.str
    content_ref: builtins.str
    user_agent: builtins.str
    page: builtins.str
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        content_report_id: builtins.int | None = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        reporting_user_id: builtins.int | None = ...,
        author_user_id: builtins.int | None = ...,
        reason: builtins.str | None = ...,
        description: builtins.str | None = ...,
        content_ref: builtins.str | None = ...,
        user_agent: builtins.str | None = ...,
        page: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["author_user_id", b"author_user_id", "content_ref", b"content_ref", "content_report_id", b"content_report_id", "description", b"description", "page", b"page", "reason", b"reason", "reporting_user_id", b"reporting_user_id", "time", b"time", "user_agent", b"user_agent"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ContentReport: typing_extensions.TypeAlias = ContentReport

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

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

Global___GetContentReportReq: typing_extensions.TypeAlias = GetContentReportReq

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

    CONTENT_REPORT_FIELD_NUMBER: builtins.int
    @property
    def content_report(self) -> Global___ContentReport: ...
    def __init__(
        self,
        *,
        content_report: Global___ContentReport | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["content_report", b"content_report"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["content_report", b"content_report"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetContentReportRes: typing_extensions.TypeAlias = GetContentReportRes

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

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

Global___GetContentReportsForAuthorReq: typing_extensions.TypeAlias = GetContentReportsForAuthorReq

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

    CONTENT_REPORTS_FIELD_NUMBER: builtins.int
    @property
    def content_reports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ContentReport]: ...
    def __init__(
        self,
        *,
        content_reports: collections.abc.Iterable[Global___ContentReport] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["content_reports", b"content_reports"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetContentReportsForAuthorRes: typing_extensions.TypeAlias = GetContentReportsForAuthorRes

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

    USER_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    INTERNAL_ID_FIELD_NUMBER: builtins.int
    DO_NOT_NOTIFY_FIELD_NUMBER: builtins.int
    user: builtins.str
    content: builtins.str
    """CommonMark without images"""
    internal_id: builtins.str
    """this allows us to track what type of note it is without having to read it individually"""
    do_not_notify: builtins.bool
    """whether to not notify the user about the note: simply show it to them the next time they log on"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        content: builtins.str | None = ...,
        internal_id: builtins.str | None = ...,
        do_not_notify: builtins.bool | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["content", b"content", "do_not_notify", b"do_not_notify", "internal_id", b"internal_id", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SendModNoteReq: typing_extensions.TypeAlias = SendModNoteReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___MarkUserNeedsLocationUpdateReq: typing_extensions.TypeAlias = MarkUserNeedsLocationUpdateReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DeleteUserReq: typing_extensions.TypeAlias = DeleteUserReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RecoverDeletedUserReq: typing_extensions.TypeAlias = RecoverDeletedUserReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateApiKeyReq: typing_extensions.TypeAlias = CreateApiKeyReq

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

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

Global___CreateApiKeyRes: typing_extensions.TypeAlias = CreateApiKeyRes

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetChatsReq: typing_extensions.TypeAlias = GetChatsReq

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

    USER_ID_FIELD_NUMBER: builtins.int
    USERNAME_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    BIRTHDATE_FIELD_NUMBER: builtins.int
    GENDER_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    username: builtins.str
    name: builtins.str
    birthdate: builtins.str
    gender: builtins.str
    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
        username: builtins.str | None = ...,
        name: builtins.str | None = ...,
        birthdate: builtins.str | None = ...,
        gender: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["birthdate", b"birthdate", "gender", b"gender", "name", b"name", "user_id", b"user_id", "username", b"username"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ChatUserInfo: typing_extensions.TypeAlias = ChatUserInfo

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

    MESSAGE_ID_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    MESSAGE_TYPE_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    HOST_REQUEST_STATUS_TARGET_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    message_id: builtins.int
    message_type: builtins.str
    """e.g. "text", "chat_created", "host_request_status_changed" """
    text: builtins.str
    host_request_status_target: builtins.str
    """if applicable"""
    @property
    def author(self) -> Global___ChatUserInfo: ...
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def target(self) -> Global___ChatUserInfo:
        """for user_invited, user_made_admin, etc."""

    def __init__(
        self,
        *,
        message_id: builtins.int | None = ...,
        author: Global___ChatUserInfo | None = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        message_type: builtins.str | None = ...,
        text: builtins.str | None = ...,
        host_request_status_target: builtins.str | None = ...,
        target: Global___ChatUserInfo | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["author", b"author", "target", b"target", "time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["author", b"author", "host_request_status_target", b"host_request_status_target", "message_id", b"message_id", "message_type", b"message_type", "target", b"target", "text", b"text", "time", b"time"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ChatMessage: typing_extensions.TypeAlias = ChatMessage

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

    USER_FIELD_NUMBER: builtins.int
    JOINED_FIELD_NUMBER: builtins.int
    LEFT_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    role: builtins.str
    """e.g. "admin", "participant" """
    @property
    def user(self) -> Global___ChatUserInfo: ...
    @property
    def joined(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def left(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """not set if still member"""

    def __init__(
        self,
        *,
        user: Global___ChatUserInfo | None = ...,
        joined: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        left: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        role: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["joined", b"joined", "left", b"left", "user", b"user"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["joined", b"joined", "left", b"left", "role", b"role", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GroupChatMember: typing_extensions.TypeAlias = GroupChatMember

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

    GROUP_CHAT_ID_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    IS_DM_FIELD_NUMBER: builtins.int
    CREATOR_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    MESSAGES_FIELD_NUMBER: builtins.int
    group_chat_id: builtins.int
    title: builtins.str
    is_dm: builtins.bool
    @property
    def creator(self) -> Global___ChatUserInfo: ...
    @property
    def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___GroupChatMember]: ...
    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ChatMessage]: ...
    def __init__(
        self,
        *,
        group_chat_id: builtins.int | None = ...,
        title: builtins.str | None = ...,
        is_dm: builtins.bool | None = ...,
        creator: Global___ChatUserInfo | None = ...,
        members: collections.abc.Iterable[Global___GroupChatMember] | None = ...,
        messages: collections.abc.Iterable[Global___ChatMessage] | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["creator", b"creator"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["creator", b"creator", "group_chat_id", b"group_chat_id", "is_dm", b"is_dm", "members", b"members", "messages", b"messages", "title", b"title"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminGroupChat: typing_extensions.TypeAlias = AdminGroupChat

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

    HOST_REQUEST_ID_FIELD_NUMBER: builtins.int
    SURFER_FIELD_NUMBER: builtins.int
    HOST_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    FROM_DATE_FIELD_NUMBER: builtins.int
    TO_DATE_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    MESSAGES_FIELD_NUMBER: builtins.int
    host_request_id: builtins.int
    status: builtins.str
    from_date: builtins.str
    to_date: builtins.str
    @property
    def surfer(self) -> Global___ChatUserInfo: ...
    @property
    def host(self) -> Global___ChatUserInfo: ...
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ChatMessage]: ...
    def __init__(
        self,
        *,
        host_request_id: builtins.int | None = ...,
        surfer: Global___ChatUserInfo | None = ...,
        host: Global___ChatUserInfo | None = ...,
        status: builtins.str | None = ...,
        from_date: builtins.str | None = ...,
        to_date: builtins.str | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        messages: collections.abc.Iterable[Global___ChatMessage] | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["created", b"created", "host", b"host", "surfer", b"surfer"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["created", b"created", "from_date", b"from_date", "host", b"host", "host_request_id", b"host_request_id", "messages", b"messages", "status", b"status", "surfer", b"surfer", "to_date", b"to_date"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminHostRequest: typing_extensions.TypeAlias = AdminHostRequest

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

    USER_FIELD_NUMBER: builtins.int
    HOST_REQUESTS_FIELD_NUMBER: builtins.int
    GROUP_CHATS_FIELD_NUMBER: builtins.int
    @property
    def user(self) -> Global___ChatUserInfo: ...
    @property
    def host_requests(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminHostRequest]: ...
    @property
    def group_chats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminGroupChat]: ...
    def __init__(
        self,
        *,
        user: Global___ChatUserInfo | None = ...,
        host_requests: collections.abc.Iterable[Global___AdminHostRequest] | None = ...,
        group_chats: collections.abc.Iterable[Global___AdminGroupChat] | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["group_chats", b"group_chats", "host_requests", b"host_requests", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetChatsRes: typing_extensions.TypeAlias = GetChatsRes

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

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

Global___DeleteEventReq: typing_extensions.TypeAlias = DeleteEventReq

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

    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    page_size: builtins.int
    page_token: builtins.str
    @property
    def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["end_time", b"end_time", "start_time", b"start_time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["end_time", b"end_time", "page_size", b"page_size", "page_token", b"page_token", "start_time", b"start_time"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListUserIdsReq: typing_extensions.TypeAlias = ListUserIdsReq

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

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

Global___ListUserIdsRes: typing_extensions.TypeAlias = ListUserIdsRes

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

    REFERENCE_ID_FIELD_NUMBER: builtins.int
    NEW_TEXT_FIELD_NUMBER: builtins.int
    reference_id: builtins.int
    new_text: builtins.str
    def __init__(
        self,
        *,
        reference_id: builtins.int | None = ...,
        new_text: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["new_text", b"new_text", "reference_id", b"reference_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___EditReferenceTextReq: typing_extensions.TypeAlias = EditReferenceTextReq

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

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

Global___DeleteReferenceReq: typing_extensions.TypeAlias = DeleteReferenceReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetUserReferencesReq: typing_extensions.TypeAlias = GetUserReferencesReq

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

    REFERENCE_ID_FIELD_NUMBER: builtins.int
    FROM_USER_ID_FIELD_NUMBER: builtins.int
    TO_USER_ID_FIELD_NUMBER: builtins.int
    REFERENCE_TYPE_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    PRIVATE_TEXT_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    HOST_REQUEST_ID_FIELD_NUMBER: builtins.int
    RATING_FIELD_NUMBER: builtins.int
    WAS_APPROPRIATE_FIELD_NUMBER: builtins.int
    reference_id: builtins.int
    from_user_id: builtins.int
    to_user_id: builtins.int
    reference_type: builtins.str
    text: builtins.str
    private_text: builtins.str
    host_request_id: builtins.int
    rating: builtins.float
    was_appropriate: builtins.bool
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        reference_id: builtins.int | None = ...,
        from_user_id: builtins.int | None = ...,
        to_user_id: builtins.int | None = ...,
        reference_type: builtins.str | None = ...,
        text: builtins.str | None = ...,
        private_text: builtins.str | None = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        host_request_id: builtins.int | None = ...,
        rating: builtins.float | None = ...,
        was_appropriate: builtins.bool | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["from_user_id", b"from_user_id", "host_request_id", b"host_request_id", "private_text", b"private_text", "rating", b"rating", "reference_id", b"reference_id", "reference_type", b"reference_type", "text", b"text", "time", b"time", "to_user_id", b"to_user_id", "was_appropriate", b"was_appropriate"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminReference: typing_extensions.TypeAlias = AdminReference

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

    REFERENCES_FROM_FIELD_NUMBER: builtins.int
    REFERENCES_TO_FIELD_NUMBER: builtins.int
    @property
    def references_from(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminReference]:
        """References written by the user"""

    @property
    def references_to(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminReference]:
        """References written about the user"""

    def __init__(
        self,
        *,
        references_from: collections.abc.Iterable[Global___AdminReference] | None = ...,
        references_to: collections.abc.Iterable[Global___AdminReference] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["references_from", b"references_from", "references_to", b"references_to"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetUserReferencesRes: typing_extensions.TypeAlias = GetUserReferencesRes

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetFriendRequestsReq: typing_extensions.TypeAlias = GetFriendRequestsReq

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

    FRIEND_REQUEST_ID_FIELD_NUMBER: builtins.int
    FROM_USER_FIELD_NUMBER: builtins.int
    TO_USER_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TIME_SENT_FIELD_NUMBER: builtins.int
    TIME_RESPONDED_FIELD_NUMBER: builtins.int
    MODERATION_VISIBILITY_FIELD_NUMBER: builtins.int
    friend_request_id: builtins.int
    status: builtins.str
    """"pending", "accepted", "rejected", "cancelled" """
    moderation_visibility: builtins.str
    """"hidden", "shadowed", "unlisted", "visible" """
    @property
    def from_user(self) -> Global___ChatUserInfo: ...
    @property
    def to_user(self) -> Global___ChatUserInfo: ...
    @property
    def time_sent(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def time_responded(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        friend_request_id: builtins.int | None = ...,
        from_user: Global___ChatUserInfo | None = ...,
        to_user: Global___ChatUserInfo | None = ...,
        status: builtins.str | None = ...,
        time_sent: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        time_responded: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        moderation_visibility: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["from_user", b"from_user", "time_responded", b"time_responded", "time_sent", b"time_sent", "to_user", b"to_user"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["friend_request_id", b"friend_request_id", "from_user", b"from_user", "moderation_visibility", b"moderation_visibility", "status", b"status", "time_responded", b"time_responded", "time_sent", b"time_sent", "to_user", b"to_user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AdminFriendRequest: typing_extensions.TypeAlias = AdminFriendRequest

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

    SENT_FIELD_NUMBER: builtins.int
    RECEIVED_FIELD_NUMBER: builtins.int
    @property
    def sent(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminFriendRequest]:
        """Friend requests sent by the user"""

    @property
    def received(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminFriendRequest]:
        """Friend requests received by the user"""

    def __init__(
        self,
        *,
        sent: collections.abc.Iterable[Global___AdminFriendRequest] | None = ...,
        received: collections.abc.Iterable[Global___AdminFriendRequest] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["received", b"received", "sent", b"sent"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetFriendRequestsRes: typing_extensions.TypeAlias = GetFriendRequestsRes

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

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

Global___GetNonvisibleUserAccessLogReq: typing_extensions.TypeAlias = GetNonvisibleUserAccessLogReq

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

    TIME_FIELD_NUMBER: builtins.int
    ACCESS_TYPE_FIELD_NUMBER: builtins.int
    TARGET_STATE_FIELD_NUMBER: builtins.int
    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    ACTOR_USER_ID_FIELD_NUMBER: builtins.int
    ACTOR_USERNAME_FIELD_NUMBER: builtins.int
    IP_ADDRESS_FIELD_NUMBER: builtins.int
    USER_AGENT_FIELD_NUMBER: builtins.int
    SOFA_FIELD_NUMBER: builtins.int
    access_type: Global___NonvisibleUserAccessType.ValueType
    target_state: Global___NonvisibleUserState.ValueType
    target_user_id: builtins.int
    actor_username: builtins.str
    ip_address: builtins.str
    user_agent: builtins.str
    sofa: builtins.str
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def actor_user_id(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    def __init__(
        self,
        *,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        access_type: Global___NonvisibleUserAccessType.ValueType | None = ...,
        target_state: Global___NonvisibleUserState.ValueType | None = ...,
        target_user_id: builtins.int | None = ...,
        actor_user_id: google.protobuf.wrappers_pb2.Int64Value | None = ...,
        actor_username: builtins.str | None = ...,
        ip_address: builtins.str | None = ...,
        user_agent: builtins.str | None = ...,
        sofa: builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["actor_user_id", b"actor_user_id", "time", b"time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["access_type", b"access_type", "actor_user_id", b"actor_user_id", "actor_username", b"actor_username", "ip_address", b"ip_address", "sofa", b"sofa", "target_state", b"target_state", "target_user_id", b"target_user_id", "time", b"time", "user_agent", b"user_agent"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___NonvisibleUserAccessLogEntry: typing_extensions.TypeAlias = NonvisibleUserAccessLogEntry

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

    ENTRIES_FIELD_NUMBER: builtins.int
    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NonvisibleUserAccessLogEntry]: ...
    def __init__(
        self,
        *,
        entries: collections.abc.Iterable[Global___NonvisibleUserAccessLogEntry] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["entries", b"entries"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetNonvisibleUserAccessLogRes: typing_extensions.TypeAlias = GetNonvisibleUserAccessLogRes

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

    DISCUSSION_ID_FIELD_NUMBER: builtins.int
    NEW_TITLE_FIELD_NUMBER: builtins.int
    NEW_CONTENT_FIELD_NUMBER: builtins.int
    discussion_id: builtins.int
    new_title: builtins.str
    new_content: builtins.str
    def __init__(
        self,
        *,
        discussion_id: builtins.int | None = ...,
        new_title: builtins.str | None = ...,
        new_content: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["discussion_id", b"discussion_id", "new_content", b"new_content", "new_title", b"new_title"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___EditDiscussionReq: typing_extensions.TypeAlias = EditDiscussionReq

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

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

Global___AdminDeleteDiscussionReq: typing_extensions.TypeAlias = AdminDeleteDiscussionReq

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

    REPLY_ID_FIELD_NUMBER: builtins.int
    NEW_CONTENT_FIELD_NUMBER: builtins.int
    reply_id: builtins.int
    new_content: builtins.str
    def __init__(
        self,
        *,
        reply_id: builtins.int | None = ...,
        new_content: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["new_content", b"new_content", "reply_id", b"reply_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___EditReplyReq: typing_extensions.TypeAlias = EditReplyReq

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

    USERS_FIELD_NUMBER: builtins.int
    MODERATION_LIST_ID_FIELD_NUMBER: builtins.int
    moderation_list_id: builtins.int
    @property
    def users(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """username, email, or user id"""

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

Global___AddUsersToModerationUserListReq: typing_extensions.TypeAlias = AddUsersToModerationUserListReq

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

    USER_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListModerationUserListsReq: typing_extensions.TypeAlias = ListModerationUserListsReq

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

    MODERATION_LIST_ID_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    moderation_list_id: builtins.int
    @property
    def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___UserDetails]: ...
    def __init__(
        self,
        *,
        moderation_list_id: builtins.int | None = ...,
        members: collections.abc.Iterable[Global___UserDetails] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["members", b"members", "moderation_list_id", b"moderation_list_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ModerationList: typing_extensions.TypeAlias = ModerationList

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

    MODERATION_LISTS_FIELD_NUMBER: builtins.int
    @property
    def moderation_lists(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ModerationList]: ...
    def __init__(
        self,
        *,
        moderation_lists: collections.abc.Iterable[Global___ModerationList] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["moderation_lists", b"moderation_lists"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListModerationUserListsRes: typing_extensions.TypeAlias = ListModerationUserListsRes

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

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

Global___AddUsersToModerationUserListRes: typing_extensions.TypeAlias = AddUsersToModerationUserListRes

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

    USER_FIELD_NUMBER: builtins.int
    MODERATION_LIST_ID_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    moderation_list_id: builtins.int
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        moderation_list_id: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["moderation_list_id", b"moderation_list_id", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RemoveUserFromModerationUserListReq: typing_extensions.TypeAlias = RemoveUserFromModerationUserListReq

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

    USER_FIELD_NUMBER: builtins.int
    EXPIRY_DAYS_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    expiry_days: builtins.int
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        expiry_days: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["expiry_days", b"expiry_days", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateAccountDeletionLinkReq: typing_extensions.TypeAlias = CreateAccountDeletionLinkReq

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

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

Global___CreateAccountDeletionLinkRes: typing_extensions.TypeAlias = CreateAccountDeletionLinkRes

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

    USER_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    @property
    def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["end_time", b"end_time", "start_time", b"start_time"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["end_time", b"end_time", "start_time", b"start_time", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AccessStatsReq: typing_extensions.TypeAlias = AccessStatsReq

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

    IP_ADDRESS_FIELD_NUMBER: builtins.int
    ASN_FIELD_NUMBER: builtins.int
    ASORG_FIELD_NUMBER: builtins.int
    ASNETWORK_FIELD_NUMBER: builtins.int
    USER_AGENT_FIELD_NUMBER: builtins.int
    OPERATING_SYSTEM_FIELD_NUMBER: builtins.int
    BROWSER_FIELD_NUMBER: builtins.int
    DEVICE_FIELD_NUMBER: builtins.int
    APPROXIMATE_LOCATION_FIELD_NUMBER: builtins.int
    API_CALL_COUNT_FIELD_NUMBER: builtins.int
    PERIODS_COUNT_FIELD_NUMBER: builtins.int
    FIRST_SEEN_FIELD_NUMBER: builtins.int
    LAST_SEEN_FIELD_NUMBER: builtins.int
    ip_address: builtins.str
    asn: builtins.str
    asorg: builtins.str
    asnetwork: builtins.str
    user_agent: builtins.str
    operating_system: builtins.str
    browser: builtins.str
    device: builtins.str
    approximate_location: builtins.str
    api_call_count: builtins.int
    periods_count: builtins.int
    @property
    def first_seen(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def last_seen(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        ip_address: builtins.str | None = ...,
        asn: builtins.str | None = ...,
        asorg: builtins.str | None = ...,
        asnetwork: builtins.str | None = ...,
        user_agent: builtins.str | None = ...,
        operating_system: builtins.str | None = ...,
        browser: builtins.str | None = ...,
        device: builtins.str | None = ...,
        approximate_location: builtins.str | None = ...,
        api_call_count: builtins.int | None = ...,
        periods_count: builtins.int | None = ...,
        first_seen: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_seen: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["first_seen", b"first_seen", "last_seen", b"last_seen"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["api_call_count", b"api_call_count", "approximate_location", b"approximate_location", "asn", b"asn", "asnetwork", b"asnetwork", "asorg", b"asorg", "browser", b"browser", "device", b"device", "first_seen", b"first_seen", "ip_address", b"ip_address", "last_seen", b"last_seen", "operating_system", b"operating_system", "periods_count", b"periods_count", "user_agent", b"user_agent"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AccessStat: typing_extensions.TypeAlias = AccessStat

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

    STATS_FIELD_NUMBER: builtins.int
    @property
    def stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AccessStat]: ...
    def __init__(
        self,
        *,
        stats: collections.abc.Iterable[Global___AccessStat] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["stats", b"stats"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AccessStatsRes: typing_extensions.TypeAlias = AccessStatsRes

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

    USER_FIELD_NUMBER: builtins.int
    LAST_DONATED_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    @property
    def last_donated(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """if not set, clears last_donated (removes donor status)"""

    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        last_donated: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["last_donated", b"last_donated"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["last_donated", b"last_donated", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetLastDonatedReq: typing_extensions.TypeAlias = SetLastDonatedReq

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

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

Global___CreateAdminTagReq: typing_extensions.TypeAlias = CreateAdminTagReq

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

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

Global___ListAdminTagsReq: typing_extensions.TypeAlias = ListAdminTagsReq

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

    TAGS_FIELD_NUMBER: builtins.int
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___AdminTagInfo]: ...
    def __init__(
        self,
        *,
        tags: collections.abc.Iterable[Global___AdminTagInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["tags", b"tags"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListAdminTagsRes: typing_extensions.TypeAlias = ListAdminTagsRes

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

    USER_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    user: builtins.str
    tag: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        tag: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["tag", b"tag", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___AddAdminTagToUserReq: typing_extensions.TypeAlias = AddAdminTagToUserReq

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

    USER_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    user: builtins.str
    tag: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        tag: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["tag", b"tag", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___RemoveAdminTagFromUserReq: typing_extensions.TypeAlias = RemoveAdminTagFromUserReq

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

    USER_FIELD_NUMBER: builtins.int
    MOD_SCORE_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    mod_score: builtins.float
    def __init__(
        self,
        *,
        user: builtins.str | None = ...,
        mod_score: builtins.float | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["mod_score", b"mod_score", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetModScoreReq: typing_extensions.TypeAlias = SetModScoreReq

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

    ADMIN_USER_ID_FIELD_NUMBER: builtins.int
    TARGET_USER_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    admin_user_id: builtins.int
    """Filter to actions performed by this admin (optional)"""
    target_user_id: builtins.int
    """Filter to actions targeting this user (optional)"""
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        admin_user_id: builtins.int | None = ...,
        target_user_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["admin_user_id", b"admin_user_id", "page_size", b"page_size", "page_token", b"page_token", "target_user_id", b"target_user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListAdminActionsReq: typing_extensions.TypeAlias = ListAdminActionsReq

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

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

Global___ListAdminActionsRes: typing_extensions.TypeAlias = ListAdminActionsRes

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

    USER_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    user: builtins.str
    """username, email, or user id"""
    page_size: builtins.int
    page_token: builtins.str
    def __init__(
        self,
        *,
        user: builtins.str | 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", "user", b"user"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListUserUploadsReq: typing_extensions.TypeAlias = ListUserUploadsReq

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

    TYPE_FIELD_NUMBER: builtins.int
    IS_CURRENT_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    EVENT_ID_FIELD_NUMBER: builtins.int
    PAGE_ID_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    type: Global___UploadUseType.ValueType
    is_current: builtins.bool
    """whether this use is the one currently shown (vs. a superseded page version or deleted occurrence)"""
    user_id: builtins.int
    """only the identifier relevant to the type is set"""
    event_id: builtins.int
    page_id: builtins.int
    url: builtins.str
    """link to the use (user profile, event, community page); not set for places/guides (no frontend route yet)"""
    def __init__(
        self,
        *,
        type: Global___UploadUseType.ValueType | None = ...,
        is_current: builtins.bool | None = ...,
        user_id: builtins.int | None = ...,
        event_id: builtins.int | None = ...,
        page_id: builtins.int | None = ...,
        url: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["event_id", b"event_id", "is_current", b"is_current", "page_id", b"page_id", "type", b"type", "url", b"url", "user_id", b"user_id"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UploadUse: typing_extensions.TypeAlias = UploadUse

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

    KEY_FIELD_NUMBER: builtins.int
    FILENAME_FIELD_NUMBER: builtins.int
    FULL_URL_FIELD_NUMBER: builtins.int
    THUMBNAIL_URL_FIELD_NUMBER: builtins.int
    CREDIT_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    USES_FIELD_NUMBER: builtins.int
    key: builtins.str
    filename: builtins.str
    full_url: builtins.str
    thumbnail_url: builtins.str
    credit: builtins.str
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def uses(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___UploadUse]: ...
    def __init__(
        self,
        *,
        key: builtins.str | None = ...,
        filename: builtins.str | None = ...,
        full_url: builtins.str | None = ...,
        thumbnail_url: builtins.str | None = ...,
        credit: builtins.str | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        uses: collections.abc.Iterable[Global___UploadUse] | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["created", b"created"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["created", b"created", "credit", b"credit", "filename", b"filename", "full_url", b"full_url", "key", b"key", "thumbnail_url", b"thumbnail_url", "uses", b"uses"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UserUpload: typing_extensions.TypeAlias = UserUpload

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

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

Global___ListUserUploadsRes: typing_extensions.TypeAlias = ListUserUploadsRes

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

    OTA_PACKAGE_ID_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    CREATOR_USER_ID_FIELD_NUMBER: builtins.int
    PLATFORM_FIELD_NUMBER: builtins.int
    FINGERPRINT_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    MANIFEST_CREATED_AT_FIELD_NUMBER: builtins.int
    MANIFEST_ID_FIELD_NUMBER: builtins.int
    BANNED_FIELD_NUMBER: builtins.int
    BANNED_AT_FIELD_NUMBER: builtins.int
    BANNED_BY_USER_ID_FIELD_NUMBER: builtins.int
    BANNED_REASON_FIELD_NUMBER: builtins.int
    LIVE_FIELD_NUMBER: builtins.int
    ota_package_id: builtins.int
    creator_user_id: builtins.int
    platform: Global___OTAPlatform.ValueType
    fingerprint: builtins.str
    """The Expo build fingerprint this bundle is compatible with (the manifest's runtimeVersion)."""
    version: builtins.str
    """The immutable CDN path component the signed manifest is published under (e.g. v1.3.<commit>.<sha>)."""
    manifest_id: builtins.str
    """The manifest's own id (uuid), for reference."""
    banned: builtins.bool
    banned_by_user_id: builtins.int
    banned_reason: builtins.str
    live: builtins.bool
    """True if this is the package currently served to a matching client: the newest non-banned
    package for its platform + fingerprint.
    """
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def manifest_created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """The manifest's createdAt: the publish/stamp time used to order rollouts (a rollback re-stamps a
        newer one). The newest per fingerprint is served.
        """

    @property
    def banned_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        ota_package_id: builtins.int | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        creator_user_id: builtins.int | None = ...,
        platform: Global___OTAPlatform.ValueType | None = ...,
        fingerprint: builtins.str | None = ...,
        version: builtins.str | None = ...,
        manifest_created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        manifest_id: builtins.str | None = ...,
        banned: builtins.bool | None = ...,
        banned_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        banned_by_user_id: builtins.int | None = ...,
        banned_reason: builtins.str | None = ...,
        live: builtins.bool | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["banned_at", b"banned_at", "created", b"created", "manifest_created_at", b"manifest_created_at"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["banned", b"banned", "banned_at", b"banned_at", "banned_by_user_id", b"banned_by_user_id", "banned_reason", b"banned_reason", "created", b"created", "creator_user_id", b"creator_user_id", "fingerprint", b"fingerprint", "live", b"live", "manifest_created_at", b"manifest_created_at", "manifest_id", b"manifest_id", "ota_package_id", b"ota_package_id", "platform", b"platform", "version", b"version"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___OTAPackage: typing_extensions.TypeAlias = OTAPackage

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

    PLATFORM_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    platform: Global___OTAPlatform.ValueType
    version: builtins.str
    """The immutable CDN path component the signed manifest was published under (e.g.
    v1.3.<commit>.<sha>). The backend fetches {cdn_root}/{version}/{platform}/manifest and reads
    runtimeVersion / createdAt / id out of the manifest it's about to serve.
    """
    def __init__(
        self,
        *,
        platform: Global___OTAPlatform.ValueType | None = ...,
        version: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["platform", b"platform", "version", b"version"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CreateOTAPackageReq: typing_extensions.TypeAlias = CreateOTAPackageReq

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

    PLATFORM_FIELD_NUMBER: builtins.int
    FINGERPRINT_FIELD_NUMBER: builtins.int
    INCLUDE_BANNED_FIELD_NUMBER: builtins.int
    platform: Global___OTAPlatform.ValueType
    """Optional: only return packages for this platform."""
    fingerprint: builtins.str
    """Optional: only return packages with this fingerprint (the build's runtimeVersion)."""
    include_banned: builtins.bool
    """Include banned packages too (default only non-banned)."""
    def __init__(
        self,
        *,
        platform: Global___OTAPlatform.ValueType | None = ...,
        fingerprint: builtins.str | None = ...,
        include_banned: builtins.bool | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["fingerprint", b"fingerprint", "include_banned", b"include_banned", "platform", b"platform"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListOTAPackagesReq: typing_extensions.TypeAlias = ListOTAPackagesReq

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

    PACKAGES_FIELD_NUMBER: builtins.int
    @property
    def packages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___OTAPackage]:
        """Newest first."""

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

Global___ListOTAPackagesRes: typing_extensions.TypeAlias = ListOTAPackagesRes

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

    OTA_PACKAGE_ID_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    ota_package_id: builtins.int
    reason: builtins.str
    def __init__(
        self,
        *,
        ota_package_id: builtins.int | None = ...,
        reason: builtins.str | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["ota_package_id", b"ota_package_id", "reason", b"reason"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___BanOTAPackageReq: typing_extensions.TypeAlias = BanOTAPackageReq
