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

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

class _SortOrderEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SortOrder.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SORT_ORDER_UNSPECIFIED: _SortOrder.ValueType  # 0
    SORT_ORDER_ASC: _SortOrder.ValueType  # 1
    SORT_ORDER_DESC: _SortOrder.ValueType  # 2

class SortOrder(_SortOrder, metaclass=_SortOrderEnumTypeWrapper): ...

SORT_ORDER_UNSPECIFIED: SortOrder.ValueType  # 0
SORT_ORDER_ASC: SortOrder.ValueType  # 1
SORT_ORDER_DESC: SortOrder.ValueType  # 2
global___SortOrder = SortOrder

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

    KEY_FIELD_NUMBER: builtins.int
    ANY_MATCH_FIELD_NUMBER: builtins.int
    INT_RANGE_FIELD_NUMBER: builtins.int
    DOUBLE_RANGE_FIELD_NUMBER: builtins.int
    DATE_RANGE_FIELD_NUMBER: builtins.int
    DURATION_RANGE_FIELD_NUMBER: builtins.int
    BOOLEAN_MATCH_FIELD_NUMBER: builtins.int
    INVERSE_FIELD_NUMBER: builtins.int
    CHANNEL_NUMBER_FIELD_NUMBER: builtins.int
    key: builtins.str
    """metadata key (user.some_key / system.created_at / analysis.speechkit.duration)"""
    inverse: builtins.bool
    @property
    def any_match(self) -> global___AnyMatchFilter:
        """find talk matched by any text filters"""

    @property
    def int_range(self) -> global___IntRangeFilter:
        """find talks with value from int range"""

    @property
    def double_range(self) -> global___DoubleRangeFilter:
        """find talks with value from double range"""

    @property
    def date_range(self) -> global___DateRangeFilter:
        """find talks with value from date range"""

    @property
    def duration_range(self) -> global___DurationRangeFilter:
        """find talks with value from duration range"""

    @property
    def boolean_match(self) -> global___BooleanFilter:
        """find talks with value equals boolean"""

    @property
    def channel_number(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """channel number to apply filter for, starting with 0. applies to all channels if not specified"""

    def __init__(
        self,
        *,
        key: builtins.str = ...,
        any_match: global___AnyMatchFilter | None = ...,
        int_range: global___IntRangeFilter | None = ...,
        double_range: global___DoubleRangeFilter | None = ...,
        date_range: global___DateRangeFilter | None = ...,
        duration_range: global___DurationRangeFilter | None = ...,
        boolean_match: global___BooleanFilter | None = ...,
        inverse: builtins.bool = ...,
        channel_number: google.protobuf.wrappers_pb2.Int64Value | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["any_match", b"any_match", "boolean_match", b"boolean_match", "channel_number", b"channel_number", "date_range", b"date_range", "double_range", b"double_range", "duration_range", b"duration_range", "filter", b"filter", "int_range", b"int_range"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["any_match", b"any_match", "boolean_match", b"boolean_match", "channel_number", b"channel_number", "date_range", b"date_range", "double_range", b"double_range", "duration_range", b"duration_range", "filter", b"filter", "int_range", b"int_range", "inverse", b"inverse", "key", b"key"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["filter", b"filter"]) -> typing.Literal["any_match", "int_range", "double_range", "date_range", "duration_range", "boolean_match"] | None: ...

global___Filter = Filter

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

    TEXT_FIELD_NUMBER: builtins.int
    INVERSE_FIELD_NUMBER: builtins.int
    CHANNEL_NUMBER_FIELD_NUMBER: builtins.int
    text: builtins.str
    inverse: builtins.bool
    """should or should NOT match"""
    @property
    def channel_number(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """id of channel to search ("1", "2", ..., any channel if not set)"""

    def __init__(
        self,
        *,
        text: builtins.str = ...,
        inverse: builtins.bool = ...,
        channel_number: google.protobuf.wrappers_pb2.Int64Value | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["channel_number", b"channel_number"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channel_number", b"channel_number", "inverse", b"inverse", "text", b"text"]) -> None: ...

global___Query = Query

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

    VALUES_FIELD_NUMBER: builtins.int
    @property
    def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """values list to match with "OR" operator"""

    def __init__(
        self,
        *,
        values: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ...

global___AnyMatchFilter = AnyMatchFilter

@typing.final
class BoundsInclusive(google.protobuf.message.Message):
    """indicates whether to include range boundaries"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FROM_INCLUSIVE_FIELD_NUMBER: builtins.int
    TO_INCLUSIVE_FIELD_NUMBER: builtins.int
    from_inclusive: builtins.bool
    """include from bound"""
    to_inclusive: builtins.bool
    """include to bound"""
    def __init__(
        self,
        *,
        from_inclusive: builtins.bool = ...,
        to_inclusive: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["from_inclusive", b"from_inclusive", "to_inclusive", b"to_inclusive"]) -> None: ...

global___BoundsInclusive = BoundsInclusive

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

    FROM_VALUE_FIELD_NUMBER: builtins.int
    TO_VALUE_FIELD_NUMBER: builtins.int
    BOUNDS_INCLUSIVE_FIELD_NUMBER: builtins.int
    @property
    def from_value(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def to_value(self) -> google.protobuf.wrappers_pb2.Int64Value: ...
    @property
    def bounds_inclusive(self) -> global___BoundsInclusive: ...
    def __init__(
        self,
        *,
        from_value: google.protobuf.wrappers_pb2.Int64Value | None = ...,
        to_value: google.protobuf.wrappers_pb2.Int64Value | None = ...,
        bounds_inclusive: global___BoundsInclusive | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> None: ...

global___IntRangeFilter = IntRangeFilter

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

    FROM_VALUE_FIELD_NUMBER: builtins.int
    TO_VALUE_FIELD_NUMBER: builtins.int
    BOUNDS_INCLUSIVE_FIELD_NUMBER: builtins.int
    @property
    def from_value(self) -> google.protobuf.wrappers_pb2.DoubleValue: ...
    @property
    def to_value(self) -> google.protobuf.wrappers_pb2.DoubleValue: ...
    @property
    def bounds_inclusive(self) -> global___BoundsInclusive: ...
    def __init__(
        self,
        *,
        from_value: google.protobuf.wrappers_pb2.DoubleValue | None = ...,
        to_value: google.protobuf.wrappers_pb2.DoubleValue | None = ...,
        bounds_inclusive: global___BoundsInclusive | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> None: ...

global___DoubleRangeFilter = DoubleRangeFilter

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

    FROM_VALUE_FIELD_NUMBER: builtins.int
    TO_VALUE_FIELD_NUMBER: builtins.int
    BOUNDS_INCLUSIVE_FIELD_NUMBER: builtins.int
    @property
    def from_value(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def to_value(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def bounds_inclusive(self) -> global___BoundsInclusive: ...
    def __init__(
        self,
        *,
        from_value: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        to_value: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        bounds_inclusive: global___BoundsInclusive | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> None: ...

global___DateRangeFilter = DateRangeFilter

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

    FROM_VALUE_FIELD_NUMBER: builtins.int
    TO_VALUE_FIELD_NUMBER: builtins.int
    BOUNDS_INCLUSIVE_FIELD_NUMBER: builtins.int
    @property
    def from_value(self) -> google.protobuf.duration_pb2.Duration: ...
    @property
    def to_value(self) -> google.protobuf.duration_pb2.Duration: ...
    @property
    def bounds_inclusive(self) -> global___BoundsInclusive: ...
    def __init__(
        self,
        *,
        from_value: google.protobuf.duration_pb2.Duration | None = ...,
        to_value: google.protobuf.duration_pb2.Duration | None = ...,
        bounds_inclusive: global___BoundsInclusive | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bounds_inclusive", b"bounds_inclusive", "from_value", b"from_value", "to_value", b"to_value"]) -> None: ...

global___DurationRangeFilter = DurationRangeFilter

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

    VALUE_FIELD_NUMBER: builtins.int
    value: builtins.bool
    def __init__(
        self,
        *,
        value: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ...

global___BooleanFilter = BooleanFilter

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

    FIELDS_FIELD_NUMBER: builtins.int
    @property
    def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: ...
    def __init__(
        self,
        *,
        fields: collections.abc.Iterable[global___SortField] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ...

global___SortData = SortData

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

    FIELD_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    field: builtins.str
    """sorting key"""
    order: global___SortOrder.ValueType
    """sorting order by current `field`"""
    position: builtins.int
    """number of field in comparing order (sort by key1 (position = 0), then key2 (position = 1), then key3...)"""
    def __init__(
        self,
        *,
        field: builtins.str = ...,
        order: global___SortOrder.ValueType = ...,
        position: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["field", b"field", "order", b"order", "position", b"position"]) -> None: ...

global___SortField = SortField
