"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import json_with_int_pb2
import qdrant_common_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 _Datatype:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DatatypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Datatype.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Default: _Datatype.ValueType  # 0
    Float32: _Datatype.ValueType  # 1
    Uint8: _Datatype.ValueType  # 2
    Float16: _Datatype.ValueType  # 3

class Datatype(_Datatype, metaclass=_DatatypeEnumTypeWrapper): ...

Default: Datatype.ValueType  # 0
Float32: Datatype.ValueType  # 1
Uint8: Datatype.ValueType  # 2
Float16: Datatype.ValueType  # 3
global___Datatype = Datatype

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

class _ModifierEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Modifier.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Idf: _Modifier.ValueType  # 1
    """Apply Inverse Document Frequency"""

class Modifier(_Modifier, metaclass=_ModifierEnumTypeWrapper): ...

Idf: Modifier.ValueType  # 1
"""Apply Inverse Document Frequency"""
global___Modifier = Modifier

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

class _MultiVectorComparatorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MultiVectorComparator.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MaxSim: _MultiVectorComparator.ValueType  # 0

class MultiVectorComparator(_MultiVectorComparator, metaclass=_MultiVectorComparatorEnumTypeWrapper): ...

MaxSim: MultiVectorComparator.ValueType  # 0
global___MultiVectorComparator = MultiVectorComparator

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

class _DistanceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Distance.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UnknownDistance: _Distance.ValueType  # 0
    Cosine: _Distance.ValueType  # 1
    Euclid: _Distance.ValueType  # 2
    Dot: _Distance.ValueType  # 3
    Manhattan: _Distance.ValueType  # 4

class Distance(_Distance, metaclass=_DistanceEnumTypeWrapper): ...

UnknownDistance: Distance.ValueType  # 0
Cosine: Distance.ValueType  # 1
Euclid: Distance.ValueType  # 2
Dot: Distance.ValueType  # 3
Manhattan: Distance.ValueType  # 4
global___Distance = Distance

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

class _CollectionStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CollectionStatus.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UnknownCollectionStatus: _CollectionStatus.ValueType  # 0
    Green: _CollectionStatus.ValueType  # 1
    """All segments are ready"""
    Yellow: _CollectionStatus.ValueType  # 2
    """Optimization in process"""
    Red: _CollectionStatus.ValueType  # 3
    """Something went wrong"""
    Grey: _CollectionStatus.ValueType  # 4
    """Optimization is pending"""

class CollectionStatus(_CollectionStatus, metaclass=_CollectionStatusEnumTypeWrapper): ...

UnknownCollectionStatus: CollectionStatus.ValueType  # 0
Green: CollectionStatus.ValueType  # 1
"""All segments are ready"""
Yellow: CollectionStatus.ValueType  # 2
"""Optimization in process"""
Red: CollectionStatus.ValueType  # 3
"""Something went wrong"""
Grey: CollectionStatus.ValueType  # 4
"""Optimization is pending"""
global___CollectionStatus = CollectionStatus

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

class _PayloadSchemaTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PayloadSchemaType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UnknownType: _PayloadSchemaType.ValueType  # 0
    Keyword: _PayloadSchemaType.ValueType  # 1
    Integer: _PayloadSchemaType.ValueType  # 2
    Float: _PayloadSchemaType.ValueType  # 3
    Geo: _PayloadSchemaType.ValueType  # 4
    Text: _PayloadSchemaType.ValueType  # 5
    Bool: _PayloadSchemaType.ValueType  # 6
    Datetime: _PayloadSchemaType.ValueType  # 7
    Uuid: _PayloadSchemaType.ValueType  # 8

class PayloadSchemaType(_PayloadSchemaType, metaclass=_PayloadSchemaTypeEnumTypeWrapper): ...

UnknownType: PayloadSchemaType.ValueType  # 0
Keyword: PayloadSchemaType.ValueType  # 1
Integer: PayloadSchemaType.ValueType  # 2
Float: PayloadSchemaType.ValueType  # 3
Geo: PayloadSchemaType.ValueType  # 4
Text: PayloadSchemaType.ValueType  # 5
Bool: PayloadSchemaType.ValueType  # 6
Datetime: PayloadSchemaType.ValueType  # 7
Uuid: PayloadSchemaType.ValueType  # 8
global___PayloadSchemaType = PayloadSchemaType

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

class _QuantizationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_QuantizationType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UnknownQuantization: _QuantizationType.ValueType  # 0
    Int8: _QuantizationType.ValueType  # 1

class QuantizationType(_QuantizationType, metaclass=_QuantizationTypeEnumTypeWrapper): ...

UnknownQuantization: QuantizationType.ValueType  # 0
Int8: QuantizationType.ValueType  # 1
global___QuantizationType = QuantizationType

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

class _CompressionRatioEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CompressionRatio.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    x4: _CompressionRatio.ValueType  # 0
    x8: _CompressionRatio.ValueType  # 1
    x16: _CompressionRatio.ValueType  # 2
    x32: _CompressionRatio.ValueType  # 3
    x64: _CompressionRatio.ValueType  # 4

class CompressionRatio(_CompressionRatio, metaclass=_CompressionRatioEnumTypeWrapper): ...

x4: CompressionRatio.ValueType  # 0
x8: CompressionRatio.ValueType  # 1
x16: CompressionRatio.ValueType  # 2
x32: CompressionRatio.ValueType  # 3
x64: CompressionRatio.ValueType  # 4
global___CompressionRatio = CompressionRatio

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

class _BinaryQuantizationEncodingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_BinaryQuantizationEncoding.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    OneBit: _BinaryQuantizationEncoding.ValueType  # 0
    TwoBits: _BinaryQuantizationEncoding.ValueType  # 1
    OneAndHalfBits: _BinaryQuantizationEncoding.ValueType  # 2

class BinaryQuantizationEncoding(_BinaryQuantizationEncoding, metaclass=_BinaryQuantizationEncodingEnumTypeWrapper): ...

OneBit: BinaryQuantizationEncoding.ValueType  # 0
TwoBits: BinaryQuantizationEncoding.ValueType  # 1
OneAndHalfBits: BinaryQuantizationEncoding.ValueType  # 2
global___BinaryQuantizationEncoding = BinaryQuantizationEncoding

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

class _TurboQuantBitSizeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TurboQuantBitSize.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Bits1: _TurboQuantBitSize.ValueType  # 0
    Bits1_5: _TurboQuantBitSize.ValueType  # 1
    Bits2: _TurboQuantBitSize.ValueType  # 2
    Bits4: _TurboQuantBitSize.ValueType  # 3

class TurboQuantBitSize(_TurboQuantBitSize, metaclass=_TurboQuantBitSizeEnumTypeWrapper): ...

Bits1: TurboQuantBitSize.ValueType  # 0
Bits1_5: TurboQuantBitSize.ValueType  # 1
Bits2: TurboQuantBitSize.ValueType  # 2
Bits4: TurboQuantBitSize.ValueType  # 3
global___TurboQuantBitSize = TurboQuantBitSize

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

class _ShardingMethodEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ShardingMethod.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Auto: _ShardingMethod.ValueType  # 0
    """Auto-sharding based on record ids"""
    Custom: _ShardingMethod.ValueType  # 1
    """Shard by user-defined key"""

class ShardingMethod(_ShardingMethod, metaclass=_ShardingMethodEnumTypeWrapper): ...

Auto: ShardingMethod.ValueType  # 0
"""Auto-sharding based on record ids"""
Custom: ShardingMethod.ValueType  # 1
"""Shard by user-defined key"""
global___ShardingMethod = ShardingMethod

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

class _TokenizerTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TokenizerType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Unknown: _TokenizerType.ValueType  # 0
    Prefix: _TokenizerType.ValueType  # 1
    Whitespace: _TokenizerType.ValueType  # 2
    Word: _TokenizerType.ValueType  # 3
    Multilingual: _TokenizerType.ValueType  # 4

class TokenizerType(_TokenizerType, metaclass=_TokenizerTypeEnumTypeWrapper): ...

Unknown: TokenizerType.ValueType  # 0
Prefix: TokenizerType.ValueType  # 1
Whitespace: TokenizerType.ValueType  # 2
Word: TokenizerType.ValueType  # 3
Multilingual: TokenizerType.ValueType  # 4
global___TokenizerType = TokenizerType

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

class _ReplicaStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ReplicaState.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Active: _ReplicaState.ValueType  # 0
    """Active and sound"""
    Dead: _ReplicaState.ValueType  # 1
    """Failed for some reason"""
    Partial: _ReplicaState.ValueType  # 2
    """The shard is partially loaded and is currently receiving data from other shards"""
    Initializing: _ReplicaState.ValueType  # 3
    """Collection is being created"""
    Listener: _ReplicaState.ValueType  # 4
    """A shard which receives data, but is not used for search.
    Useful for backup shards.
    """
    PartialSnapshot: _ReplicaState.ValueType  # 5
    """Deprecated: snapshot shard transfer is in progress.
    Updates should not be sent to (and are ignored by) the shard.
    """
    Recovery: _ReplicaState.ValueType  # 6
    """Shard is undergoing recovery by an external node.
    Normally rejects updates, accepts updates if force is true.
    """
    Resharding: _ReplicaState.ValueType  # 7
    """Points are being migrated to this shard as part of scale-up resharding"""
    ReshardingScaleDown: _ReplicaState.ValueType  # 8
    """Points are being migrated to this shard as part of scale-down resharding"""
    ActiveRead: _ReplicaState.ValueType  # 9
    """Active for readers, Partial for writers"""
    ManualRecovery: _ReplicaState.ValueType  # 10
    """State for manually creation/recovery of a shard.
    Usually when snapshot is uploaded.
    This state is equivalent to `Partial`, except:
    - it can't receive updates
    - it is not treated as broken on startup
    """

class ReplicaState(_ReplicaState, metaclass=_ReplicaStateEnumTypeWrapper): ...

Active: ReplicaState.ValueType  # 0
"""Active and sound"""
Dead: ReplicaState.ValueType  # 1
"""Failed for some reason"""
Partial: ReplicaState.ValueType  # 2
"""The shard is partially loaded and is currently receiving data from other shards"""
Initializing: ReplicaState.ValueType  # 3
"""Collection is being created"""
Listener: ReplicaState.ValueType  # 4
"""A shard which receives data, but is not used for search.
Useful for backup shards.
"""
PartialSnapshot: ReplicaState.ValueType  # 5
"""Deprecated: snapshot shard transfer is in progress.
Updates should not be sent to (and are ignored by) the shard.
"""
Recovery: ReplicaState.ValueType  # 6
"""Shard is undergoing recovery by an external node.
Normally rejects updates, accepts updates if force is true.
"""
Resharding: ReplicaState.ValueType  # 7
"""Points are being migrated to this shard as part of scale-up resharding"""
ReshardingScaleDown: ReplicaState.ValueType  # 8
"""Points are being migrated to this shard as part of scale-down resharding"""
ActiveRead: ReplicaState.ValueType  # 9
"""Active for readers, Partial for writers"""
ManualRecovery: ReplicaState.ValueType  # 10
"""State for manually creation/recovery of a shard.
Usually when snapshot is uploaded.
This state is equivalent to `Partial`, except:
- it can't receive updates
- it is not treated as broken on startup
"""
global___ReplicaState = ReplicaState

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

class _ReshardingDirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ReshardingDirection.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Up: _ReshardingDirection.ValueType  # 0
    """Scale up, add a new shard"""
    Down: _ReshardingDirection.ValueType  # 1
    """Scale down, remove a shard"""

class ReshardingDirection(_ReshardingDirection, metaclass=_ReshardingDirectionEnumTypeWrapper):
    """Resharding direction, scale up or down in number of shards"""

Up: ReshardingDirection.ValueType  # 0
"""Scale up, add a new shard"""
Down: ReshardingDirection.ValueType  # 1
"""Scale down, remove a shard"""
global___ReshardingDirection = ReshardingDirection

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

class _ShardTransferMethodEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ShardTransferMethod.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    StreamRecords: _ShardTransferMethod.ValueType  # 0
    """Stream shard records in batches"""
    Snapshot: _ShardTransferMethod.ValueType  # 1
    """Snapshot the shard and recover it on the target peer"""
    WalDelta: _ShardTransferMethod.ValueType  # 2
    """Resolve WAL delta between peers and transfer the difference"""
    ReshardingStreamRecords: _ShardTransferMethod.ValueType  # 3
    """Stream shard records in batches for resharding"""

class ShardTransferMethod(_ShardTransferMethod, metaclass=_ShardTransferMethodEnumTypeWrapper): ...

StreamRecords: ShardTransferMethod.ValueType  # 0
"""Stream shard records in batches"""
Snapshot: ShardTransferMethod.ValueType  # 1
"""Snapshot the shard and recover it on the target peer"""
WalDelta: ShardTransferMethod.ValueType  # 2
"""Resolve WAL delta between peers and transfer the difference"""
ReshardingStreamRecords: ShardTransferMethod.ValueType  # 3
"""Stream shard records in batches for resharding"""
global___ShardTransferMethod = ShardTransferMethod

