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

import admin_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 sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

class _ModerationVisibilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModerationVisibility.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MODERATION_VISIBILITY_UNSPECIFIED: _ModerationVisibility.ValueType  # 0
    MODERATION_VISIBILITY_HIDDEN: _ModerationVisibility.ValueType  # 1
    """Only visible to moderators"""
    MODERATION_VISIBILITY_SHADOWED: _ModerationVisibility.ValueType  # 2
    """Visible to author & recipient, not in listings"""
    MODERATION_VISIBILITY_VISIBLE: _ModerationVisibility.ValueType  # 3
    """Fully visible AND appears in listings"""
    MODERATION_VISIBILITY_UNLISTED: _ModerationVisibility.ValueType  # 4
    """Visible at direct links, but not in listings"""

class ModerationVisibility(_ModerationVisibility, metaclass=_ModerationVisibilityEnumTypeWrapper): ...

MODERATION_VISIBILITY_UNSPECIFIED: ModerationVisibility.ValueType  # 0
MODERATION_VISIBILITY_HIDDEN: ModerationVisibility.ValueType  # 1
"""Only visible to moderators"""
MODERATION_VISIBILITY_SHADOWED: ModerationVisibility.ValueType  # 2
"""Visible to author & recipient, not in listings"""
MODERATION_VISIBILITY_VISIBLE: ModerationVisibility.ValueType  # 3
"""Fully visible AND appears in listings"""
MODERATION_VISIBILITY_UNLISTED: ModerationVisibility.ValueType  # 4
"""Visible at direct links, but not in listings"""
Global___ModerationVisibility: typing_extensions.TypeAlias = ModerationVisibility

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

class _ModerationTriggerEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModerationTrigger.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MODERATION_TRIGGER_UNSPECIFIED: _ModerationTrigger.ValueType  # 0
    MODERATION_TRIGGER_INITIAL_REVIEW: _ModerationTrigger.ValueType  # 1
    MODERATION_TRIGGER_USER_FLAG: _ModerationTrigger.ValueType  # 2
    MODERATION_TRIGGER_MACHINE_FLAG: _ModerationTrigger.ValueType  # 3
    MODERATION_TRIGGER_MODERATOR_REVIEW: _ModerationTrigger.ValueType  # 4

class ModerationTrigger(_ModerationTrigger, metaclass=_ModerationTriggerEnumTypeWrapper): ...

MODERATION_TRIGGER_UNSPECIFIED: ModerationTrigger.ValueType  # 0
MODERATION_TRIGGER_INITIAL_REVIEW: ModerationTrigger.ValueType  # 1
MODERATION_TRIGGER_USER_FLAG: ModerationTrigger.ValueType  # 2
MODERATION_TRIGGER_MACHINE_FLAG: ModerationTrigger.ValueType  # 3
MODERATION_TRIGGER_MODERATOR_REVIEW: ModerationTrigger.ValueType  # 4
Global___ModerationTrigger: typing_extensions.TypeAlias = ModerationTrigger

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

class _ModerationActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModerationAction.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MODERATION_ACTION_UNSPECIFIED: _ModerationAction.ValueType  # 0
    MODERATION_ACTION_CREATE: _ModerationAction.ValueType  # 1
    MODERATION_ACTION_APPROVE: _ModerationAction.ValueType  # 2
    MODERATION_ACTION_HIDE: _ModerationAction.ValueType  # 3
    MODERATION_ACTION_FLAG: _ModerationAction.ValueType  # 4
    MODERATION_ACTION_UNFLAG: _ModerationAction.ValueType  # 5
    MODERATION_ACTION_BULK_SET_VISIBILITY: _ModerationAction.ValueType  # 6
    MODERATION_ACTION_SET_PRIORITY: _ModerationAction.ValueType  # 7

class ModerationAction(_ModerationAction, metaclass=_ModerationActionEnumTypeWrapper): ...

