"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.struct_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class DataType(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DataType._Type.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: DataType._Type.ValueType  # 0
        NULL: DataType._Type.ValueType  # 1
        FRACTIONAL: DataType._Type.ValueType  # 2
        INTEGRAL: DataType._Type.ValueType  # 3
        BOOLEAN: DataType._Type.ValueType  # 4
        STRING: DataType._Type.ValueType  # 5

    class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
    UNKNOWN: DataType.Type.ValueType  # 0
    NULL: DataType.Type.ValueType  # 1
    FRACTIONAL: DataType.Type.ValueType  # 2
    INTEGRAL: DataType.Type.ValueType  # 3
    BOOLEAN: DataType.Type.ValueType  # 4
    STRING: DataType.Type.ValueType  # 5

    TYPE_FIELD_NUMBER: builtins.int
    type: global___DataType.Type.ValueType
    def __init__(
        self,
        *,
        type: global___DataType.Type.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["type", b"type"]) -> None: ...

global___DataType = DataType

@typing_extensions.final
class HllSketchMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SKETCH_FIELD_NUMBER: builtins.int
    sketch: builtins.bytes
    def __init__(
        self,
        *,
        sketch: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sketch", b"sketch"]) -> None: ...

global___HllSketchMessage = HllSketchMessage

@typing_extensions.final
class FrequentItemsSketchMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SKETCH_FIELD_NUMBER: builtins.int
    sketch: builtins.bytes
    def __init__(
        self,
        *,
        sketch: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sketch", b"sketch"]) -> None: ...

global___FrequentItemsSketchMessage = FrequentItemsSketchMessage

@typing_extensions.final
class KllSketchMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SKETCH_FIELD_NUMBER: builtins.int
    sketch: builtins.bytes
    def __init__(
        self,
        *,
        sketch: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sketch", b"sketch"]) -> None: ...

global___KllSketchMessage = KllSketchMessage

@typing_extensions.final
class CpcSketchMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SKETCH_FIELD_NUMBER: builtins.int
    sketch: builtins.bytes
    def __init__(
        self,
        *,
        sketch: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sketch", b"sketch"]) -> None: ...

global___CpcSketchMessage = CpcSketchMessage

@typing_extensions.final
class MetricComponentMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_ID_FIELD_NUMBER: builtins.int
    N_FIELD_NUMBER: builtins.int
    D_FIELD_NUMBER: builtins.int
    FREQUENT_ITEMS_FIELD_NUMBER: builtins.int
    HLL_FIELD_NUMBER: builtins.int
    KLL_FIELD_NUMBER: builtins.int
    CPC_FIELD_NUMBER: builtins.int
    SERIALIZED_BYTES_FIELD_NUMBER: builtins.int
    DATACLASS_PARAM_FIELD_NUMBER: builtins.int
    MSG_FIELD_NUMBER: builtins.int
    type_id: builtins.int
    """type ID. It might determine how a field gets serder and the aggregation logic"""
    n: builtins.int
    """first class citizens"""
    d: builtins.float
    @property
    def frequent_items(self) -> global___FrequentItemsSketchMessage: ...
    @property
    def hll(self) -> global___HllSketchMessage: ...
    @property
    def kll(self) -> global___KllSketchMessage: ...
    @property
    def cpc(self) -> global___CpcSketchMessage: ...
    serialized_bytes: builtins.bytes
    """extension points"""
    @property
    def dataclass_param(self) -> google.protobuf.struct_pb2.Struct: ...
    @property
    def msg(self) -> google.protobuf.any_pb2.Any: ...
    def __init__(
        self,
        *,
        type_id: builtins.int = ...,
        n: builtins.int = ...,
        d: builtins.float = ...,
        frequent_items: global___FrequentItemsSketchMessage | None = ...,
        hll: global___HllSketchMessage | None = ...,
        kll: global___KllSketchMessage | None = ...,
        cpc: global___CpcSketchMessage | None = ...,
        serialized_bytes: builtins.bytes = ...,
        dataclass_param: google.protobuf.struct_pb2.Struct | None = ...,
        msg: google.protobuf.any_pb2.Any | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cpc", b"cpc", "d", b"d", "dataclass_param", b"dataclass_param", "frequent_items", b"frequent_items", "hll", b"hll", "kll", b"kll", "msg", b"msg", "n", b"n", "serialized_bytes", b"serialized_bytes", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cpc", b"cpc", "d", b"d", "dataclass_param", b"dataclass_param", "frequent_items", b"frequent_items", "hll", b"hll", "kll", b"kll", "msg", b"msg", "n", b"n", "serialized_bytes", b"serialized_bytes", "type_id", b"type_id", "value", b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["n", "d", "frequent_items", "hll", "kll", "cpc", "serialized_bytes", "dataclass_param", "msg"] | None: ...

global___MetricComponentMessage = MetricComponentMessage

@typing_extensions.final
class MetricMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class MetricComponentsEntry(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___MetricComponentMessage: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___MetricComponentMessage | 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: ...

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

global___MetricMessage = MetricMessage

@typing_extensions.final
class ColumnMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class MetricComponentsEntry(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___MetricComponentMessage: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___MetricComponentMessage | 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: ...

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

global___ColumnMessage = ColumnMessage

@typing_extensions.final
class DatasetProperties(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

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

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

    SCHEMA_MAJOR_VERSION_FIELD_NUMBER: builtins.int
    SCHEMA_MINOR_VERSION_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    DATASET_TIMESTAMP_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    schema_major_version: builtins.int
    schema_minor_version: builtins.int
    creation_timestamp: builtins.int
    dataset_timestamp: builtins.int
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def metadata(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        schema_major_version: builtins.int = ...,
        schema_minor_version: builtins.int = ...,
        creation_timestamp: builtins.int = ...,
        dataset_timestamp: builtins.int = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp", "dataset_timestamp", b"dataset_timestamp", "metadata", b"metadata", "schema_major_version", b"schema_major_version", "schema_minor_version", b"schema_minor_version", "tags", b"tags"]) -> None: ...

global___DatasetProperties = DatasetProperties

@typing_extensions.final
class ChunkOffsets(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OFFSETS_FIELD_NUMBER: builtins.int
    @property
    def offsets(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        offsets: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["offsets", b"offsets"]) -> None: ...

global___ChunkOffsets = ChunkOffsets

@typing_extensions.final
class ChunkMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class MetricComponentsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.int
        @property
        def value(self) -> global___MetricComponentMessage: ...
        def __init__(
            self,
            *,
            key: builtins.int = ...,
            value: global___MetricComponentMessage | 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: ...

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

global___ChunkMessage = ChunkMessage

@typing_extensions.final
class ChunkHeader(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _ChunkTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ChunkHeader._ChunkType.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        DATASET: ChunkHeader._ChunkType.ValueType  # 0
        COLUMN: ChunkHeader._ChunkType.ValueType  # 2

    class ChunkType(_ChunkType, metaclass=_ChunkTypeEnumTypeWrapper): ...
    DATASET: ChunkHeader.ChunkType.ValueType  # 0
    COLUMN: ChunkHeader.ChunkType.ValueType  # 2

    TYPE_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    LENGTH_FIELD_NUMBER: builtins.int
    type: global___ChunkHeader.ChunkType.ValueType
    tag: builtins.str
    length: builtins.int
    def __init__(
        self,
        *,
        type: global___ChunkHeader.ChunkType.ValueType = ...,
        tag: builtins.str = ...,
        length: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["length", b"length", "tag", b"tag", "type", b"type"]) -> None: ...

global___ChunkHeader = ChunkHeader

@typing_extensions.final
class DatasetProfileHeader(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class ColumnOffsetsEntry(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___ChunkOffsets: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___ChunkOffsets | 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: ...

    @typing_extensions.final
    class IndexedMetricPathsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    PROPERTIES_FIELD_NUMBER: builtins.int
    COLUMN_OFFSETS_FIELD_NUMBER: builtins.int
    METRIC_OFFSETS_FIELD_NUMBER: builtins.int
    LENGTH_FIELD_NUMBER: builtins.int
    INDEXED_METRIC_PATHS_FIELD_NUMBER: builtins.int
    @property
    def properties(self) -> global___DatasetProperties: ...
    @property
    def column_offsets(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ChunkOffsets]: ...
    @property
    def metric_offsets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChunkOffsets]: ...
    length: builtins.int
    """total length of the rest of the data for this profile."""
    @property
    def indexed_metric_paths(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: ...
    def __init__(
        self,
        *,
        properties: global___DatasetProperties | None = ...,
        column_offsets: collections.abc.Mapping[builtins.str, global___ChunkOffsets] | None = ...,
        metric_offsets: collections.abc.Iterable[global___ChunkOffsets] | None = ...,
        length: builtins.int = ...,
        indexed_metric_paths: collections.abc.Mapping[builtins.int, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["properties", b"properties"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["column_offsets", b"column_offsets", "indexed_metric_paths", b"indexed_metric_paths", "length", b"length", "metric_offsets", b"metric_offsets", "properties", b"properties"]) -> None: ...

global___DatasetProfileHeader = DatasetProfileHeader

@typing_extensions.final
class SegmentTag(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SegmentTag = SegmentTag

@typing_extensions.final
class Segment(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___Segment = Segment

@typing_extensions.final
class SegmentationPartition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SegmentationPartition = SegmentationPartition

@typing_extensions.final
class DatasetSegmentHeader(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class OffsetsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    HAS_SEGMENTS_FIELD_NUMBER: builtins.int
    SEGMENTS_FIELD_NUMBER: builtins.int
    OFFSETS_FIELD_NUMBER: builtins.int
    has_segments: builtins.bool
    """whether the file contains segmented data or not"""
    @property
    def segments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Segment]:
        """list of segments"""
    @property
    def offsets(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.int]:
        """we want the indices of the map of offsets to have static size, and thus we use fixed32 bytes"""
    def __init__(
        self,
        *,
        has_segments: builtins.bool = ...,
        segments: collections.abc.Iterable[global___Segment] | None = ...,
        offsets: collections.abc.Mapping[builtins.int, builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["has_segments", b"has_segments", "offsets", b"offsets", "segments", b"segments"]) -> None: ...

global___DatasetSegmentHeader = DatasetSegmentHeader