class VectorParams(google.protobuf.message.Message):
    """---------------------------------------------
    ------------- Collection Config -------------
    ---------------------------------------------
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SIZE_FIELD_NUMBER: builtins.int
    DISTANCE_FIELD_NUMBER: builtins.int
    HNSW_CONFIG_FIELD_NUMBER: builtins.int
    QUANTIZATION_CONFIG_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    DATATYPE_FIELD_NUMBER: builtins.int
    MULTIVECTOR_CONFIG_FIELD_NUMBER: builtins.int
    size: builtins.int
    """Size of the vectors"""
    distance: global___Distance.ValueType
    """Distance function used for comparing vectors"""
    @property
    def hnsw_config(self) -> global___HnswConfigDiff:
        """Configuration of vector HNSW graph.
        If omitted - the collection configuration will be used
        """
    @property
    def quantization_config(self) -> global___QuantizationConfig:
        """Configuration of vector quantization config.
        If omitted - the collection configuration will be used
        """
    on_disk: builtins.bool
    """If true - serve vectors from disk.
    If set to false, the vectors will be loaded in RAM.
    """
    datatype: global___Datatype.ValueType
    """Data type of the vectors"""
    @property
    def multivector_config(self) -> global___MultiVectorConfig:
        """Configuration for multi-vector search"""
    def __init__(
        self,
        *,
        size: builtins.int = ...,
        distance: global___Distance.ValueType = ...,
        hnsw_config: global___HnswConfigDiff | None = ...,
        quantization_config: global___QuantizationConfig | None = ...,
        on_disk: builtins.bool | None = ...,
        datatype: global___Datatype.ValueType | None = ...,
        multivector_config: global___MultiVectorConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_datatype", b"_datatype", "_hnsw_config", b"_hnsw_config", "_multivector_config", b"_multivector_config", "_on_disk", b"_on_disk", "_quantization_config", b"_quantization_config", "datatype", b"datatype", "hnsw_config", b"hnsw_config", "multivector_config", b"multivector_config", "on_disk", b"on_disk", "quantization_config", b"quantization_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_datatype", b"_datatype", "_hnsw_config", b"_hnsw_config", "_multivector_config", b"_multivector_config", "_on_disk", b"_on_disk", "_quantization_config", b"_quantization_config", "datatype", b"datatype", "distance", b"distance", "hnsw_config", b"hnsw_config", "multivector_config", b"multivector_config", "on_disk", b"on_disk", "quantization_config", b"quantization_config", "size", b"size"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_datatype", b"_datatype"]) -> typing_extensions.Literal["datatype"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_hnsw_config", b"_hnsw_config"]) -> typing_extensions.Literal["hnsw_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_multivector_config", b"_multivector_config"]) -> typing_extensions.Literal["multivector_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantization_config", b"_quantization_config"]) -> typing_extensions.Literal["quantization_config"] | None: ...

global___VectorParams = VectorParams

class VectorParamsDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HNSW_CONFIG_FIELD_NUMBER: builtins.int
    QUANTIZATION_CONFIG_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    @property
    def hnsw_config(self) -> global___HnswConfigDiff:
        """Update params for HNSW index.
        If empty object - it will be unset
        """
    @property
    def quantization_config(self) -> global___QuantizationConfigDiff:
        """Update quantization params. If none - it is left unchanged."""
    on_disk: builtins.bool
    """If true - serve vectors from disk.
    If set to false, the vectors will be loaded in RAM.
    """
    def __init__(
        self,
        *,
        hnsw_config: global___HnswConfigDiff | None = ...,
        quantization_config: global___QuantizationConfigDiff | None = ...,
        on_disk: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_on_disk", b"_on_disk", "_quantization_config", b"_quantization_config", "hnsw_config", b"hnsw_config", "on_disk", b"on_disk", "quantization_config", b"quantization_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_on_disk", b"_on_disk", "_quantization_config", b"_quantization_config", "hnsw_config", b"hnsw_config", "on_disk", b"on_disk", "quantization_config", b"quantization_config"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_hnsw_config", b"_hnsw_config"]) -> typing_extensions.Literal["hnsw_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantization_config", b"_quantization_config"]) -> typing_extensions.Literal["quantization_config"] | None: ...

global___VectorParamsDiff = VectorParamsDiff

class VectorParamsMap(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MapEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___VectorParams: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___VectorParams | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    MAP_FIELD_NUMBER: builtins.int
    @property
    def map(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___VectorParams]: ...
    def __init__(
        self,
        *,
        map: collections.abc.Mapping[builtins.str, global___VectorParams] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["map", b"map"]) -> None: ...

global___VectorParamsMap = VectorParamsMap

class VectorParamsDiffMap(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MapEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___VectorParamsDiff: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___VectorParamsDiff | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    MAP_FIELD_NUMBER: builtins.int
    @property
    def map(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___VectorParamsDiff]: ...
    def __init__(
        self,
        *,
        map: collections.abc.Mapping[builtins.str, global___VectorParamsDiff] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["map", b"map"]) -> None: ...

global___VectorParamsDiffMap = VectorParamsDiffMap

class VectorsConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    PARAMS_MAP_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> global___VectorParams: ...
    @property
    def params_map(self) -> global___VectorParamsMap: ...
    def __init__(
        self,
        *,
        params: global___VectorParams | None = ...,
        params_map: global___VectorParamsMap | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config", b"config", "params", b"params", "params_map", b"params_map"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "params", b"params", "params_map", b"params_map"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config", b"config"]) -> typing_extensions.Literal["params", "params_map"] | None: ...

global___VectorsConfig = VectorsConfig

class VectorsConfigDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    PARAMS_MAP_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> global___VectorParamsDiff: ...
    @property
    def params_map(self) -> global___VectorParamsDiffMap: ...
    def __init__(
        self,
        *,
        params: global___VectorParamsDiff | None = ...,
        params_map: global___VectorParamsDiffMap | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config", b"config", "params", b"params", "params_map", b"params_map"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "params", b"params", "params_map", b"params_map"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config", b"config"]) -> typing_extensions.Literal["params", "params_map"] | None: ...

global___VectorsConfigDiff = VectorsConfigDiff

class SparseVectorParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INDEX_FIELD_NUMBER: builtins.int
    MODIFIER_FIELD_NUMBER: builtins.int
    @property
    def index(self) -> global___SparseIndexConfig:
        """Configuration of sparse index"""
    modifier: global___Modifier.ValueType
    """If set - apply modifier to the vector values"""
    def __init__(
        self,
        *,
        index: global___SparseIndexConfig | None = ...,
        modifier: global___Modifier.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_index", b"_index", "_modifier", b"_modifier", "index", b"index", "modifier", b"modifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_index", b"_index", "_modifier", b"_modifier", "index", b"index", "modifier", b"modifier"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_index", b"_index"]) -> typing_extensions.Literal["index"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_modifier", b"_modifier"]) -> typing_extensions.Literal["modifier"] | None: ...

global___SparseVectorParams = SparseVectorParams

class SparseVectorConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MapEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___SparseVectorParams: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___SparseVectorParams | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    MAP_FIELD_NUMBER: builtins.int
    @property
    def map(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___SparseVectorParams]: ...
    def __init__(
        self,
        *,
        map: collections.abc.Mapping[builtins.str, global___SparseVectorParams] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["map", b"map"]) -> None: ...

global___SparseVectorConfig = SparseVectorConfig

class MultiVectorConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMPARATOR_FIELD_NUMBER: builtins.int
    comparator: global___MultiVectorComparator.ValueType
    """Comparator for multi-vector search"""
    def __init__(
        self,
        *,
        comparator: global___MultiVectorComparator.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparator", b"comparator"]) -> None: ...

global___MultiVectorConfig = MultiVectorConfig

class GetCollectionInfoRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name"]) -> None: ...

global___GetCollectionInfoRequest = GetCollectionInfoRequest

class CollectionExistsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name"]) -> None: ...

global___CollectionExistsRequest = CollectionExistsRequest

class CollectionExists(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXISTS_FIELD_NUMBER: builtins.int
    exists: builtins.bool
    def __init__(
        self,
        *,
        exists: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exists", b"exists"]) -> None: ...

global___CollectionExists = CollectionExists

class CollectionExistsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    @property
    def result(self) -> global___CollectionExists: ...
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        result: global___CollectionExists | None = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result", "time", b"time"]) -> None: ...

global___CollectionExistsResponse = CollectionExistsResponse

class ListCollectionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ListCollectionsRequest = ListCollectionsRequest

class CollectionDescription(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___CollectionDescription = CollectionDescription

class GetCollectionInfoResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    @property
    def result(self) -> global___CollectionInfo: ...
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        result: global___CollectionInfo | None = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result", "time", b"time"]) -> None: ...

global___GetCollectionInfoResponse = GetCollectionInfoResponse

class ListCollectionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTIONS_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    @property
    def collections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollectionDescription]: ...
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        collections: collections.abc.Iterable[global___CollectionDescription] | None = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collections", b"collections", "time", b"time"]) -> None: ...

global___ListCollectionsResponse = ListCollectionsResponse

class MaxOptimizationThreads(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _SettingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MaxOptimizationThreads._Setting.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        Auto: MaxOptimizationThreads._Setting.ValueType  # 0

    class Setting(_Setting, metaclass=_SettingEnumTypeWrapper): ...
    Auto: MaxOptimizationThreads.Setting.ValueType  # 0

    VALUE_FIELD_NUMBER: builtins.int
    SETTING_FIELD_NUMBER: builtins.int
    value: builtins.int
    setting: global___MaxOptimizationThreads.Setting.ValueType
    def __init__(
        self,
        *,
        value: builtins.int = ...,
        setting: global___MaxOptimizationThreads.Setting.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["setting", b"setting", "value", b"value", "variant", b"variant"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["setting", b"setting", "value", b"value", "variant", b"variant"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["value", "setting"] | None: ...

global___MaxOptimizationThreads = MaxOptimizationThreads

class OptimizerStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OK_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    ok: builtins.bool
    error: builtins.str
    def __init__(
        self,
        *,
        ok: builtins.bool = ...,
        error: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "ok", b"ok"]) -> None: ...

global___OptimizerStatus = OptimizerStatus

class CollectionWarning(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_FIELD_NUMBER: builtins.int
    message: builtins.str
    def __init__(
        self,
        *,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...

global___CollectionWarning = CollectionWarning

class HnswConfigDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    M_FIELD_NUMBER: builtins.int
    EF_CONSTRUCT_FIELD_NUMBER: builtins.int
    FULL_SCAN_THRESHOLD_FIELD_NUMBER: builtins.int
    MAX_INDEXING_THREADS_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    PAYLOAD_M_FIELD_NUMBER: builtins.int
    INLINE_STORAGE_FIELD_NUMBER: builtins.int
    m: builtins.int
    """Number of edges per node in the index graph.
    Larger the value - more accurate the search, more space required.
    """
    ef_construct: builtins.int
    """Number of neighbours to consider during the index building.
    Larger the value - more accurate the search, more time required to build the index.
    """
    full_scan_threshold: builtins.int
    """Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search.
    This measures the total size of vectors being queried against.
    When the maximum estimated amount of points that a condition satisfies is smaller than
    `full_scan_threshold`, the query planner will use full-scan search instead of HNSW index
    traversal for better performance.
    Note: 1Kb = 1 vector of size 256
    """
    max_indexing_threads: builtins.int
    """Number of parallel threads used for background index building.
    If 0 - automatically select from 8 to 16.
    Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs.
    On small CPUs, less threads are used.
    """
    on_disk: builtins.bool
    """Store HNSW index on disk. If set to false, the index will be stored in RAM."""
    payload_m: builtins.int
    """Number of additional payload-aware links per node in the index graph.
    If not set - regular M parameter will be used.
    """
    inline_storage: builtins.bool
    """Store copies of original and quantized vectors within the HNSW index file. Default: false.
    Enabling this option will trade the search speed for disk usage by reducing amount of
    random seeks during the search.
    Requires quantized vectors to be enabled. Multi-vectors are not supported.
    """
    def __init__(
        self,
        *,
        m: builtins.int | None = ...,
        ef_construct: builtins.int | None = ...,
        full_scan_threshold: builtins.int | None = ...,
        max_indexing_threads: builtins.int | None = ...,
        on_disk: builtins.bool | None = ...,
        payload_m: builtins.int | None = ...,
        inline_storage: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_ef_construct", b"_ef_construct", "_full_scan_threshold", b"_full_scan_threshold", "_inline_storage", b"_inline_storage", "_m", b"_m", "_max_indexing_threads", b"_max_indexing_threads", "_on_disk", b"_on_disk", "_payload_m", b"_payload_m", "ef_construct", b"ef_construct", "full_scan_threshold", b"full_scan_threshold", "inline_storage", b"inline_storage", "m", b"m", "max_indexing_threads", b"max_indexing_threads", "on_disk", b"on_disk", "payload_m", b"payload_m"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_ef_construct", b"_ef_construct", "_full_scan_threshold", b"_full_scan_threshold", "_inline_storage", b"_inline_storage", "_m", b"_m", "_max_indexing_threads", b"_max_indexing_threads", "_on_disk", b"_on_disk", "_payload_m", b"_payload_m", "ef_construct", b"ef_construct", "full_scan_threshold", b"full_scan_threshold", "inline_storage", b"inline_storage", "m", b"m", "max_indexing_threads", b"max_indexing_threads", "on_disk", b"on_disk", "payload_m", b"payload_m"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_ef_construct", b"_ef_construct"]) -> typing_extensions.Literal["ef_construct"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_full_scan_threshold", b"_full_scan_threshold"]) -> typing_extensions.Literal["full_scan_threshold"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_inline_storage", b"_inline_storage"]) -> typing_extensions.Literal["inline_storage"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_m", b"_m"]) -> typing_extensions.Literal["m"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_indexing_threads", b"_max_indexing_threads"]) -> typing_extensions.Literal["max_indexing_threads"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_payload_m", b"_payload_m"]) -> typing_extensions.Literal["payload_m"] | None: ...

global___HnswConfigDiff = HnswConfigDiff

class SparseIndexConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FULL_SCAN_THRESHOLD_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    DATATYPE_FIELD_NUMBER: builtins.int
    full_scan_threshold: builtins.int
    """Prefer a full scan search upto (excluding) this number of vectors.
    Note: this is number of vectors, not KiloBytes.
    """
    on_disk: builtins.bool
    """Store inverted index on disk. If set to false, the index will be stored in RAM."""
    datatype: global___Datatype.ValueType
    """Datatype used to store weights in the index."""
    def __init__(
        self,
        *,
        full_scan_threshold: builtins.int | None = ...,
        on_disk: builtins.bool | None = ...,
        datatype: global___Datatype.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_datatype", b"_datatype", "_full_scan_threshold", b"_full_scan_threshold", "_on_disk", b"_on_disk", "datatype", b"datatype", "full_scan_threshold", b"full_scan_threshold", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_datatype", b"_datatype", "_full_scan_threshold", b"_full_scan_threshold", "_on_disk", b"_on_disk", "datatype", b"datatype", "full_scan_threshold", b"full_scan_threshold", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_datatype", b"_datatype"]) -> typing_extensions.Literal["datatype"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_full_scan_threshold", b"_full_scan_threshold"]) -> typing_extensions.Literal["full_scan_threshold"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___SparseIndexConfig = SparseIndexConfig

class WalConfigDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WAL_CAPACITY_MB_FIELD_NUMBER: builtins.int
    WAL_SEGMENTS_AHEAD_FIELD_NUMBER: builtins.int
    WAL_RETAIN_CLOSED_FIELD_NUMBER: builtins.int
    wal_capacity_mb: builtins.int
    """Size of a single WAL block file"""
    wal_segments_ahead: builtins.int
    """Number of segments to create in advance"""
    wal_retain_closed: builtins.int
    """Number of closed segments to retain"""
    def __init__(
        self,
        *,
        wal_capacity_mb: builtins.int | None = ...,
        wal_segments_ahead: builtins.int | None = ...,
        wal_retain_closed: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_wal_capacity_mb", b"_wal_capacity_mb", "_wal_retain_closed", b"_wal_retain_closed", "_wal_segments_ahead", b"_wal_segments_ahead", "wal_capacity_mb", b"wal_capacity_mb", "wal_retain_closed", b"wal_retain_closed", "wal_segments_ahead", b"wal_segments_ahead"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_wal_capacity_mb", b"_wal_capacity_mb", "_wal_retain_closed", b"_wal_retain_closed", "_wal_segments_ahead", b"_wal_segments_ahead", "wal_capacity_mb", b"wal_capacity_mb", "wal_retain_closed", b"wal_retain_closed", "wal_segments_ahead", b"wal_segments_ahead"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_wal_capacity_mb", b"_wal_capacity_mb"]) -> typing_extensions.Literal["wal_capacity_mb"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_wal_retain_closed", b"_wal_retain_closed"]) -> typing_extensions.Literal["wal_retain_closed"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_wal_segments_ahead", b"_wal_segments_ahead"]) -> typing_extensions.Literal["wal_segments_ahead"] | None: ...

global___WalConfigDiff = WalConfigDiff

class OptimizersConfigDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DELETED_THRESHOLD_FIELD_NUMBER: builtins.int
    VACUUM_MIN_VECTOR_NUMBER_FIELD_NUMBER: builtins.int
    DEFAULT_SEGMENT_NUMBER_FIELD_NUMBER: builtins.int
    MAX_SEGMENT_SIZE_FIELD_NUMBER: builtins.int
    MEMMAP_THRESHOLD_FIELD_NUMBER: builtins.int
    INDEXING_THRESHOLD_FIELD_NUMBER: builtins.int
    FLUSH_INTERVAL_SEC_FIELD_NUMBER: builtins.int
    DEPRECATED_MAX_OPTIMIZATION_THREADS_FIELD_NUMBER: builtins.int
    MAX_OPTIMIZATION_THREADS_FIELD_NUMBER: builtins.int
    PREVENT_UNOPTIMIZED_FIELD_NUMBER: builtins.int
    deleted_threshold: builtins.float
    """The minimal fraction of deleted vectors in a segment, required to perform
    segment optimization
    """
    vacuum_min_vector_number: builtins.int
    """The minimal number of vectors in a segment, required to perform segment
    optimization
    """
    default_segment_number: builtins.int
    """Target amount of segments the optimizer will try to keep.
    Real amount of segments may vary depending on multiple parameters:

    - Amount of stored points.
    - Current write RPS.

    It is recommended to select the default number of segments as a factor of the number of search threads,
    so that each segment would be handled evenly by one of the threads.
    """
    max_segment_size: builtins.int
    """Deprecated:

    Do not create segments larger this size (in kilobytes).
    Large segments might require disproportionately long indexation times,
    therefore it makes sense to limit the size of segments.

    If indexing speed is more important - make this parameter lower.
    If search speed is more important - make this parameter higher.
    Note: 1Kb = 1 vector of size 256
    If not set, will be automatically selected considering the number of available CPUs.
    """
    memmap_threshold: builtins.int
    """Maximum size (in kilobytes) of vectors to store in-memory per segment.
    Segments larger than this threshold will be stored as read-only memmapped file.

    Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

    To disable memmap storage, set this to `0`.

    Note: 1Kb = 1 vector of size 256
    """
    indexing_threshold: builtins.int
    """Maximum size (in kilobytes) of vectors allowed for plain index, exceeding
    this threshold will enable vector indexing

    Default value is 20,000, based on
    <https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md>.

    To disable vector indexing, set to `0`.

    Note: 1kB = 1 vector of size 256.
    """
    flush_interval_sec: builtins.int
    """Interval between forced flushes."""
    deprecated_max_optimization_threads: builtins.int
    """Deprecated in favor of `max_optimization_threads`"""
    @property
    def max_optimization_threads(self) -> global___MaxOptimizationThreads:
        """Max number of threads (jobs) for running optimizations per shard.
        Note: each optimization job will also use `max_indexing_threads` threads by itself for index building.
        If "auto" - have no limit and choose dynamically to saturate CPU.
        If 0 - no optimization threads, optimizations will be disabled.
        """
    prevent_unoptimized: builtins.bool
    """If this option is set, service will try to prevent creation of large unoptimized segments.
    When enabled, updates may be blocked at request level if there are unoptimized segments larger than indexing threshold.
    Updates will be resumed when optimization is completed and segments are optimized below the threshold.
    Using this option may lead to increased delay between submitting an update and its application.
    Default is disabled.
    """
    def __init__(
        self,
        *,
        deleted_threshold: builtins.float | None = ...,
        vacuum_min_vector_number: builtins.int | None = ...,
        default_segment_number: builtins.int | None = ...,
        max_segment_size: builtins.int | None = ...,
        memmap_threshold: builtins.int | None = ...,
        indexing_threshold: builtins.int | None = ...,
        flush_interval_sec: builtins.int | None = ...,
        deprecated_max_optimization_threads: builtins.int | None = ...,
        max_optimization_threads: global___MaxOptimizationThreads | None = ...,
        prevent_unoptimized: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_default_segment_number", b"_default_segment_number", "_deleted_threshold", b"_deleted_threshold", "_deprecated_max_optimization_threads", b"_deprecated_max_optimization_threads", "_flush_interval_sec", b"_flush_interval_sec", "_indexing_threshold", b"_indexing_threshold", "_max_optimization_threads", b"_max_optimization_threads", "_max_segment_size", b"_max_segment_size", "_memmap_threshold", b"_memmap_threshold", "_prevent_unoptimized", b"_prevent_unoptimized", "_vacuum_min_vector_number", b"_vacuum_min_vector_number", "default_segment_number", b"default_segment_number", "deleted_threshold", b"deleted_threshold", "deprecated_max_optimization_threads", b"deprecated_max_optimization_threads", "flush_interval_sec", b"flush_interval_sec", "indexing_threshold", b"indexing_threshold", "max_optimization_threads", b"max_optimization_threads", "max_segment_size", b"max_segment_size", "memmap_threshold", b"memmap_threshold", "prevent_unoptimized", b"prevent_unoptimized", "vacuum_min_vector_number", b"vacuum_min_vector_number"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_default_segment_number", b"_default_segment_number", "_deleted_threshold", b"_deleted_threshold", "_deprecated_max_optimization_threads", b"_deprecated_max_optimization_threads", "_flush_interval_sec", b"_flush_interval_sec", "_indexing_threshold", b"_indexing_threshold", "_max_optimization_threads", b"_max_optimization_threads", "_max_segment_size", b"_max_segment_size", "_memmap_threshold", b"_memmap_threshold", "_prevent_unoptimized", b"_prevent_unoptimized", "_vacuum_min_vector_number", b"_vacuum_min_vector_number", "default_segment_number", b"default_segment_number", "deleted_threshold", b"deleted_threshold", "deprecated_max_optimization_threads", b"deprecated_max_optimization_threads", "flush_interval_sec", b"flush_interval_sec", "indexing_threshold", b"indexing_threshold", "max_optimization_threads", b"max_optimization_threads", "max_segment_size", b"max_segment_size", "memmap_threshold", b"memmap_threshold", "prevent_unoptimized", b"prevent_unoptimized", "vacuum_min_vector_number", b"vacuum_min_vector_number"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_default_segment_number", b"_default_segment_number"]) -> typing_extensions.Literal["default_segment_number"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_deleted_threshold", b"_deleted_threshold"]) -> typing_extensions.Literal["deleted_threshold"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_deprecated_max_optimization_threads", b"_deprecated_max_optimization_threads"]) -> typing_extensions.Literal["deprecated_max_optimization_threads"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_flush_interval_sec", b"_flush_interval_sec"]) -> typing_extensions.Literal["flush_interval_sec"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_indexing_threshold", b"_indexing_threshold"]) -> typing_extensions.Literal["indexing_threshold"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_optimization_threads", b"_max_optimization_threads"]) -> typing_extensions.Literal["max_optimization_threads"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_segment_size", b"_max_segment_size"]) -> typing_extensions.Literal["max_segment_size"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_memmap_threshold", b"_memmap_threshold"]) -> typing_extensions.Literal["memmap_threshold"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_prevent_unoptimized", b"_prevent_unoptimized"]) -> typing_extensions.Literal["prevent_unoptimized"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_vacuum_min_vector_number", b"_vacuum_min_vector_number"]) -> typing_extensions.Literal["vacuum_min_vector_number"] | None: ...

global___OptimizersConfigDiff = OptimizersConfigDiff

class ScalarQuantization(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    QUANTILE_FIELD_NUMBER: builtins.int
    ALWAYS_RAM_FIELD_NUMBER: builtins.int
    type: global___QuantizationType.ValueType
    """Type of quantization"""
    quantile: builtins.float
    """Number of bits to use for quantization"""
    always_ram: builtins.bool
    """If true - quantized vectors always will be stored in RAM, ignoring the config of main storage"""
    def __init__(
        self,
        *,
        type: global___QuantizationType.ValueType = ...,
        quantile: builtins.float | None = ...,
        always_ram: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_quantile", b"_quantile", "always_ram", b"always_ram", "quantile", b"quantile"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_quantile", b"_quantile", "always_ram", b"always_ram", "quantile", b"quantile", "type", b"type"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_always_ram", b"_always_ram"]) -> typing_extensions.Literal["always_ram"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantile", b"_quantile"]) -> typing_extensions.Literal["quantile"] | None: ...

global___ScalarQuantization = ScalarQuantization

class ProductQuantization(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMPRESSION_FIELD_NUMBER: builtins.int
    ALWAYS_RAM_FIELD_NUMBER: builtins.int
    compression: global___CompressionRatio.ValueType
    """Compression ratio"""
    always_ram: builtins.bool
    """If true - quantized vectors always will be stored in RAM, ignoring the config of main storage"""
    def __init__(
        self,
        *,
        compression: global___CompressionRatio.ValueType = ...,
        always_ram: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "always_ram", b"always_ram"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "always_ram", b"always_ram", "compression", b"compression"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_always_ram", b"_always_ram"]) -> typing_extensions.Literal["always_ram"] | None: ...

global___ProductQuantization = ProductQuantization

class BinaryQuantizationQueryEncoding(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _SettingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[BinaryQuantizationQueryEncoding._Setting.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        Default: BinaryQuantizationQueryEncoding._Setting.ValueType  # 0
        Binary: BinaryQuantizationQueryEncoding._Setting.ValueType  # 1
        Scalar4Bits: BinaryQuantizationQueryEncoding._Setting.ValueType  # 2
        Scalar8Bits: BinaryQuantizationQueryEncoding._Setting.ValueType  # 3

    class Setting(_Setting, metaclass=_SettingEnumTypeWrapper): ...
    Default: BinaryQuantizationQueryEncoding.Setting.ValueType  # 0
    Binary: BinaryQuantizationQueryEncoding.Setting.ValueType  # 1
    Scalar4Bits: BinaryQuantizationQueryEncoding.Setting.ValueType  # 2
    Scalar8Bits: BinaryQuantizationQueryEncoding.Setting.ValueType  # 3

    SETTING_FIELD_NUMBER: builtins.int
    setting: global___BinaryQuantizationQueryEncoding.Setting.ValueType
    def __init__(
        self,
        *,
        setting: global___BinaryQuantizationQueryEncoding.Setting.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["setting", b"setting", "variant", b"variant"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["setting", b"setting", "variant", b"variant"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["setting"] | None: ...

global___BinaryQuantizationQueryEncoding = BinaryQuantizationQueryEncoding

class BinaryQuantization(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALWAYS_RAM_FIELD_NUMBER: builtins.int
    ENCODING_FIELD_NUMBER: builtins.int
    QUERY_ENCODING_FIELD_NUMBER: builtins.int
    always_ram: builtins.bool
    """If true - quantized vectors always will be stored in RAM, ignoring the config of main storage"""
    encoding: global___BinaryQuantizationEncoding.ValueType
    """Binary quantization encoding method"""
    @property
    def query_encoding(self) -> global___BinaryQuantizationQueryEncoding:
        """Asymmetric quantization configuration allows a query to have different
        quantization than stored vectors.
        It can increase the accuracy of search at the cost of performance.
        """
    def __init__(
        self,
        *,
        always_ram: builtins.bool | None = ...,
        encoding: global___BinaryQuantizationEncoding.ValueType | None = ...,
        query_encoding: global___BinaryQuantizationQueryEncoding | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_encoding", b"_encoding", "_query_encoding", b"_query_encoding", "always_ram", b"always_ram", "encoding", b"encoding", "query_encoding", b"query_encoding"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_encoding", b"_encoding", "_query_encoding", b"_query_encoding", "always_ram", b"always_ram", "encoding", b"encoding", "query_encoding", b"query_encoding"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_always_ram", b"_always_ram"]) -> typing_extensions.Literal["always_ram"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_encoding", b"_encoding"]) -> typing_extensions.Literal["encoding"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_query_encoding", b"_query_encoding"]) -> typing_extensions.Literal["query_encoding"] | None: ...

global___BinaryQuantization = BinaryQuantization

class TurboQuantization(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALWAYS_RAM_FIELD_NUMBER: builtins.int
    BITS_FIELD_NUMBER: builtins.int
    always_ram: builtins.bool
    bits: global___TurboQuantBitSize.ValueType
    def __init__(
        self,
        *,
        always_ram: builtins.bool | None = ...,
        bits: global___TurboQuantBitSize.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_bits", b"_bits", "always_ram", b"always_ram", "bits", b"bits"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_always_ram", b"_always_ram", "_bits", b"_bits", "always_ram", b"always_ram", "bits", b"bits"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_always_ram", b"_always_ram"]) -> typing_extensions.Literal["always_ram"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_bits", b"_bits"]) -> typing_extensions.Literal["bits"] | None: ...

global___TurboQuantization = TurboQuantization

class QuantizationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SCALAR_FIELD_NUMBER: builtins.int
    PRODUCT_FIELD_NUMBER: builtins.int
    BINARY_FIELD_NUMBER: builtins.int
    TURBOQUANT_FIELD_NUMBER: builtins.int
    @property
    def scalar(self) -> global___ScalarQuantization: ...
    @property
    def product(self) -> global___ProductQuantization: ...
    @property
    def binary(self) -> global___BinaryQuantization: ...
    @property
    def turboquant(self) -> global___TurboQuantization: ...
    def __init__(
        self,
        *,
        scalar: global___ScalarQuantization | None = ...,
        product: global___ProductQuantization | None = ...,
        binary: global___BinaryQuantization | None = ...,
        turboquant: global___TurboQuantization | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["binary", b"binary", "product", b"product", "quantization", b"quantization", "scalar", b"scalar", "turboquant", b"turboquant"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["binary", b"binary", "product", b"product", "quantization", b"quantization", "scalar", b"scalar", "turboquant", b"turboquant"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["quantization", b"quantization"]) -> typing_extensions.Literal["scalar", "product", "binary", "turboquant"] | None: ...

global___QuantizationConfig = QuantizationConfig

class Disabled(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___Disabled = Disabled

class QuantizationConfigDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SCALAR_FIELD_NUMBER: builtins.int
    PRODUCT_FIELD_NUMBER: builtins.int
    DISABLED_FIELD_NUMBER: builtins.int
    BINARY_FIELD_NUMBER: builtins.int
    TURBOQUANT_FIELD_NUMBER: builtins.int
    @property
    def scalar(self) -> global___ScalarQuantization: ...
    @property
    def product(self) -> global___ProductQuantization: ...
    @property
    def disabled(self) -> global___Disabled: ...
    @property
    def binary(self) -> global___BinaryQuantization: ...
    @property
    def turboquant(self) -> global___TurboQuantization: ...
    def __init__(
        self,
        *,
        scalar: global___ScalarQuantization | None = ...,
        product: global___ProductQuantization | None = ...,
        disabled: global___Disabled | None = ...,
        binary: global___BinaryQuantization | None = ...,
        turboquant: global___TurboQuantization | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["binary", b"binary", "disabled", b"disabled", "product", b"product", "quantization", b"quantization", "scalar", b"scalar", "turboquant", b"turboquant"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["binary", b"binary", "disabled", b"disabled", "product", b"product", "quantization", b"quantization", "scalar", b"scalar", "turboquant", b"turboquant"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["quantization", b"quantization"]) -> typing_extensions.Literal["scalar", "product", "disabled", "binary", "turboquant"] | None: ...

global___QuantizationConfigDiff = QuantizationConfigDiff

class StrictModeConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENABLED_FIELD_NUMBER: builtins.int
    MAX_QUERY_LIMIT_FIELD_NUMBER: builtins.int
    MAX_TIMEOUT_FIELD_NUMBER: builtins.int
    UNINDEXED_FILTERING_RETRIEVE_FIELD_NUMBER: builtins.int
    UNINDEXED_FILTERING_UPDATE_FIELD_NUMBER: builtins.int
    SEARCH_MAX_HNSW_EF_FIELD_NUMBER: builtins.int
    SEARCH_ALLOW_EXACT_FIELD_NUMBER: builtins.int
    SEARCH_MAX_OVERSAMPLING_FIELD_NUMBER: builtins.int
    UPSERT_MAX_BATCHSIZE_FIELD_NUMBER: builtins.int
    SEARCH_MAX_BATCHSIZE_FIELD_NUMBER: builtins.int
    MAX_COLLECTION_VECTOR_SIZE_BYTES_FIELD_NUMBER: builtins.int
    READ_RATE_LIMIT_FIELD_NUMBER: builtins.int
    WRITE_RATE_LIMIT_FIELD_NUMBER: builtins.int
    MAX_COLLECTION_PAYLOAD_SIZE_BYTES_FIELD_NUMBER: builtins.int
    FILTER_MAX_CONDITIONS_FIELD_NUMBER: builtins.int
    CONDITION_MAX_SIZE_FIELD_NUMBER: builtins.int
    MULTIVECTOR_CONFIG_FIELD_NUMBER: builtins.int
    SPARSE_CONFIG_FIELD_NUMBER: builtins.int
    MAX_POINTS_COUNT_FIELD_NUMBER: builtins.int
    MAX_PAYLOAD_INDEX_COUNT_FIELD_NUMBER: builtins.int
    MAX_RESIDENT_MEMORY_PERCENT_FIELD_NUMBER: builtins.int
    enabled: builtins.bool
    """Whether strict mode is enabled for a collection or not."""
    max_query_limit: builtins.int
    """Max allowed `limit` parameter for all APIs that don't have their own max limit."""
    max_timeout: builtins.int
    """Max allowed `timeout` parameter."""
    unindexed_filtering_retrieve: builtins.bool
    """Allow usage of unindexed fields in retrieval based (e.g. search) filters."""
    unindexed_filtering_update: builtins.bool
    """Allow usage of unindexed fields in filtered updates (e.g. delete by payload)."""
    search_max_hnsw_ef: builtins.int
    """Max HNSW ef value allowed in search parameters."""
    search_allow_exact: builtins.bool
    """Whether exact search is allowed."""
    search_max_oversampling: builtins.float
    """Max oversampling value allowed in search"""
    upsert_max_batchsize: builtins.int
    """Max batchsize when upserting"""
    search_max_batchsize: builtins.int
    """Max batchsize when searching"""
    max_collection_vector_size_bytes: builtins.int
    """Max size of a collections vector storage in bytes, ignoring replicas."""
    read_rate_limit: builtins.int
    """Max number of read operations per minute per replica"""
    write_rate_limit: builtins.int
    """Max number of write operations per minute per replica"""
    max_collection_payload_size_bytes: builtins.int
    """Max size of a collections payload storage in bytes, ignoring replicas."""
    filter_max_conditions: builtins.int
    """Max conditions a filter can have."""
    condition_max_size: builtins.int
    """Max size of a condition, eg. items in `MatchAny`."""
    @property
    def multivector_config(self) -> global___StrictModeMultivectorConfig:
        """Multivector strict mode configuration"""
    @property
    def sparse_config(self) -> global___StrictModeSparseConfig:
        """Sparse vector strict mode configuration"""
    max_points_count: builtins.int
    """Max number of points estimated in a collection"""
    max_payload_index_count: builtins.int
    """Max number of payload indexes in a collection"""
    max_resident_memory_percent: builtins.int
    """Reject memory-consuming update operations when process resident memory exceeds this percentage of total RAM (cgroup-aware, 1-100).
    Delete-style operations are still allowed so memory can be freed.
    """
    def __init__(
        self,
        *,
        enabled: builtins.bool | None = ...,
        max_query_limit: builtins.int | None = ...,
        max_timeout: builtins.int | None = ...,
        unindexed_filtering_retrieve: builtins.bool | None = ...,
        unindexed_filtering_update: builtins.bool | None = ...,
        search_max_hnsw_ef: builtins.int | None = ...,
        search_allow_exact: builtins.bool | None = ...,
        search_max_oversampling: builtins.float | None = ...,
        upsert_max_batchsize: builtins.int | None = ...,
        search_max_batchsize: builtins.int | None = ...,
        max_collection_vector_size_bytes: builtins.int | None = ...,
        read_rate_limit: builtins.int | None = ...,
        write_rate_limit: builtins.int | None = ...,
        max_collection_payload_size_bytes: builtins.int | None = ...,
        filter_max_conditions: builtins.int | None = ...,
        condition_max_size: builtins.int | None = ...,
        multivector_config: global___StrictModeMultivectorConfig | None = ...,
        sparse_config: global___StrictModeSparseConfig | None = ...,
        max_points_count: builtins.int | None = ...,
        max_payload_index_count: builtins.int | None = ...,
        max_resident_memory_percent: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_condition_max_size", b"_condition_max_size", "_enabled", b"_enabled", "_filter_max_conditions", b"_filter_max_conditions", "_max_collection_payload_size_bytes", b"_max_collection_payload_size_bytes", "_max_collection_vector_size_bytes", b"_max_collection_vector_size_bytes", "_max_payload_index_count", b"_max_payload_index_count", "_max_points_count", b"_max_points_count", "_max_query_limit", b"_max_query_limit", "_max_resident_memory_percent", b"_max_resident_memory_percent", "_max_timeout", b"_max_timeout", "_multivector_config", b"_multivector_config", "_read_rate_limit", b"_read_rate_limit", "_search_allow_exact", b"_search_allow_exact", "_search_max_batchsize", b"_search_max_batchsize", "_search_max_hnsw_ef", b"_search_max_hnsw_ef", "_search_max_oversampling", b"_search_max_oversampling", "_sparse_config", b"_sparse_config", "_unindexed_filtering_retrieve", b"_unindexed_filtering_retrieve", "_unindexed_filtering_update", b"_unindexed_filtering_update", "_upsert_max_batchsize", b"_upsert_max_batchsize", "_write_rate_limit", b"_write_rate_limit", "condition_max_size", b"condition_max_size", "enabled", b"enabled", "filter_max_conditions", b"filter_max_conditions", "max_collection_payload_size_bytes", b"max_collection_payload_size_bytes", "max_collection_vector_size_bytes", b"max_collection_vector_size_bytes", "max_payload_index_count", b"max_payload_index_count", "max_points_count", b"max_points_count", "max_query_limit", b"max_query_limit", "max_resident_memory_percent", b"max_resident_memory_percent", "max_timeout", b"max_timeout", "multivector_config", b"multivector_config", "read_rate_limit", b"read_rate_limit", "search_allow_exact", b"search_allow_exact", "search_max_batchsize", b"search_max_batchsize", "search_max_hnsw_ef", b"search_max_hnsw_ef", "search_max_oversampling", b"search_max_oversampling", "sparse_config", b"sparse_config", "unindexed_filtering_retrieve", b"unindexed_filtering_retrieve", "unindexed_filtering_update", b"unindexed_filtering_update", "upsert_max_batchsize", b"upsert_max_batchsize", "write_rate_limit", b"write_rate_limit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_condition_max_size", b"_condition_max_size", "_enabled", b"_enabled", "_filter_max_conditions", b"_filter_max_conditions", "_max_collection_payload_size_bytes", b"_max_collection_payload_size_bytes", "_max_collection_vector_size_bytes", b"_max_collection_vector_size_bytes", "_max_payload_index_count", b"_max_payload_index_count", "_max_points_count", b"_max_points_count", "_max_query_limit", b"_max_query_limit", "_max_resident_memory_percent", b"_max_resident_memory_percent", "_max_timeout", b"_max_timeout", "_multivector_config", b"_multivector_config", "_read_rate_limit", b"_read_rate_limit", "_search_allow_exact", b"_search_allow_exact", "_search_max_batchsize", b"_search_max_batchsize", "_search_max_hnsw_ef", b"_search_max_hnsw_ef", "_search_max_oversampling", b"_search_max_oversampling", "_sparse_config", b"_sparse_config", "_unindexed_filtering_retrieve", b"_unindexed_filtering_retrieve", "_unindexed_filtering_update", b"_unindexed_filtering_update", "_upsert_max_batchsize", b"_upsert_max_batchsize", "_write_rate_limit", b"_write_rate_limit", "condition_max_size", b"condition_max_size", "enabled", b"enabled", "filter_max_conditions", b"filter_max_conditions", "max_collection_payload_size_bytes", b"max_collection_payload_size_bytes", "max_collection_vector_size_bytes", b"max_collection_vector_size_bytes", "max_payload_index_count", b"max_payload_index_count", "max_points_count", b"max_points_count", "max_query_limit", b"max_query_limit", "max_resident_memory_percent", b"max_resident_memory_percent", "max_timeout", b"max_timeout", "multivector_config", b"multivector_config", "read_rate_limit", b"read_rate_limit", "search_allow_exact", b"search_allow_exact", "search_max_batchsize", b"search_max_batchsize", "search_max_hnsw_ef", b"search_max_hnsw_ef", "search_max_oversampling", b"search_max_oversampling", "sparse_config", b"sparse_config", "unindexed_filtering_retrieve", b"unindexed_filtering_retrieve", "unindexed_filtering_update", b"unindexed_filtering_update", "upsert_max_batchsize", b"upsert_max_batchsize", "write_rate_limit", b"write_rate_limit"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_condition_max_size", b"_condition_max_size"]) -> typing_extensions.Literal["condition_max_size"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enabled", b"_enabled"]) -> typing_extensions.Literal["enabled"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_filter_max_conditions", b"_filter_max_conditions"]) -> typing_extensions.Literal["filter_max_conditions"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_collection_payload_size_bytes", b"_max_collection_payload_size_bytes"]) -> typing_extensions.Literal["max_collection_payload_size_bytes"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_collection_vector_size_bytes", b"_max_collection_vector_size_bytes"]) -> typing_extensions.Literal["max_collection_vector_size_bytes"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_payload_index_count", b"_max_payload_index_count"]) -> typing_extensions.Literal["max_payload_index_count"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_points_count", b"_max_points_count"]) -> typing_extensions.Literal["max_points_count"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_query_limit", b"_max_query_limit"]) -> typing_extensions.Literal["max_query_limit"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_resident_memory_percent", b"_max_resident_memory_percent"]) -> typing_extensions.Literal["max_resident_memory_percent"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_timeout", b"_max_timeout"]) -> typing_extensions.Literal["max_timeout"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_multivector_config", b"_multivector_config"]) -> typing_extensions.Literal["multivector_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_read_rate_limit", b"_read_rate_limit"]) -> typing_extensions.Literal["read_rate_limit"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_search_allow_exact", b"_search_allow_exact"]) -> typing_extensions.Literal["search_allow_exact"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_search_max_batchsize", b"_search_max_batchsize"]) -> typing_extensions.Literal["search_max_batchsize"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_search_max_hnsw_ef", b"_search_max_hnsw_ef"]) -> typing_extensions.Literal["search_max_hnsw_ef"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_search_max_oversampling", b"_search_max_oversampling"]) -> typing_extensions.Literal["search_max_oversampling"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sparse_config", b"_sparse_config"]) -> typing_extensions.Literal["sparse_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_unindexed_filtering_retrieve", b"_unindexed_filtering_retrieve"]) -> typing_extensions.Literal["unindexed_filtering_retrieve"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_unindexed_filtering_update", b"_unindexed_filtering_update"]) -> typing_extensions.Literal["unindexed_filtering_update"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_upsert_max_batchsize", b"_upsert_max_batchsize"]) -> typing_extensions.Literal["upsert_max_batchsize"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_write_rate_limit", b"_write_rate_limit"]) -> typing_extensions.Literal["write_rate_limit"] | None: ...