MODERATION_ACTION_UNSPECIFIED: ModerationAction.ValueType  # 0
MODERATION_ACTION_CREATE: ModerationAction.ValueType  # 1
MODERATION_ACTION_APPROVE: ModerationAction.ValueType  # 2
MODERATION_ACTION_HIDE: ModerationAction.ValueType  # 3
MODERATION_ACTION_FLAG: ModerationAction.ValueType  # 4
MODERATION_ACTION_UNFLAG: ModerationAction.ValueType  # 5
MODERATION_ACTION_BULK_SET_VISIBILITY: ModerationAction.ValueType  # 6
MODERATION_ACTION_SET_PRIORITY: ModerationAction.ValueType  # 7
Global___ModerationAction: typing_extensions.TypeAlias = ModerationAction

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

class _ModerationObjectTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModerationObjectType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MODERATION_OBJECT_TYPE_UNSPECIFIED: _ModerationObjectType.ValueType  # 0
    MODERATION_OBJECT_TYPE_HOST_REQUEST: _ModerationObjectType.ValueType  # 1
    MODERATION_OBJECT_TYPE_GROUP_CHAT: _ModerationObjectType.ValueType  # 2
    MODERATION_OBJECT_TYPE_FRIEND_REQUEST: _ModerationObjectType.ValueType  # 3
    MODERATION_OBJECT_TYPE_EVENT_OCCURRENCE: _ModerationObjectType.ValueType  # 4
    MODERATION_OBJECT_TYPE_COMMENT: _ModerationObjectType.ValueType  # 5
    MODERATION_OBJECT_TYPE_REPLY: _ModerationObjectType.ValueType  # 6
    MODERATION_OBJECT_TYPE_DISCUSSION: _ModerationObjectType.ValueType  # 7
    MODERATION_OBJECT_TYPE_REFERENCE: _ModerationObjectType.ValueType  # 8

class ModerationObjectType(_ModerationObjectType, metaclass=_ModerationObjectTypeEnumTypeWrapper): ...