global___StrictModeConfig = StrictModeConfig

class StrictModeSparseConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class SparseConfigEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___StrictModeSparse: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___StrictModeSparse | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    SPARSE_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def sparse_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___StrictModeSparse]: ...
    def __init__(
        self,
        *,
        sparse_config: collections.abc.Mapping[builtins.str, global___StrictModeSparse] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sparse_config", b"sparse_config"]) -> None: ...

global___StrictModeSparseConfig = StrictModeSparseConfig

class StrictModeSparse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MAX_LENGTH_FIELD_NUMBER: builtins.int
    max_length: builtins.int
    """Max length of sparse vector"""
    def __init__(
        self,
        *,
        max_length: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_max_length", b"_max_length", "max_length", b"max_length"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_max_length", b"_max_length", "max_length", b"max_length"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_length", b"_max_length"]) -> typing_extensions.Literal["max_length"] | None: ...

global___StrictModeSparse = StrictModeSparse

class StrictModeMultivectorConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MultivectorConfigEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___StrictModeMultivector: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___StrictModeMultivector | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    MULTIVECTOR_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def multivector_config(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___StrictModeMultivector]: ...
    def __init__(
        self,
        *,
        multivector_config: collections.abc.Mapping[builtins.str, global___StrictModeMultivector] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["multivector_config", b"multivector_config"]) -> None: ...

global___StrictModeMultivectorConfig = StrictModeMultivectorConfig

class StrictModeMultivector(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MAX_VECTORS_FIELD_NUMBER: builtins.int
    max_vectors: builtins.int
    """Max number of vectors in a multivector"""
    def __init__(
        self,
        *,
        max_vectors: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_max_vectors", b"_max_vectors", "max_vectors", b"max_vectors"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_max_vectors", b"_max_vectors", "max_vectors", b"max_vectors"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_vectors", b"_max_vectors"]) -> typing_extensions.Literal["max_vectors"] | None: ...

global___StrictModeMultivector = StrictModeMultivector

class CreateCollection(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MetadataEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> json_with_int_pb2.Value: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: json_with_int_pb2.Value | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    HNSW_CONFIG_FIELD_NUMBER: builtins.int
    WAL_CONFIG_FIELD_NUMBER: builtins.int
    OPTIMIZERS_CONFIG_FIELD_NUMBER: builtins.int
    SHARD_NUMBER_FIELD_NUMBER: builtins.int
    ON_DISK_PAYLOAD_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    REPLICATION_FACTOR_FIELD_NUMBER: builtins.int
    WRITE_CONSISTENCY_FACTOR_FIELD_NUMBER: builtins.int
    QUANTIZATION_CONFIG_FIELD_NUMBER: builtins.int
    SHARDING_METHOD_FIELD_NUMBER: builtins.int
    SPARSE_VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    STRICT_MODE_CONFIG_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    @property
    def hnsw_config(self) -> global___HnswConfigDiff:
        """Configuration of vector index"""
    @property
    def wal_config(self) -> global___WalConfigDiff:
        """Configuration of the Write-Ahead-Log"""
    @property
    def optimizers_config(self) -> global___OptimizersConfigDiff:
        """Configuration of the optimizers"""
    shard_number: builtins.int
    """Number of shards in the collection, default is 1 for standalone, otherwise
    equal to the number of nodes. Minimum is 1
    """
    on_disk_payload: builtins.bool
    """If true - point's payload will not be stored in memory"""
    timeout: builtins.int
    """Wait timeout for operation commit in seconds, if not specified - default
    value will be supplied
    """
    @property
    def vectors_config(self) -> global___VectorsConfig:
        """Configuration for vectors"""
    replication_factor: builtins.int
    """Number of replicas of each shard that network tries to maintain, default = 1"""
    write_consistency_factor: builtins.int
    """How many replicas should apply the operation for us to consider it successful, default = 1"""
    @property
    def quantization_config(self) -> global___QuantizationConfig:
        """Quantization configuration of vector"""
    sharding_method: global___ShardingMethod.ValueType
    """Sharding method"""
    @property
    def sparse_vectors_config(self) -> global___SparseVectorConfig:
        """Configuration for sparse vectors"""
    @property
    def strict_mode_config(self) -> global___StrictModeConfig:
        """Configuration for strict mode"""
    @property
    def metadata(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, json_with_int_pb2.Value]:
        """Arbitrary JSON metadata for the collection"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        hnsw_config: global___HnswConfigDiff | None = ...,
        wal_config: global___WalConfigDiff | None = ...,
        optimizers_config: global___OptimizersConfigDiff | None = ...,
        shard_number: builtins.int | None = ...,
        on_disk_payload: builtins.bool | None = ...,
        timeout: builtins.int | None = ...,
        vectors_config: global___VectorsConfig | None = ...,
        replication_factor: builtins.int | None = ...,
        write_consistency_factor: builtins.int | None = ...,
        quantization_config: global___QuantizationConfig | None = ...,
        sharding_method: global___ShardingMethod.ValueType | None = ...,
        sparse_vectors_config: global___SparseVectorConfig | None = ...,
        strict_mode_config: global___StrictModeConfig | None = ...,
        metadata: collections.abc.Mapping[builtins.str, json_with_int_pb2.Value] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_on_disk_payload", b"_on_disk_payload", "_optimizers_config", b"_optimizers_config", "_quantization_config", b"_quantization_config", "_replication_factor", b"_replication_factor", "_shard_number", b"_shard_number", "_sharding_method", b"_sharding_method", "_sparse_vectors_config", b"_sparse_vectors_config", "_strict_mode_config", b"_strict_mode_config", "_timeout", b"_timeout", "_vectors_config", b"_vectors_config", "_wal_config", b"_wal_config", "_write_consistency_factor", b"_write_consistency_factor", "hnsw_config", b"hnsw_config", "on_disk_payload", b"on_disk_payload", "optimizers_config", b"optimizers_config", "quantization_config", b"quantization_config", "replication_factor", b"replication_factor", "shard_number", b"shard_number", "sharding_method", b"sharding_method", "sparse_vectors_config", b"sparse_vectors_config", "strict_mode_config", b"strict_mode_config", "timeout", b"timeout", "vectors_config", b"vectors_config", "wal_config", b"wal_config", "write_consistency_factor", b"write_consistency_factor"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_on_disk_payload", b"_on_disk_payload", "_optimizers_config", b"_optimizers_config", "_quantization_config", b"_quantization_config", "_replication_factor", b"_replication_factor", "_shard_number", b"_shard_number", "_sharding_method", b"_sharding_method", "_sparse_vectors_config", b"_sparse_vectors_config", "_strict_mode_config", b"_strict_mode_config", "_timeout", b"_timeout", "_vectors_config", b"_vectors_config", "_wal_config", b"_wal_config", "_write_consistency_factor", b"_write_consistency_factor", "collection_name", b"collection_name", "hnsw_config", b"hnsw_config", "metadata", b"metadata", "on_disk_payload", b"on_disk_payload", "optimizers_config", b"optimizers_config", "quantization_config", b"quantization_config", "replication_factor", b"replication_factor", "shard_number", b"shard_number", "sharding_method", b"sharding_method", "sparse_vectors_config", b"sparse_vectors_config", "strict_mode_config", b"strict_mode_config", "timeout", b"timeout", "vectors_config", b"vectors_config", "wal_config", b"wal_config", "write_consistency_factor", b"write_consistency_factor"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_hnsw_config", b"_hnsw_config"]) -> typing_extensions.Literal["hnsw_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk_payload", b"_on_disk_payload"]) -> typing_extensions.Literal["on_disk_payload"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_optimizers_config", b"_optimizers_config"]) -> typing_extensions.Literal["optimizers_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantization_config", b"_quantization_config"]) -> typing_extensions.Literal["quantization_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_replication_factor", b"_replication_factor"]) -> typing_extensions.Literal["replication_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_shard_number", b"_shard_number"]) -> typing_extensions.Literal["shard_number"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sharding_method", b"_sharding_method"]) -> typing_extensions.Literal["sharding_method"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sparse_vectors_config", b"_sparse_vectors_config"]) -> typing_extensions.Literal["sparse_vectors_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_strict_mode_config", b"_strict_mode_config"]) -> typing_extensions.Literal["strict_mode_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_vectors_config", b"_vectors_config"]) -> typing_extensions.Literal["vectors_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_wal_config", b"_wal_config"]) -> typing_extensions.Literal["wal_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_write_consistency_factor", b"_write_consistency_factor"]) -> typing_extensions.Literal["write_consistency_factor"] | None: ...

global___CreateCollection = CreateCollection

class UpdateCollection(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MetadataEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> json_with_int_pb2.Value: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: json_with_int_pb2.Value | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    OPTIMIZERS_CONFIG_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    HNSW_CONFIG_FIELD_NUMBER: builtins.int
    VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    QUANTIZATION_CONFIG_FIELD_NUMBER: builtins.int
    SPARSE_VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    STRICT_MODE_CONFIG_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    @property
    def optimizers_config(self) -> global___OptimizersConfigDiff:
        """New configuration parameters for the collection.
        This operation is blocking, it will only proceed once all current
        optimizations are complete
        """
    timeout: builtins.int
    """Wait timeout for operation commit in seconds if blocking.
    If not specified - default value will be supplied.
    """
    @property
    def params(self) -> global___CollectionParamsDiff:
        """New configuration parameters for the collection"""
    @property
    def hnsw_config(self) -> global___HnswConfigDiff:
        """New HNSW parameters for the collection index"""
    @property
    def vectors_config(self) -> global___VectorsConfigDiff:
        """New vector parameters"""
    @property
    def quantization_config(self) -> global___QuantizationConfigDiff:
        """Quantization configuration of vector"""
    @property
    def sparse_vectors_config(self) -> global___SparseVectorConfig:
        """New sparse vector parameters"""
    @property
    def strict_mode_config(self) -> global___StrictModeConfig:
        """New strict mode configuration"""
    @property
    def metadata(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, json_with_int_pb2.Value]:
        """Arbitrary JSON-like metadata for the collection, will be merged with
        already stored metadata
        """
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        optimizers_config: global___OptimizersConfigDiff | None = ...,
        timeout: builtins.int | None = ...,
        params: global___CollectionParamsDiff | None = ...,
        hnsw_config: global___HnswConfigDiff | None = ...,
        vectors_config: global___VectorsConfigDiff | None = ...,
        quantization_config: global___QuantizationConfigDiff | None = ...,
        sparse_vectors_config: global___SparseVectorConfig | None = ...,
        strict_mode_config: global___StrictModeConfig | None = ...,
        metadata: collections.abc.Mapping[builtins.str, json_with_int_pb2.Value] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_optimizers_config", b"_optimizers_config", "_params", b"_params", "_quantization_config", b"_quantization_config", "_sparse_vectors_config", b"_sparse_vectors_config", "_strict_mode_config", b"_strict_mode_config", "_timeout", b"_timeout", "_vectors_config", b"_vectors_config", "hnsw_config", b"hnsw_config", "optimizers_config", b"optimizers_config", "params", b"params", "quantization_config", b"quantization_config", "sparse_vectors_config", b"sparse_vectors_config", "strict_mode_config", b"strict_mode_config", "timeout", b"timeout", "vectors_config", b"vectors_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_hnsw_config", b"_hnsw_config", "_optimizers_config", b"_optimizers_config", "_params", b"_params", "_quantization_config", b"_quantization_config", "_sparse_vectors_config", b"_sparse_vectors_config", "_strict_mode_config", b"_strict_mode_config", "_timeout", b"_timeout", "_vectors_config", b"_vectors_config", "collection_name", b"collection_name", "hnsw_config", b"hnsw_config", "metadata", b"metadata", "optimizers_config", b"optimizers_config", "params", b"params", "quantization_config", b"quantization_config", "sparse_vectors_config", b"sparse_vectors_config", "strict_mode_config", b"strict_mode_config", "timeout", b"timeout", "vectors_config", b"vectors_config"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_hnsw_config", b"_hnsw_config"]) -> typing_extensions.Literal["hnsw_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_optimizers_config", b"_optimizers_config"]) -> typing_extensions.Literal["optimizers_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_params", b"_params"]) -> typing_extensions.Literal["params"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantization_config", b"_quantization_config"]) -> typing_extensions.Literal["quantization_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sparse_vectors_config", b"_sparse_vectors_config"]) -> typing_extensions.Literal["sparse_vectors_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_strict_mode_config", b"_strict_mode_config"]) -> typing_extensions.Literal["strict_mode_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_vectors_config", b"_vectors_config"]) -> typing_extensions.Literal["vectors_config"] | None: ...

global___UpdateCollection = UpdateCollection

class DeleteCollection(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    timeout: builtins.int
    """Wait timeout for operation commit in seconds.
    If not specified - default value will be supplied.
    """
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        timeout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "collection_name", b"collection_name", "timeout", b"timeout"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...

global___DeleteCollection = DeleteCollection

class CollectionOperationResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    result: builtins.bool
    """if operation made changes"""
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        result: builtins.bool = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result", "time", b"time"]) -> None: ...

global___CollectionOperationResponse = CollectionOperationResponse

class CollectionParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_NUMBER_FIELD_NUMBER: builtins.int
    ON_DISK_PAYLOAD_FIELD_NUMBER: builtins.int
    VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    REPLICATION_FACTOR_FIELD_NUMBER: builtins.int
    WRITE_CONSISTENCY_FACTOR_FIELD_NUMBER: builtins.int
    READ_FAN_OUT_FACTOR_FIELD_NUMBER: builtins.int
    SHARDING_METHOD_FIELD_NUMBER: builtins.int
    SPARSE_VECTORS_CONFIG_FIELD_NUMBER: builtins.int
    READ_FAN_OUT_DELAY_MS_FIELD_NUMBER: builtins.int
    shard_number: builtins.int
    """Number of shards in collection"""
    on_disk_payload: builtins.bool
    """If true - point's payload will not be stored in memory"""
    @property
    def vectors_config(self) -> global___VectorsConfig:
        """Configuration for vectors"""
    replication_factor: builtins.int
    """Number of replicas of each shard that network tries to maintain"""
    write_consistency_factor: builtins.int
    """How many replicas should apply the operation for us to consider it successful"""
    read_fan_out_factor: builtins.int
    """Fan-out every read request to these many additional remote nodes (and return first available response)"""
    sharding_method: global___ShardingMethod.ValueType
    """Sharding method"""
    @property
    def sparse_vectors_config(self) -> global___SparseVectorConfig:
        """Configuration for sparse vectors"""
    read_fan_out_delay_ms: builtins.int
    """Define number of milliseconds to wait before attempting to read from another replica."""
    def __init__(
        self,
        *,
        shard_number: builtins.int = ...,
        on_disk_payload: builtins.bool = ...,
        vectors_config: global___VectorsConfig | None = ...,
        replication_factor: builtins.int | None = ...,
        write_consistency_factor: builtins.int | None = ...,
        read_fan_out_factor: builtins.int | None = ...,
        sharding_method: global___ShardingMethod.ValueType | None = ...,
        sparse_vectors_config: global___SparseVectorConfig | None = ...,
        read_fan_out_delay_ms: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_read_fan_out_delay_ms", b"_read_fan_out_delay_ms", "_read_fan_out_factor", b"_read_fan_out_factor", "_replication_factor", b"_replication_factor", "_sharding_method", b"_sharding_method", "_sparse_vectors_config", b"_sparse_vectors_config", "_vectors_config", b"_vectors_config", "_write_consistency_factor", b"_write_consistency_factor", "read_fan_out_delay_ms", b"read_fan_out_delay_ms", "read_fan_out_factor", b"read_fan_out_factor", "replication_factor", b"replication_factor", "sharding_method", b"sharding_method", "sparse_vectors_config", b"sparse_vectors_config", "vectors_config", b"vectors_config", "write_consistency_factor", b"write_consistency_factor"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_read_fan_out_delay_ms", b"_read_fan_out_delay_ms", "_read_fan_out_factor", b"_read_fan_out_factor", "_replication_factor", b"_replication_factor", "_sharding_method", b"_sharding_method", "_sparse_vectors_config", b"_sparse_vectors_config", "_vectors_config", b"_vectors_config", "_write_consistency_factor", b"_write_consistency_factor", "on_disk_payload", b"on_disk_payload", "read_fan_out_delay_ms", b"read_fan_out_delay_ms", "read_fan_out_factor", b"read_fan_out_factor", "replication_factor", b"replication_factor", "shard_number", b"shard_number", "sharding_method", b"sharding_method", "sparse_vectors_config", b"sparse_vectors_config", "vectors_config", b"vectors_config", "write_consistency_factor", b"write_consistency_factor"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_read_fan_out_delay_ms", b"_read_fan_out_delay_ms"]) -> typing_extensions.Literal["read_fan_out_delay_ms"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_read_fan_out_factor", b"_read_fan_out_factor"]) -> typing_extensions.Literal["read_fan_out_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_replication_factor", b"_replication_factor"]) -> typing_extensions.Literal["replication_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sharding_method", b"_sharding_method"]) -> typing_extensions.Literal["sharding_method"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sparse_vectors_config", b"_sparse_vectors_config"]) -> typing_extensions.Literal["sparse_vectors_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_vectors_config", b"_vectors_config"]) -> typing_extensions.Literal["vectors_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_write_consistency_factor", b"_write_consistency_factor"]) -> typing_extensions.Literal["write_consistency_factor"] | None: ...

global___CollectionParams = CollectionParams

class CollectionParamsDiff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REPLICATION_FACTOR_FIELD_NUMBER: builtins.int
    WRITE_CONSISTENCY_FACTOR_FIELD_NUMBER: builtins.int
    ON_DISK_PAYLOAD_FIELD_NUMBER: builtins.int
    READ_FAN_OUT_FACTOR_FIELD_NUMBER: builtins.int
    READ_FAN_OUT_DELAY_MS_FIELD_NUMBER: builtins.int
    replication_factor: builtins.int
    """Number of replicas of each shard that network tries to maintain"""
    write_consistency_factor: builtins.int
    """How many replicas should apply the operation for us to consider it successful"""
    on_disk_payload: builtins.bool
    """If true - point's payload will not be stored in memory"""
    read_fan_out_factor: builtins.int
    """Fan-out every read request to these many additional remote nodes (and return first available response)"""
    read_fan_out_delay_ms: builtins.int
    """Define number of milliseconds to wait before attempting to read from another replica."""
    def __init__(
        self,
        *,
        replication_factor: builtins.int | None = ...,
        write_consistency_factor: builtins.int | None = ...,
        on_disk_payload: builtins.bool | None = ...,
        read_fan_out_factor: builtins.int | None = ...,
        read_fan_out_delay_ms: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_on_disk_payload", b"_on_disk_payload", "_read_fan_out_delay_ms", b"_read_fan_out_delay_ms", "_read_fan_out_factor", b"_read_fan_out_factor", "_replication_factor", b"_replication_factor", "_write_consistency_factor", b"_write_consistency_factor", "on_disk_payload", b"on_disk_payload", "read_fan_out_delay_ms", b"read_fan_out_delay_ms", "read_fan_out_factor", b"read_fan_out_factor", "replication_factor", b"replication_factor", "write_consistency_factor", b"write_consistency_factor"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_on_disk_payload", b"_on_disk_payload", "_read_fan_out_delay_ms", b"_read_fan_out_delay_ms", "_read_fan_out_factor", b"_read_fan_out_factor", "_replication_factor", b"_replication_factor", "_write_consistency_factor", b"_write_consistency_factor", "on_disk_payload", b"on_disk_payload", "read_fan_out_delay_ms", b"read_fan_out_delay_ms", "read_fan_out_factor", b"read_fan_out_factor", "replication_factor", b"replication_factor", "write_consistency_factor", b"write_consistency_factor"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk_payload", b"_on_disk_payload"]) -> typing_extensions.Literal["on_disk_payload"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_read_fan_out_delay_ms", b"_read_fan_out_delay_ms"]) -> typing_extensions.Literal["read_fan_out_delay_ms"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_read_fan_out_factor", b"_read_fan_out_factor"]) -> typing_extensions.Literal["read_fan_out_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_replication_factor", b"_replication_factor"]) -> typing_extensions.Literal["replication_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_write_consistency_factor", b"_write_consistency_factor"]) -> typing_extensions.Literal["write_consistency_factor"] | None: ...

global___CollectionParamsDiff = CollectionParamsDiff

class CollectionConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class MetadataEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> json_with_int_pb2.Value: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: json_with_int_pb2.Value | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    PARAMS_FIELD_NUMBER: builtins.int
    HNSW_CONFIG_FIELD_NUMBER: builtins.int
    OPTIMIZER_CONFIG_FIELD_NUMBER: builtins.int
    WAL_CONFIG_FIELD_NUMBER: builtins.int
    QUANTIZATION_CONFIG_FIELD_NUMBER: builtins.int
    STRICT_MODE_CONFIG_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> global___CollectionParams:
        """Collection parameters"""
    @property
    def hnsw_config(self) -> global___HnswConfigDiff:
        """Configuration of vector index"""
    @property
    def optimizer_config(self) -> global___OptimizersConfigDiff:
        """Configuration of the optimizers"""
    @property
    def wal_config(self) -> global___WalConfigDiff:
        """Configuration of the Write-Ahead-Log"""
    @property
    def quantization_config(self) -> global___QuantizationConfig:
        """Configuration of the vector quantization"""
    @property
    def strict_mode_config(self) -> global___StrictModeConfig:
        """Configuration of strict mode."""
    @property
    def metadata(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, json_with_int_pb2.Value]:
        """Arbitrary JSON metadata for the collection"""
    def __init__(
        self,
        *,
        params: global___CollectionParams | None = ...,
        hnsw_config: global___HnswConfigDiff | None = ...,
        optimizer_config: global___OptimizersConfigDiff | None = ...,
        wal_config: global___WalConfigDiff | None = ...,
        quantization_config: global___QuantizationConfig | None = ...,
        strict_mode_config: global___StrictModeConfig | None = ...,
        metadata: collections.abc.Mapping[builtins.str, json_with_int_pb2.Value] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_quantization_config", b"_quantization_config", "_strict_mode_config", b"_strict_mode_config", "hnsw_config", b"hnsw_config", "optimizer_config", b"optimizer_config", "params", b"params", "quantization_config", b"quantization_config", "strict_mode_config", b"strict_mode_config", "wal_config", b"wal_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_quantization_config", b"_quantization_config", "_strict_mode_config", b"_strict_mode_config", "hnsw_config", b"hnsw_config", "metadata", b"metadata", "optimizer_config", b"optimizer_config", "params", b"params", "quantization_config", b"quantization_config", "strict_mode_config", b"strict_mode_config", "wal_config", b"wal_config"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_quantization_config", b"_quantization_config"]) -> typing_extensions.Literal["quantization_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_strict_mode_config", b"_strict_mode_config"]) -> typing_extensions.Literal["strict_mode_config"] | None: ...

global___CollectionConfig = CollectionConfig

class KeywordIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IS_TENANT_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    is_tenant: builtins.bool
    """If true - used for tenant optimization."""
    on_disk: builtins.bool
    """If true - store index on disk."""
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        is_tenant: builtins.bool | None = ...,
        on_disk: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_tenant", b"_is_tenant", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_tenant", b"is_tenant", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_tenant", b"_is_tenant", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_tenant", b"is_tenant", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_is_tenant", b"_is_tenant"]) -> typing_extensions.Literal["is_tenant"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___KeywordIndexParams = KeywordIndexParams

class IntegerIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LOOKUP_FIELD_NUMBER: builtins.int
    RANGE_FIELD_NUMBER: builtins.int
    IS_PRINCIPAL_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    lookup: builtins.bool
    """If true - support direct lookups. Default is true."""
    range: builtins.bool
    """If true - support ranges filters. Default is true."""
    is_principal: builtins.bool
    """If true - use this key to organize storage of the collection data.
    This option assumes that this key will be used in majority of filtered requests.
    Default is false.
    """
    on_disk: builtins.bool
    """If true - store index on disk. Default is false."""
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        lookup: builtins.bool | None = ...,
        range: builtins.bool | None = ...,
        is_principal: builtins.bool | None = ...,
        on_disk: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_lookup", b"_lookup", "_on_disk", b"_on_disk", "_range", b"_range", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "lookup", b"lookup", "on_disk", b"on_disk", "range", b"range"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_lookup", b"_lookup", "_on_disk", b"_on_disk", "_range", b"_range", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "lookup", b"lookup", "on_disk", b"on_disk", "range", b"range"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_is_principal", b"_is_principal"]) -> typing_extensions.Literal["is_principal"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_lookup", b"_lookup"]) -> typing_extensions.Literal["lookup"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_range", b"_range"]) -> typing_extensions.Literal["range"] | None: ...

global___IntegerIndexParams = IntegerIndexParams

class FloatIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ON_DISK_FIELD_NUMBER: builtins.int
    IS_PRINCIPAL_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    on_disk: builtins.bool
    """If true - store index on disk."""
    is_principal: builtins.bool
    """If true - use this key to organize storage of the collection data.
    This option assumes that this key will be used in majority of filtered requests.
    """
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        on_disk: builtins.bool | None = ...,
        is_principal: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_is_principal", b"_is_principal"]) -> typing_extensions.Literal["is_principal"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___FloatIndexParams = FloatIndexParams

class GeoIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ON_DISK_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    on_disk: builtins.bool
    """If true - store index on disk."""
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        on_disk: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___GeoIndexParams = GeoIndexParams

class StopwordsSet(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LANGUAGES_FIELD_NUMBER: builtins.int
    CUSTOM_FIELD_NUMBER: builtins.int
    @property
    def languages(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of languages to use stopwords from"""
    @property
    def custom(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of custom stopwords"""
    def __init__(
        self,
        *,
        languages: collections.abc.Iterable[builtins.str] | None = ...,
        custom: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["custom", b"custom", "languages", b"languages"]) -> None: ...

global___StopwordsSet = StopwordsSet

class TextIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOKENIZER_FIELD_NUMBER: builtins.int
    LOWERCASE_FIELD_NUMBER: builtins.int
    MIN_TOKEN_LEN_FIELD_NUMBER: builtins.int
    MAX_TOKEN_LEN_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    STOPWORDS_FIELD_NUMBER: builtins.int
    PHRASE_MATCHING_FIELD_NUMBER: builtins.int
    STEMMER_FIELD_NUMBER: builtins.int
    ASCII_FOLDING_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    tokenizer: global___TokenizerType.ValueType
    """Tokenizer type"""
    lowercase: builtins.bool
    """If true - all tokens will be lowercase"""
    min_token_len: builtins.int
    """Minimal token length"""
    max_token_len: builtins.int
    """Maximal token length"""
    on_disk: builtins.bool
    """If true - store index on disk."""
    @property
    def stopwords(self) -> global___StopwordsSet:
        """Stopwords for the text index"""
    phrase_matching: builtins.bool
    """If true - support phrase matching."""
    @property
    def stemmer(self) -> global___StemmingAlgorithm:
        """Set an algorithm for stemming."""
    ascii_folding: builtins.bool
    """If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao").
    Default: false.
    """
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        tokenizer: global___TokenizerType.ValueType = ...,
        lowercase: builtins.bool | None = ...,
        min_token_len: builtins.int | None = ...,
        max_token_len: builtins.int | None = ...,
        on_disk: builtins.bool | None = ...,
        stopwords: global___StopwordsSet | None = ...,
        phrase_matching: builtins.bool | None = ...,
        stemmer: global___StemmingAlgorithm | None = ...,
        ascii_folding: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_ascii_folding", b"_ascii_folding", "_enable_hnsw", b"_enable_hnsw", "_lowercase", b"_lowercase", "_max_token_len", b"_max_token_len", "_min_token_len", b"_min_token_len", "_on_disk", b"_on_disk", "_phrase_matching", b"_phrase_matching", "_stemmer", b"_stemmer", "_stopwords", b"_stopwords", "ascii_folding", b"ascii_folding", "enable_hnsw", b"enable_hnsw", "lowercase", b"lowercase", "max_token_len", b"max_token_len", "min_token_len", b"min_token_len", "on_disk", b"on_disk", "phrase_matching", b"phrase_matching", "stemmer", b"stemmer", "stopwords", b"stopwords"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_ascii_folding", b"_ascii_folding", "_enable_hnsw", b"_enable_hnsw", "_lowercase", b"_lowercase", "_max_token_len", b"_max_token_len", "_min_token_len", b"_min_token_len", "_on_disk", b"_on_disk", "_phrase_matching", b"_phrase_matching", "_stemmer", b"_stemmer", "_stopwords", b"_stopwords", "ascii_folding", b"ascii_folding", "enable_hnsw", b"enable_hnsw", "lowercase", b"lowercase", "max_token_len", b"max_token_len", "min_token_len", b"min_token_len", "on_disk", b"on_disk", "phrase_matching", b"phrase_matching", "stemmer", b"stemmer", "stopwords", b"stopwords", "tokenizer", b"tokenizer"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_ascii_folding", b"_ascii_folding"]) -> typing_extensions.Literal["ascii_folding"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_lowercase", b"_lowercase"]) -> typing_extensions.Literal["lowercase"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_token_len", b"_max_token_len"]) -> typing_extensions.Literal["max_token_len"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_min_token_len", b"_min_token_len"]) -> typing_extensions.Literal["min_token_len"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_phrase_matching", b"_phrase_matching"]) -> typing_extensions.Literal["phrase_matching"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_stemmer", b"_stemmer"]) -> typing_extensions.Literal["stemmer"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_stopwords", b"_stopwords"]) -> typing_extensions.Literal["stopwords"] | None: ...

global___TextIndexParams = TextIndexParams

class StemmingAlgorithm(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SNOWBALL_FIELD_NUMBER: builtins.int
    @property
    def snowball(self) -> global___SnowballParams:
        """Parameters for snowball stemming"""
    def __init__(
        self,
        *,
        snowball: global___SnowballParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["snowball", b"snowball", "stemming_params", b"stemming_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["snowball", b"snowball", "stemming_params", b"stemming_params"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["stemming_params", b"stemming_params"]) -> typing_extensions.Literal["snowball"] | None: ...

global___StemmingAlgorithm = StemmingAlgorithm

class SnowballParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LANGUAGE_FIELD_NUMBER: builtins.int
    language: builtins.str
    """Which language the algorithm should stem."""
    def __init__(
        self,
        *,
        language: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["language", b"language"]) -> None: ...

global___SnowballParams = SnowballParams

class BoolIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ON_DISK_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    on_disk: builtins.bool
    """If true - store index on disk."""
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        on_disk: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___BoolIndexParams = BoolIndexParams

class DatetimeIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ON_DISK_FIELD_NUMBER: builtins.int
    IS_PRINCIPAL_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    on_disk: builtins.bool
    """If true - store index on disk."""
    is_principal: builtins.bool
    """If true - use this key to organize storage of the collection data.
    This option assumes that this key will be used in majority of filtered requests.
    """
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        on_disk: builtins.bool | None = ...,
        is_principal: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_principal", b"_is_principal", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_principal", b"is_principal", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_is_principal", b"_is_principal"]) -> typing_extensions.Literal["is_principal"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___DatetimeIndexParams = DatetimeIndexParams

class UuidIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IS_TENANT_FIELD_NUMBER: builtins.int
    ON_DISK_FIELD_NUMBER: builtins.int
    ENABLE_HNSW_FIELD_NUMBER: builtins.int
    is_tenant: builtins.bool
    """If true - used for tenant optimization."""
    on_disk: builtins.bool
    """If true - store index on disk."""
    enable_hnsw: builtins.bool
    """Enable HNSW graph building for this payload field.
    If true, builds additional HNSW links (Need payload_m > 0).
    Default: true.
    """
    def __init__(
        self,
        *,
        is_tenant: builtins.bool | None = ...,
        on_disk: builtins.bool | None = ...,
        enable_hnsw: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_tenant", b"_is_tenant", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_tenant", b"is_tenant", "on_disk", b"on_disk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw", "_is_tenant", b"_is_tenant", "_on_disk", b"_on_disk", "enable_hnsw", b"enable_hnsw", "is_tenant", b"is_tenant", "on_disk", b"on_disk"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_hnsw", b"_enable_hnsw"]) -> typing_extensions.Literal["enable_hnsw"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_is_tenant", b"_is_tenant"]) -> typing_extensions.Literal["is_tenant"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_on_disk", b"_on_disk"]) -> typing_extensions.Literal["on_disk"] | None: ...

global___UuidIndexParams = UuidIndexParams

class PayloadIndexParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEYWORD_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    INTEGER_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    FLOAT_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    GEO_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    TEXT_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    BOOL_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    DATETIME_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    UUID_INDEX_PARAMS_FIELD_NUMBER: builtins.int
    @property
    def keyword_index_params(self) -> global___KeywordIndexParams:
        """Parameters for keyword index"""
    @property
    def integer_index_params(self) -> global___IntegerIndexParams:
        """Parameters for integer index"""
    @property
    def float_index_params(self) -> global___FloatIndexParams:
        """Parameters for float index"""
    @property
    def geo_index_params(self) -> global___GeoIndexParams:
        """Parameters for geo index"""
    @property
    def text_index_params(self) -> global___TextIndexParams:
        """Parameters for text index"""
    @property
    def bool_index_params(self) -> global___BoolIndexParams:
        """Parameters for bool index"""
    @property
    def datetime_index_params(self) -> global___DatetimeIndexParams:
        """Parameters for datetime index"""
    @property
    def uuid_index_params(self) -> global___UuidIndexParams:
        """Parameters for uuid index"""
    def __init__(
        self,
        *,
        keyword_index_params: global___KeywordIndexParams | None = ...,
        integer_index_params: global___IntegerIndexParams | None = ...,
        float_index_params: global___FloatIndexParams | None = ...,
        geo_index_params: global___GeoIndexParams | None = ...,
        text_index_params: global___TextIndexParams | None = ...,
        bool_index_params: global___BoolIndexParams | None = ...,
        datetime_index_params: global___DatetimeIndexParams | None = ...,
        uuid_index_params: global___UuidIndexParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bool_index_params", b"bool_index_params", "datetime_index_params", b"datetime_index_params", "float_index_params", b"float_index_params", "geo_index_params", b"geo_index_params", "index_params", b"index_params", "integer_index_params", b"integer_index_params", "keyword_index_params", b"keyword_index_params", "text_index_params", b"text_index_params", "uuid_index_params", b"uuid_index_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bool_index_params", b"bool_index_params", "datetime_index_params", b"datetime_index_params", "float_index_params", b"float_index_params", "geo_index_params", b"geo_index_params", "index_params", b"index_params", "integer_index_params", b"integer_index_params", "keyword_index_params", b"keyword_index_params", "text_index_params", b"text_index_params", "uuid_index_params", b"uuid_index_params"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["index_params", b"index_params"]) -> typing_extensions.Literal["keyword_index_params", "integer_index_params", "float_index_params", "geo_index_params", "text_index_params", "bool_index_params", "datetime_index_params", "uuid_index_params"] | None: ...

global___PayloadIndexParams = PayloadIndexParams

class PayloadSchemaInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATA_TYPE_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    POINTS_FIELD_NUMBER: builtins.int
    data_type: global___PayloadSchemaType.ValueType
    """Field data type"""
    @property
    def params(self) -> global___PayloadIndexParams:
        """Field index parameters"""
    points: builtins.int
    """Number of points indexed within this field"""
    def __init__(
        self,
        *,
        data_type: global___PayloadSchemaType.ValueType = ...,
        params: global___PayloadIndexParams | None = ...,
        points: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_params", b"_params", "_points", b"_points", "params", b"params", "points", b"points"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_params", b"_params", "_points", b"_points", "data_type", b"data_type", "params", b"params", "points", b"points"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_params", b"_params"]) -> typing_extensions.Literal["params"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_points", b"_points"]) -> typing_extensions.Literal["points"] | None: ...

global___PayloadSchemaInfo = PayloadSchemaInfo

class UpdateQueueInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LENGTH_FIELD_NUMBER: builtins.int
    DEFERRED_POINTS_FIELD_NUMBER: builtins.int
    length: builtins.int
    """Number of elements in the queue"""
    deferred_points: builtins.int
    """Number of points that are deferred (i.e hidden from search as they're not yet optimized)."""
    def __init__(
        self,
        *,
        length: builtins.int = ...,
        deferred_points: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_deferred_points", b"_deferred_points", "deferred_points", b"deferred_points"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_deferred_points", b"_deferred_points", "deferred_points", b"deferred_points", "length", b"length"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_deferred_points", b"_deferred_points"]) -> typing_extensions.Literal["deferred_points"] | None: ...

global___UpdateQueueInfo = UpdateQueueInfo

class CollectionInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class PayloadSchemaEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___PayloadSchemaInfo: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___PayloadSchemaInfo | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    STATUS_FIELD_NUMBER: builtins.int
    OPTIMIZER_STATUS_FIELD_NUMBER: builtins.int
    SEGMENTS_COUNT_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    PAYLOAD_SCHEMA_FIELD_NUMBER: builtins.int
    POINTS_COUNT_FIELD_NUMBER: builtins.int
    INDEXED_VECTORS_COUNT_FIELD_NUMBER: builtins.int
    WARNINGS_FIELD_NUMBER: builtins.int
    UPDATE_QUEUE_FIELD_NUMBER: builtins.int
    status: global___CollectionStatus.ValueType
    """operating condition of the collection"""
    @property
    def optimizer_status(self) -> global___OptimizerStatus:
        """status of collection optimizers"""
    segments_count: builtins.int
    """Number of independent segments"""
    @property
    def config(self) -> global___CollectionConfig:
        """Configuration"""
    @property
    def payload_schema(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___PayloadSchemaInfo]:
        """Collection data types"""
    points_count: builtins.int
    """Approximate number of points in the collection"""
    indexed_vectors_count: builtins.int
    """Approximate number of indexed vectors in the collection."""
    @property
    def warnings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollectionWarning]:
        """Warnings related to the collection"""
    @property
    def update_queue(self) -> global___UpdateQueueInfo:
        """Update queue info"""
    def __init__(
        self,
        *,
        status: global___CollectionStatus.ValueType = ...,
        optimizer_status: global___OptimizerStatus | None = ...,
        segments_count: builtins.int = ...,
        config: global___CollectionConfig | None = ...,
        payload_schema: collections.abc.Mapping[builtins.str, global___PayloadSchemaInfo] | None = ...,
        points_count: builtins.int | None = ...,
        indexed_vectors_count: builtins.int | None = ...,
        warnings: collections.abc.Iterable[global___CollectionWarning] | None = ...,
        update_queue: global___UpdateQueueInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_indexed_vectors_count", b"_indexed_vectors_count", "_points_count", b"_points_count", "config", b"config", "indexed_vectors_count", b"indexed_vectors_count", "optimizer_status", b"optimizer_status", "points_count", b"points_count", "update_queue", b"update_queue"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_indexed_vectors_count", b"_indexed_vectors_count", "_points_count", b"_points_count", "config", b"config", "indexed_vectors_count", b"indexed_vectors_count", "optimizer_status", b"optimizer_status", "payload_schema", b"payload_schema", "points_count", b"points_count", "segments_count", b"segments_count", "status", b"status", "update_queue", b"update_queue", "warnings", b"warnings"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_indexed_vectors_count", b"_indexed_vectors_count"]) -> typing_extensions.Literal["indexed_vectors_count"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_points_count", b"_points_count"]) -> typing_extensions.Literal["points_count"] | None: ...

global___CollectionInfo = CollectionInfo

class ChangeAliases(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACTIONS_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    @property
    def actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AliasOperations]:
        """List of actions"""
    timeout: builtins.int
    """Wait timeout for operation commit in seconds.
    If not specified - default value will be supplied.
    """
    def __init__(
        self,
        *,
        actions: collections.abc.Iterable[global___AliasOperations] | None = ...,
        timeout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "actions", b"actions", "timeout", b"timeout"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...

global___ChangeAliases = ChangeAliases

class AliasOperations(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATE_ALIAS_FIELD_NUMBER: builtins.int
    RENAME_ALIAS_FIELD_NUMBER: builtins.int
    DELETE_ALIAS_FIELD_NUMBER: builtins.int
    @property
    def create_alias(self) -> global___CreateAlias: ...
    @property
    def rename_alias(self) -> global___RenameAlias: ...
    @property
    def delete_alias(self) -> global___DeleteAlias: ...
    def __init__(
        self,
        *,
        create_alias: global___CreateAlias | None = ...,
        rename_alias: global___RenameAlias | None = ...,
        delete_alias: global___DeleteAlias | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "create_alias", b"create_alias", "delete_alias", b"delete_alias", "rename_alias", b"rename_alias"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "create_alias", b"create_alias", "delete_alias", b"delete_alias", "rename_alias", b"rename_alias"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["action", b"action"]) -> typing_extensions.Literal["create_alias", "rename_alias", "delete_alias"] | None: ...

global___AliasOperations = AliasOperations

class CreateAlias(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    ALIAS_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    alias_name: builtins.str
    """New name of the alias"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        alias_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias_name", b"alias_name", "collection_name", b"collection_name"]) -> None: ...

global___CreateAlias = CreateAlias

class RenameAlias(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OLD_ALIAS_NAME_FIELD_NUMBER: builtins.int
    NEW_ALIAS_NAME_FIELD_NUMBER: builtins.int
    old_alias_name: builtins.str
    """Name of the alias to rename"""
    new_alias_name: builtins.str
    """Name of the alias"""
    def __init__(
        self,
        *,
        old_alias_name: builtins.str = ...,
        new_alias_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["new_alias_name", b"new_alias_name", "old_alias_name", b"old_alias_name"]) -> None: ...

global___RenameAlias = RenameAlias

class DeleteAlias(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALIAS_NAME_FIELD_NUMBER: builtins.int
    alias_name: builtins.str
    """Name of the alias"""
    def __init__(
        self,
        *,
        alias_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias_name", b"alias_name"]) -> None: ...

global___DeleteAlias = DeleteAlias

class ListAliasesRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ListAliasesRequest = ListAliasesRequest

class ListCollectionAliasesRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name"]) -> None: ...

global___ListCollectionAliasesRequest = ListCollectionAliasesRequest

class AliasDescription(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALIAS_NAME_FIELD_NUMBER: builtins.int
    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    alias_name: builtins.str
    """Name of the alias"""
    collection_name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        alias_name: builtins.str = ...,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias_name", b"alias_name", "collection_name", b"collection_name"]) -> None: ...

global___AliasDescription = AliasDescription

class ListAliasesResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALIASES_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    @property
    def aliases(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AliasDescription]: ...
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        aliases: collections.abc.Iterable[global___AliasDescription] | None = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["aliases", b"aliases", "time", b"time"]) -> None: ...

global___ListAliasesResponse = ListAliasesResponse

class CollectionClusterInfoRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name"]) -> None: ...

global___CollectionClusterInfoRequest = CollectionClusterInfoRequest

class ShardKey(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEYWORD_FIELD_NUMBER: builtins.int
    NUMBER_FIELD_NUMBER: builtins.int
    keyword: builtins.str
    """String key"""
    number: builtins.int
    """Number key"""
    def __init__(
        self,
        *,
        keyword: builtins.str = ...,
        number: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["key", b"key", "keyword", b"keyword", "number", b"number"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "keyword", b"keyword", "number", b"number"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["key", b"key"]) -> typing_extensions.Literal["keyword", "number"] | None: ...

global___ShardKey = ShardKey

class LocalShardInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    POINTS_COUNT_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    SHARD_KEY_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    points_count: builtins.int
    """Number of points in the shard"""
    state: global___ReplicaState.ValueType
    """Is replica active"""
    @property
    def shard_key(self) -> global___ShardKey:
        """User-defined shard key"""
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        points_count: builtins.int = ...,
        state: global___ReplicaState.ValueType = ...,
        shard_key: global___ShardKey | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "shard_key", b"shard_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "points_count", b"points_count", "shard_id", b"shard_id", "shard_key", b"shard_key", "state", b"state"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_shard_key", b"_shard_key"]) -> typing_extensions.Literal["shard_key"] | None: ...

global___LocalShardInfo = LocalShardInfo

class RemoteShardInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    PEER_ID_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    SHARD_KEY_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    peer_id: builtins.int
    """Remote peer id"""
    state: global___ReplicaState.ValueType
    """Is replica active"""
    @property
    def shard_key(self) -> global___ShardKey:
        """User-defined shard key"""
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        peer_id: builtins.int = ...,
        state: global___ReplicaState.ValueType = ...,
        shard_key: global___ShardKey | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "shard_key", b"shard_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "peer_id", b"peer_id", "shard_id", b"shard_id", "shard_key", b"shard_key", "state", b"state"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_shard_key", b"_shard_key"]) -> typing_extensions.Literal["shard_key"] | None: ...

global___RemoteShardInfo = RemoteShardInfo

class ShardTransferInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    TO_SHARD_ID_FIELD_NUMBER: builtins.int
    FROM_FIELD_NUMBER: builtins.int
    TO_FIELD_NUMBER: builtins.int
    SYNC_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    to_shard_id: builtins.int
    to: builtins.int
    sync: builtins.bool
    """If `true` transfer is a synchronization of a replicas;
    If `false` transfer is a moving of a shard from one peer to another
    """
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        to_shard_id: builtins.int | None = ...,
        to: builtins.int = ...,
        sync: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "to_shard_id", b"to_shard_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "from", b"from", "shard_id", b"shard_id", "sync", b"sync", "to", b"to", "to_shard_id", b"to_shard_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_shard_id", b"_to_shard_id"]) -> typing_extensions.Literal["to_shard_id"] | None: ...

global___ShardTransferInfo = ShardTransferInfo

class ReshardingInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    PEER_ID_FIELD_NUMBER: builtins.int
    SHARD_KEY_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    peer_id: builtins.int
    @property
    def shard_key(self) -> global___ShardKey: ...
    direction: global___ReshardingDirection.ValueType
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        peer_id: builtins.int = ...,
        shard_key: global___ShardKey | None = ...,
        direction: global___ReshardingDirection.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "shard_key", b"shard_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_shard_key", b"_shard_key", "direction", b"direction", "peer_id", b"peer_id", "shard_id", b"shard_id", "shard_key", b"shard_key"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_shard_key", b"_shard_key"]) -> typing_extensions.Literal["shard_key"] | None: ...

global___ReshardingInfo = ReshardingInfo

class CollectionClusterInfoResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PEER_ID_FIELD_NUMBER: builtins.int
    SHARD_COUNT_FIELD_NUMBER: builtins.int
    LOCAL_SHARDS_FIELD_NUMBER: builtins.int
    REMOTE_SHARDS_FIELD_NUMBER: builtins.int
    SHARD_TRANSFERS_FIELD_NUMBER: builtins.int
    RESHARDING_OPERATIONS_FIELD_NUMBER: builtins.int
    peer_id: builtins.int
    """ID of this peer"""
    shard_count: builtins.int
    """Total number of shards"""
    @property
    def local_shards(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocalShardInfo]:
        """Local shards"""
    @property
    def remote_shards(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RemoteShardInfo]:
        """Remote shards"""
    @property
    def shard_transfers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ShardTransferInfo]:
        """Shard transfers"""
    @property
    def resharding_operations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ReshardingInfo]:
        """Resharding operations"""
    def __init__(
        self,
        *,
        peer_id: builtins.int = ...,
        shard_count: builtins.int = ...,
        local_shards: collections.abc.Iterable[global___LocalShardInfo] | None = ...,
        remote_shards: collections.abc.Iterable[global___RemoteShardInfo] | None = ...,
        shard_transfers: collections.abc.Iterable[global___ShardTransferInfo] | None = ...,
        resharding_operations: collections.abc.Iterable[global___ReshardingInfo] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["local_shards", b"local_shards", "peer_id", b"peer_id", "remote_shards", b"remote_shards", "resharding_operations", b"resharding_operations", "shard_count", b"shard_count", "shard_transfers", b"shard_transfers"]) -> None: ...

global___CollectionClusterInfoResponse = CollectionClusterInfoResponse

class MoveShard(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    TO_SHARD_ID_FIELD_NUMBER: builtins.int
    FROM_PEER_ID_FIELD_NUMBER: builtins.int
    TO_PEER_ID_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    to_shard_id: builtins.int
    from_peer_id: builtins.int
    to_peer_id: builtins.int
    method: global___ShardTransferMethod.ValueType
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        to_shard_id: builtins.int | None = ...,
        from_peer_id: builtins.int = ...,
        to_peer_id: builtins.int = ...,
        method: global___ShardTransferMethod.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_method", b"_method", "_to_shard_id", b"_to_shard_id", "method", b"method", "to_shard_id", b"to_shard_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_method", b"_method", "_to_shard_id", b"_to_shard_id", "from_peer_id", b"from_peer_id", "method", b"method", "shard_id", b"shard_id", "to_peer_id", b"to_peer_id", "to_shard_id", b"to_shard_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_method", b"_method"]) -> typing_extensions.Literal["method"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_shard_id", b"_to_shard_id"]) -> typing_extensions.Literal["to_shard_id"] | None: ...

global___MoveShard = MoveShard

class ReplicateShard(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    TO_SHARD_ID_FIELD_NUMBER: builtins.int
    FROM_PEER_ID_FIELD_NUMBER: builtins.int
    TO_PEER_ID_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    to_shard_id: builtins.int
    from_peer_id: builtins.int
    to_peer_id: builtins.int
    method: global___ShardTransferMethod.ValueType
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        to_shard_id: builtins.int | None = ...,
        from_peer_id: builtins.int = ...,
        to_peer_id: builtins.int = ...,
        method: global___ShardTransferMethod.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_method", b"_method", "_to_shard_id", b"_to_shard_id", "method", b"method", "to_shard_id", b"to_shard_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_method", b"_method", "_to_shard_id", b"_to_shard_id", "from_peer_id", b"from_peer_id", "method", b"method", "shard_id", b"shard_id", "to_peer_id", b"to_peer_id", "to_shard_id", b"to_shard_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_method", b"_method"]) -> typing_extensions.Literal["method"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_shard_id", b"_to_shard_id"]) -> typing_extensions.Literal["to_shard_id"] | None: ...

global___ReplicateShard = ReplicateShard

class AbortShardTransfer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    TO_SHARD_ID_FIELD_NUMBER: builtins.int
    FROM_PEER_ID_FIELD_NUMBER: builtins.int
    TO_PEER_ID_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    to_shard_id: builtins.int
    from_peer_id: builtins.int
    to_peer_id: builtins.int
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        to_shard_id: builtins.int | None = ...,
        from_peer_id: builtins.int = ...,
        to_peer_id: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "to_shard_id", b"to_shard_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "from_peer_id", b"from_peer_id", "shard_id", b"shard_id", "to_peer_id", b"to_peer_id", "to_shard_id", b"to_shard_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_shard_id", b"_to_shard_id"]) -> typing_extensions.Literal["to_shard_id"] | None: ...

global___AbortShardTransfer = AbortShardTransfer

class RestartTransfer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    TO_SHARD_ID_FIELD_NUMBER: builtins.int
    FROM_PEER_ID_FIELD_NUMBER: builtins.int
    TO_PEER_ID_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    """Local shard id"""
    to_shard_id: builtins.int
    from_peer_id: builtins.int
    to_peer_id: builtins.int
    method: global___ShardTransferMethod.ValueType
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        to_shard_id: builtins.int | None = ...,
        from_peer_id: builtins.int = ...,
        to_peer_id: builtins.int = ...,
        method: global___ShardTransferMethod.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "to_shard_id", b"to_shard_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_to_shard_id", b"_to_shard_id", "from_peer_id", b"from_peer_id", "method", b"method", "shard_id", b"shard_id", "to_peer_id", b"to_peer_id", "to_shard_id", b"to_shard_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_to_shard_id", b"_to_shard_id"]) -> typing_extensions.Literal["to_shard_id"] | None: ...

global___RestartTransfer = RestartTransfer

class ReplicatePoints(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FROM_SHARD_KEY_FIELD_NUMBER: builtins.int
    TO_SHARD_KEY_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    @property
    def from_shard_key(self) -> global___ShardKey:
        """Source shard key"""
    @property
    def to_shard_key(self) -> global___ShardKey:
        """Target shard key"""
    @property
    def filter(self) -> qdrant_common_pb2.Filter:
        """If set - only points matching the filter will be replicated"""
    def __init__(
        self,
        *,
        from_shard_key: global___ShardKey | None = ...,
        to_shard_key: global___ShardKey | None = ...,
        filter: qdrant_common_pb2.Filter | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_filter", b"_filter", "filter", b"filter", "from_shard_key", b"from_shard_key", "to_shard_key", b"to_shard_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_filter", b"_filter", "filter", b"filter", "from_shard_key", b"from_shard_key", "to_shard_key", b"to_shard_key"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_filter", b"_filter"]) -> typing_extensions.Literal["filter"] | None: ...

global___ReplicatePoints = ReplicatePoints

class Replica(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_ID_FIELD_NUMBER: builtins.int
    PEER_ID_FIELD_NUMBER: builtins.int
    shard_id: builtins.int
    peer_id: builtins.int
    def __init__(
        self,
        *,
        shard_id: builtins.int = ...,
        peer_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["peer_id", b"peer_id", "shard_id", b"shard_id"]) -> None: ...

global___Replica = Replica

class CreateShardKey(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_KEY_FIELD_NUMBER: builtins.int
    SHARDS_NUMBER_FIELD_NUMBER: builtins.int
    REPLICATION_FACTOR_FIELD_NUMBER: builtins.int
    PLACEMENT_FIELD_NUMBER: builtins.int
    INITIAL_STATE_FIELD_NUMBER: builtins.int
    @property
    def shard_key(self) -> global___ShardKey:
        """User-defined shard key"""
    shards_number: builtins.int
    """Number of shards to create per shard key"""
    replication_factor: builtins.int
    """Number of replicas of each shard to create"""
    @property
    def placement(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """List of peer ids, allowed to create shards. If empty - all peers are allowed"""
    initial_state: global___ReplicaState.ValueType
    """Initial state of created replicas. Warning: use with care."""
    def __init__(
        self,
        *,
        shard_key: global___ShardKey | None = ...,
        shards_number: builtins.int | None = ...,
        replication_factor: builtins.int | None = ...,
        placement: collections.abc.Iterable[builtins.int] | None = ...,
        initial_state: global___ReplicaState.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_initial_state", b"_initial_state", "_replication_factor", b"_replication_factor", "_shards_number", b"_shards_number", "initial_state", b"initial_state", "replication_factor", b"replication_factor", "shard_key", b"shard_key", "shards_number", b"shards_number"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_initial_state", b"_initial_state", "_replication_factor", b"_replication_factor", "_shards_number", b"_shards_number", "initial_state", b"initial_state", "placement", b"placement", "replication_factor", b"replication_factor", "shard_key", b"shard_key", "shards_number", b"shards_number"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_initial_state", b"_initial_state"]) -> typing_extensions.Literal["initial_state"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_replication_factor", b"_replication_factor"]) -> typing_extensions.Literal["replication_factor"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_shards_number", b"_shards_number"]) -> typing_extensions.Literal["shards_number"] | None: ...

global___CreateShardKey = CreateShardKey

class DeleteShardKey(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_KEY_FIELD_NUMBER: builtins.int
    @property
    def shard_key(self) -> global___ShardKey:
        """Shard key to delete"""
    def __init__(
        self,
        *,
        shard_key: global___ShardKey | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["shard_key", b"shard_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["shard_key", b"shard_key"]) -> None: ...

global___DeleteShardKey = DeleteShardKey

class UpdateCollectionClusterSetupRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    MOVE_SHARD_FIELD_NUMBER: builtins.int
    REPLICATE_SHARD_FIELD_NUMBER: builtins.int
    ABORT_TRANSFER_FIELD_NUMBER: builtins.int
    DROP_REPLICA_FIELD_NUMBER: builtins.int
    CREATE_SHARD_KEY_FIELD_NUMBER: builtins.int
    DELETE_SHARD_KEY_FIELD_NUMBER: builtins.int
    RESTART_TRANSFER_FIELD_NUMBER: builtins.int
    REPLICATE_POINTS_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    @property
    def move_shard(self) -> global___MoveShard: ...
    @property
    def replicate_shard(self) -> global___ReplicateShard: ...
    @property
    def abort_transfer(self) -> global___AbortShardTransfer: ...
    @property
    def drop_replica(self) -> global___Replica: ...
    @property
    def create_shard_key(self) -> global___CreateShardKey: ...
    @property
    def delete_shard_key(self) -> global___DeleteShardKey: ...
    @property
    def restart_transfer(self) -> global___RestartTransfer: ...
    @property
    def replicate_points(self) -> global___ReplicatePoints: ...
    timeout: builtins.int
    """Wait timeout for operation commit in seconds.
    If not specified - default value will be supplied.
    """
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        move_shard: global___MoveShard | None = ...,
        replicate_shard: global___ReplicateShard | None = ...,
        abort_transfer: global___AbortShardTransfer | None = ...,
        drop_replica: global___Replica | None = ...,
        create_shard_key: global___CreateShardKey | None = ...,
        delete_shard_key: global___DeleteShardKey | None = ...,
        restart_transfer: global___RestartTransfer | None = ...,
        replicate_points: global___ReplicatePoints | None = ...,
        timeout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "abort_transfer", b"abort_transfer", "create_shard_key", b"create_shard_key", "delete_shard_key", b"delete_shard_key", "drop_replica", b"drop_replica", "move_shard", b"move_shard", "operation", b"operation", "replicate_points", b"replicate_points", "replicate_shard", b"replicate_shard", "restart_transfer", b"restart_transfer", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "abort_transfer", b"abort_transfer", "collection_name", b"collection_name", "create_shard_key", b"create_shard_key", "delete_shard_key", b"delete_shard_key", "drop_replica", b"drop_replica", "move_shard", b"move_shard", "operation", b"operation", "replicate_points", b"replicate_points", "replicate_shard", b"replicate_shard", "restart_transfer", b"restart_transfer", "timeout", b"timeout"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["operation", b"operation"]) -> typing_extensions.Literal["move_shard", "replicate_shard", "abort_transfer", "drop_replica", "create_shard_key", "delete_shard_key", "restart_transfer", "replicate_points"] | None: ...

global___UpdateCollectionClusterSetupRequest = UpdateCollectionClusterSetupRequest

class UpdateCollectionClusterSetupResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    result: builtins.bool
    def __init__(
        self,
        *,
        result: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...

global___UpdateCollectionClusterSetupResponse = UpdateCollectionClusterSetupResponse

class CreateShardKeyRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    REQUEST_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    @property
    def request(self) -> global___CreateShardKey:
        """Request to create shard key"""
    timeout: builtins.int
    """Wait timeout for operation commit in seconds.
    If not specified - default value will be supplied.
    """
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        request: global___CreateShardKey | None = ...,
        timeout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "request", b"request", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "collection_name", b"collection_name", "request", b"request", "timeout", b"timeout"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...

global___CreateShardKeyRequest = CreateShardKeyRequest

class DeleteShardKeyRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    REQUEST_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    @property
    def request(self) -> global___DeleteShardKey:
        """Request to delete shard key"""
    timeout: builtins.int
    """Wait timeout for operation commit in seconds.
    If not specified - default value will be supplied.
    """
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        request: global___DeleteShardKey | None = ...,
        timeout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "request", b"request", "timeout", b"timeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_timeout", b"_timeout", "collection_name", b"collection_name", "request", b"request", "timeout", b"timeout"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout", b"_timeout"]) -> typing_extensions.Literal["timeout"] | None: ...

global___DeleteShardKeyRequest = DeleteShardKeyRequest

class ListShardKeysRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name"]) -> None: ...

global___ListShardKeysRequest = ListShardKeysRequest

class CreateShardKeyResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    result: builtins.bool
    def __init__(
        self,
        *,
        result: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...

global___CreateShardKeyResponse = CreateShardKeyResponse

class DeleteShardKeyResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULT_FIELD_NUMBER: builtins.int
    result: builtins.bool
    def __init__(
        self,
        *,
        result: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...

global___DeleteShardKeyResponse = DeleteShardKeyResponse

class ShardKeyDescription(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    @property
    def key(self) -> global___ShardKey: ...
    def __init__(
        self,
        *,
        key: global___ShardKey | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["key", b"key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["key", b"key"]) -> None: ...

global___ShardKeyDescription = ShardKeyDescription

class ListShardKeysResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHARD_KEYS_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    @property
    def shard_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ShardKeyDescription]: ...
    time: builtins.float
    """Time spent to process"""
    def __init__(
        self,
        *,
        shard_keys: collections.abc.Iterable[global___ShardKeyDescription] | None = ...,
        time: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["shard_keys", b"shard_keys", "time", b"time"]) -> None: ...

global___ListShardKeysResponse = ListShardKeysResponse