MODERATION_OBJECT_TYPE_UNSPECIFIED: ModerationObjectType.ValueType  # 0
MODERATION_OBJECT_TYPE_HOST_REQUEST: ModerationObjectType.ValueType  # 1
MODERATION_OBJECT_TYPE_GROUP_CHAT: ModerationObjectType.ValueType  # 2
MODERATION_OBJECT_TYPE_FRIEND_REQUEST: ModerationObjectType.ValueType  # 3
MODERATION_OBJECT_TYPE_EVENT_OCCURRENCE: ModerationObjectType.ValueType  # 4
MODERATION_OBJECT_TYPE_COMMENT: ModerationObjectType.ValueType  # 5
MODERATION_OBJECT_TYPE_REPLY: ModerationObjectType.ValueType  # 6
MODERATION_OBJECT_TYPE_DISCUSSION: ModerationObjectType.ValueType  # 7
MODERATION_OBJECT_TYPE_REFERENCE: ModerationObjectType.ValueType  # 8
Global___ModerationObjectType: typing_extensions.TypeAlias = ModerationObjectType

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

    MODERATION_STATE_ID_FIELD_NUMBER: builtins.int
    OBJECT_TYPE_FIELD_NUMBER: builtins.int
    OBJECT_ID_FIELD_NUMBER: builtins.int
    VISIBILITY_FIELD_NUMBER: builtins.int
    CREATED_FIELD_NUMBER: builtins.int
    UPDATED_FIELD_NUMBER: builtins.int
    AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    moderation_state_id: builtins.int
    object_type: Global___ModerationObjectType.ValueType
    object_id: builtins.int
    visibility: Global___ModerationVisibility.ValueType
    author_user_id: builtins.int
    content: builtins.str
    @property
    def created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def author(self) -> admin_pb2.UserDetails: ...
    def __init__(
        self,
        *,
        moderation_state_id: builtins.int | None = ...,
        object_type: Global___ModerationObjectType.ValueType | None = ...,
        object_id: builtins.int | None = ...,
        visibility: Global___ModerationVisibility.ValueType | None = ...,
        created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        updated: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        author_user_id: builtins.int | None = ...,
        content: builtins.str | None = ...,
        author: admin_pb2.UserDetails | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["author", b"author", "created", b"created", "updated", b"updated"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["author", b"author", "author_user_id", b"author_user_id", "content", b"content", "created", b"created", "moderation_state_id", b"moderation_state_id", "object_id", b"object_id", "object_type", b"object_type", "updated", b"updated", "visibility", b"visibility"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ModerationStateInfo: typing_extensions.TypeAlias = ModerationStateInfo

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

    QUEUE_ITEM_ID_FIELD_NUMBER: builtins.int
    MODERATION_STATE_ID_FIELD_NUMBER: builtins.int
    TIME_CREATED_FIELD_NUMBER: builtins.int
    TRIGGER_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    IS_RESOLVED_FIELD_NUMBER: builtins.int
    RESOLVED_BY_LOG_ID_FIELD_NUMBER: builtins.int
    MODERATION_STATE_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    queue_item_id: builtins.int
    moderation_state_id: builtins.int
    trigger: Global___ModerationTrigger.ValueType
    reason: builtins.str
    is_resolved: builtins.bool
    resolved_by_log_id: builtins.int
    priority: builtins.int
    @property
    def time_created(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def moderation_state(self) -> Global___ModerationStateInfo: ...
    def __init__(
        self,
        *,
        queue_item_id: builtins.int | None = ...,
        moderation_state_id: builtins.int | None = ...,
        time_created: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        trigger: Global___ModerationTrigger.ValueType | None = ...,
        reason: builtins.str | None = ...,
        is_resolved: builtins.bool | None = ...,
        resolved_by_log_id: builtins.int | None = ...,
        moderation_state: Global___ModerationStateInfo | None = ...,
        priority: builtins.int | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["moderation_state", b"moderation_state", "time_created", b"time_created"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["is_resolved", b"is_resolved", "moderation_state", b"moderation_state", "moderation_state_id", b"moderation_state_id", "priority", b"priority", "queue_item_id", b"queue_item_id", "reason", b"reason", "resolved_by_log_id", b"resolved_by_log_id", "time_created", b"time_created", "trigger", b"trigger"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ModerationQueueItemInfo: typing_extensions.TypeAlias = ModerationQueueItemInfo

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

    LOG_ENTRY_ID_FIELD_NUMBER: builtins.int
    MODERATION_STATE_ID_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    MODERATOR_USER_ID_FIELD_NUMBER: builtins.int
    NEW_VISIBILITY_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    NEW_PRIORITY_FIELD_NUMBER: builtins.int
    QUEUE_ITEM_ID_FIELD_NUMBER: builtins.int
    log_entry_id: builtins.int
    moderation_state_id: builtins.int
    action: Global___ModerationAction.ValueType
    moderator_user_id: builtins.int
    new_visibility: Global___ModerationVisibility.ValueType
    reason: builtins.str
    new_priority: builtins.int
    queue_item_id: builtins.int
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        log_entry_id: builtins.int | None = ...,
        moderation_state_id: builtins.int | None = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        action: Global___ModerationAction.ValueType | None = ...,
        moderator_user_id: builtins.int | None = ...,
        new_visibility: Global___ModerationVisibility.ValueType | None = ...,
        reason: builtins.str | None = ...,
        new_priority: builtins.int | None = ...,
        queue_item_id: builtins.int | 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["action", b"action", "log_entry_id", b"log_entry_id", "moderation_state_id", b"moderation_state_id", "moderator_user_id", b"moderator_user_id", "new_priority", b"new_priority", "new_visibility", b"new_visibility", "queue_item_id", b"queue_item_id", "reason", b"reason", "time", b"time"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ModerationLogEntryInfo: typing_extensions.TypeAlias = ModerationLogEntryInfo

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

    TRIGGERS_FIELD_NUMBER: builtins.int
    OBJECT_TYPE_FIELD_NUMBER: builtins.int
    UNRESOLVED_ONLY_FIELD_NUMBER: builtins.int
    CREATED_BEFORE_FIELD_NUMBER: builtins.int
    CREATED_AFTER_FIELD_NUMBER: builtins.int
    ITEM_AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    PRIORITY_MIN_FIELD_NUMBER: builtins.int
    PRIORITY_MAX_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    NEWEST_FIRST_FIELD_NUMBER: builtins.int
    object_type: Global___ModerationObjectType.ValueType
    """Filter by object type (optional)"""
    unresolved_only: builtins.bool
    """Only show unresolved items"""
    item_author_user_id: builtins.int
    """Filter by content author (optional)"""
    priority_min: builtins.int
    """Filter to items with priority >= this value (optional)"""
    priority_max: builtins.int
    """Filter to items with priority <= this value (optional)"""
    page_size: builtins.int
    """Pagination"""
    page_token: builtins.str
    newest_first: builtins.bool
    """Order by newest first (default: false = oldest first)"""
    @property
    def triggers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___ModerationTrigger.ValueType]:
        """Filter by trigger type (optional)"""

    @property
    def created_before(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Filter to items created before this time (optional)"""

    @property
    def created_after(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Filter to items created after this time (optional)"""

    def __init__(
        self,
        *,
        triggers: collections.abc.Iterable[Global___ModerationTrigger.ValueType] | None = ...,
        object_type: Global___ModerationObjectType.ValueType | None = ...,
        unresolved_only: builtins.bool | None = ...,
        created_before: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        created_after: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        item_author_user_id: builtins.int | None = ...,
        priority_min: builtins.int | None = ...,
        priority_max: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
        newest_first: builtins.bool | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["_priority_max", b"_priority_max", "_priority_min", b"_priority_min", "created_after", b"created_after", "created_before", b"created_before", "priority_max", b"priority_max", "priority_min", b"priority_min"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["_priority_max", b"_priority_max", "_priority_min", b"_priority_min", "created_after", b"created_after", "created_before", b"created_before", "item_author_user_id", b"item_author_user_id", "newest_first", b"newest_first", "object_type", b"object_type", "page_size", b"page_size", "page_token", b"page_token", "priority_max", b"priority_max", "priority_min", b"priority_min", "triggers", b"triggers", "unresolved_only", b"unresolved_only"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType__priority_max: typing_extensions.TypeAlias = typing.Literal["priority_max"]
    _WhichOneofArgType__priority_max: typing_extensions.TypeAlias = typing.Literal["_priority_max", b"_priority_max"]
    _WhichOneofReturnType__priority_min: typing_extensions.TypeAlias = typing.Literal["priority_min"]
    _WhichOneofArgType__priority_min: typing_extensions.TypeAlias = typing.Literal["_priority_min", b"_priority_min"]
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__priority_max) -> _WhichOneofReturnType__priority_max | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__priority_min) -> _WhichOneofReturnType__priority_min | None: ...

Global___GetModerationQueueReq: typing_extensions.TypeAlias = GetModerationQueueReq

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

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

Global___GetModerationQueueRes: typing_extensions.TypeAlias = GetModerationQueueRes

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

    OBJECT_TYPE_FIELD_NUMBER: builtins.int
    OBJECT_ID_FIELD_NUMBER: builtins.int
    object_type: Global___ModerationObjectType.ValueType
    object_id: builtins.int
    def __init__(
        self,
        *,
        object_type: Global___ModerationObjectType.ValueType | None = ...,
        object_id: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["object_id", b"object_id", "object_type", b"object_type"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetModerationStateReq: typing_extensions.TypeAlias = GetModerationStateReq

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

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

Global___GetModerationStateRes: typing_extensions.TypeAlias = GetModerationStateRes

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

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

Global___GetModerationLogReq: typing_extensions.TypeAlias = GetModerationLogReq

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

    LOG_ENTRIES_FIELD_NUMBER: builtins.int
    MODERATION_STATE_FIELD_NUMBER: builtins.int
    @property
    def log_entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ModerationLogEntryInfo]: ...
    @property
    def moderation_state(self) -> Global___ModerationStateInfo: ...
    def __init__(
        self,
        *,
        log_entries: collections.abc.Iterable[Global___ModerationLogEntryInfo] | None = ...,
        moderation_state: Global___ModerationStateInfo | None = ...,
    ) -> None: ...
    _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["moderation_state", b"moderation_state"]
    def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["log_entries", b"log_entries", "moderation_state", b"moderation_state"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___GetModerationLogRes: typing_extensions.TypeAlias = GetModerationLogRes

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

    MODERATION_STATE_ID_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    VISIBILITY_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    QUEUE_ITEM_ID_FIELD_NUMBER: builtins.int
    TRIGGER_FIELD_NUMBER: builtins.int
    SUPERSEDE_QUEUE_ITEM_ID_FIELD_NUMBER: builtins.int
    CLEAR_FLAGS_FIELD_NUMBER: builtins.int
    moderation_state_id: builtins.int
    action: Global___ModerationAction.ValueType
    """Required"""
    visibility: Global___ModerationVisibility.ValueType
    """Required for APPROVE / HIDE"""
    reason: builtins.str
    priority: builtins.int
    """New priority for SET_PRIORITY; initial priority for FLAG"""
    queue_item_id: builtins.int
    """Target flag for SET_PRIORITY / UNFLAG"""
    trigger: Global___ModerationTrigger.ValueType
    """Provenance for FLAG"""
    supersede_queue_item_id: builtins.int
    """For FLAG: resolve this flag as the new one opens"""
    clear_flags: builtins.bool
    """For APPROVE / HIDE: also resolve all open flags on the state"""
    def __init__(
        self,
        *,
        moderation_state_id: builtins.int | None = ...,
        action: Global___ModerationAction.ValueType | None = ...,
        visibility: Global___ModerationVisibility.ValueType | None = ...,
        reason: builtins.str | None = ...,
        priority: builtins.int | None = ...,
        queue_item_id: builtins.int | None = ...,
        trigger: Global___ModerationTrigger.ValueType | None = ...,
        supersede_queue_item_id: builtins.int | None = ...,
        clear_flags: builtins.bool | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["action", b"action", "clear_flags", b"clear_flags", "moderation_state_id", b"moderation_state_id", "priority", b"priority", "queue_item_id", b"queue_item_id", "reason", b"reason", "supersede_queue_item_id", b"supersede_queue_item_id", "trigger", b"trigger", "visibility", b"visibility"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ModerateContentReq: typing_extensions.TypeAlias = ModerateContentReq

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

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

Global___ModerateContentRes: typing_extensions.TypeAlias = ModerateContentRes

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

    USER_ID_FIELD_NUMBER: builtins.int
    VISIBILITY_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    FROM_VISIBILITY_FIELD_NUMBER: builtins.int
    user_id: builtins.int
    visibility: Global___ModerationVisibility.ValueType
    """must be set"""
    reason: builtins.str
    """optional; free-form admin note recorded in ModerationLog"""
    @property
    def from_visibility(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___ModerationVisibility.ValueType]:
        """If non-empty, only sweep states currently at one of these visibilities. Empty = any visibility (default)."""

    def __init__(
        self,
        *,
        user_id: builtins.int | None = ...,
        visibility: Global___ModerationVisibility.ValueType | None = ...,
        reason: builtins.str | None = ...,
        from_visibility: collections.abc.Iterable[Global___ModerationVisibility.ValueType] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["from_visibility", b"from_visibility", "reason", b"reason", "user_id", b"user_id", "visibility", b"visibility"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetUserContentVisibilityReq: typing_extensions.TypeAlias = SetUserContentVisibilityReq

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

    UPDATED_COUNT_FIELD_NUMBER: builtins.int
    updated_count: builtins.int
    """number of ModerationState rows whose visibility changed"""
    def __init__(
        self,
        *,
        updated_count: builtins.int | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["updated_count", b"updated_count"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SetUserContentVisibilityRes: typing_extensions.TypeAlias = SetUserContentVisibilityRes

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

    AUTHOR_USER_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    NEWEST_FIRST_FIELD_NUMBER: builtins.int
    author_user_id: builtins.int
    """Filter to states authored by this user (optional)"""
    page_size: builtins.int
    page_token: builtins.str
    newest_first: builtins.bool
    """Order by newest first (default: false = oldest first)"""
    def __init__(
        self,
        *,
        author_user_id: builtins.int | None = ...,
        page_size: builtins.int | None = ...,
        page_token: builtins.str | None = ...,
        newest_first: builtins.bool | None = ...,
    ) -> None: ...
    _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["author_user_id", b"author_user_id", "newest_first", b"newest_first", "page_size", b"page_size", "page_token", b"page_token"]
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ListModerationStatesReq: typing_extensions.TypeAlias = ListModerationStatesReq

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

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

Global___ListModerationStatesRes: typing_extensions.TypeAlias = ListModerationStatesRes
