"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.internal.enum_type_wrapper import (
    _EnumTypeWrapper as google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from tensorflow_metadata.proto.v0.path_pb2 import (
    Path as tensorflow_metadata___proto___v0___path_pb2___Path,
)

from typing import (
    Iterable as typing___Iterable,
    NewType as typing___NewType,
    Optional as typing___Optional,
    Text as typing___Text,
    cast as typing___cast,
    overload as typing___overload,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int


DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class DatasetFeatureStatisticsList(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def datasets(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___DatasetFeatureStatistics]: ...

    def __init__(self,
        *,
        datasets : typing___Optional[typing___Iterable[type___DatasetFeatureStatistics]] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"datasets",b"datasets"]) -> None: ...
type___DatasetFeatureStatisticsList = DatasetFeatureStatisticsList

class DatasetFeatureStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    name: typing___Text = ...
    num_examples: builtin___int = ...
    weighted_num_examples: builtin___float = ...

    @property
    def features(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___FeatureNameStatistics]: ...

    @property
    def cross_features(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___CrossFeatureStatistics]: ...

    def __init__(self,
        *,
        name : typing___Optional[typing___Text] = None,
        num_examples : typing___Optional[builtin___int] = None,
        weighted_num_examples : typing___Optional[builtin___float] = None,
        features : typing___Optional[typing___Iterable[type___FeatureNameStatistics]] = None,
        cross_features : typing___Optional[typing___Iterable[type___CrossFeatureStatistics]] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"cross_features",b"cross_features",u"features",b"features",u"name",b"name",u"num_examples",b"num_examples",u"weighted_num_examples",b"weighted_num_examples"]) -> None: ...
type___DatasetFeatureStatistics = DatasetFeatureStatistics

class CrossFeatureStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    count: builtin___int = ...

    @property
    def path_x(self) -> tensorflow_metadata___proto___v0___path_pb2___Path: ...

    @property
    def path_y(self) -> tensorflow_metadata___proto___v0___path_pb2___Path: ...

    @property
    def num_cross_stats(self) -> type___NumericCrossStatistics: ...

    @property
    def categorical_cross_stats(self) -> type___CategoricalCrossStatistics: ...

    def __init__(self,
        *,
        path_x : typing___Optional[tensorflow_metadata___proto___v0___path_pb2___Path] = None,
        path_y : typing___Optional[tensorflow_metadata___proto___v0___path_pb2___Path] = None,
        count : typing___Optional[builtin___int] = None,
        num_cross_stats : typing___Optional[type___NumericCrossStatistics] = None,
        categorical_cross_stats : typing___Optional[type___CategoricalCrossStatistics] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"categorical_cross_stats",b"categorical_cross_stats",u"cross_stats",b"cross_stats",u"num_cross_stats",b"num_cross_stats",u"path_x",b"path_x",u"path_y",b"path_y"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"categorical_cross_stats",b"categorical_cross_stats",u"count",b"count",u"cross_stats",b"cross_stats",u"num_cross_stats",b"num_cross_stats",u"path_x",b"path_x",u"path_y",b"path_y"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"cross_stats",b"cross_stats"]) -> typing_extensions___Literal["num_cross_stats","categorical_cross_stats"]: ...
type___CrossFeatureStatistics = CrossFeatureStatistics

class NumericCrossStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    correlation: builtin___float = ...
    covariance: builtin___float = ...

    def __init__(self,
        *,
        correlation : typing___Optional[builtin___float] = None,
        covariance : typing___Optional[builtin___float] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"correlation",b"correlation",u"covariance",b"covariance"]) -> None: ...
type___NumericCrossStatistics = NumericCrossStatistics

class CategoricalCrossStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def lift(self) -> type___LiftStatistics: ...

    def __init__(self,
        *,
        lift : typing___Optional[type___LiftStatistics] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"lift",b"lift"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"lift",b"lift"]) -> None: ...
type___CategoricalCrossStatistics = CategoricalCrossStatistics

class LiftStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def lift_series(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___LiftSeries]: ...

    @property
    def weighted_lift_series(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___LiftSeries]: ...

    def __init__(self,
        *,
        lift_series : typing___Optional[typing___Iterable[type___LiftSeries]] = None,
        weighted_lift_series : typing___Optional[typing___Iterable[type___LiftSeries]] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"lift_series",b"lift_series",u"weighted_lift_series",b"weighted_lift_series"]) -> None: ...
type___LiftStatistics = LiftStatistics

class LiftSeries(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Bucket(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        low_value: builtin___float = ...
        high_value: builtin___float = ...

        def __init__(self,
            *,
            low_value : typing___Optional[builtin___float] = None,
            high_value : typing___Optional[builtin___float] = None,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"high_value",b"high_value",u"low_value",b"low_value"]) -> None: ...
    type___Bucket = Bucket

    class LiftValue(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        x_int: builtin___int = ...
        x_string: typing___Text = ...
        lift: builtin___float = ...
        x_count: builtin___int = ...
        weighted_x_count: builtin___float = ...
        x_and_y_count: builtin___int = ...
        weighted_x_and_y_count: builtin___float = ...

        def __init__(self,
            *,
            x_int : typing___Optional[builtin___int] = None,
            x_string : typing___Optional[typing___Text] = None,
            lift : typing___Optional[builtin___float] = None,
            x_count : typing___Optional[builtin___int] = None,
            weighted_x_count : typing___Optional[builtin___float] = None,
            x_and_y_count : typing___Optional[builtin___int] = None,
            weighted_x_and_y_count : typing___Optional[builtin___float] = None,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions___Literal[u"weighted_x_and_y_count",b"weighted_x_and_y_count",u"weighted_x_count",b"weighted_x_count",u"x_and_y_count",b"x_and_y_count",u"x_and_y_count_value",b"x_and_y_count_value",u"x_count",b"x_count",u"x_count_value",b"x_count_value",u"x_int",b"x_int",u"x_string",b"x_string",u"x_value",b"x_value"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"lift",b"lift",u"weighted_x_and_y_count",b"weighted_x_and_y_count",u"weighted_x_count",b"weighted_x_count",u"x_and_y_count",b"x_and_y_count",u"x_and_y_count_value",b"x_and_y_count_value",u"x_count",b"x_count",u"x_count_value",b"x_count_value",u"x_int",b"x_int",u"x_string",b"x_string",u"x_value",b"x_value"]) -> None: ...
        @typing___overload
        def WhichOneof(self, oneof_group: typing_extensions___Literal[u"x_and_y_count_value",b"x_and_y_count_value"]) -> typing_extensions___Literal["x_and_y_count","weighted_x_and_y_count"]: ...
        @typing___overload
        def WhichOneof(self, oneof_group: typing_extensions___Literal[u"x_count_value",b"x_count_value"]) -> typing_extensions___Literal["x_count","weighted_x_count"]: ...
        @typing___overload
        def WhichOneof(self, oneof_group: typing_extensions___Literal[u"x_value",b"x_value"]) -> typing_extensions___Literal["x_int","x_string"]: ...
    type___LiftValue = LiftValue

    y_int: builtin___int = ...
    y_string: typing___Text = ...
    y_count: builtin___int = ...
    weighted_y_count: builtin___float = ...

    @property
    def y_bucket(self) -> type___LiftSeries.Bucket: ...

    @property
    def lift_values(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___LiftSeries.LiftValue]: ...

    def __init__(self,
        *,
        y_int : typing___Optional[builtin___int] = None,
        y_string : typing___Optional[typing___Text] = None,
        y_bucket : typing___Optional[type___LiftSeries.Bucket] = None,
        y_count : typing___Optional[builtin___int] = None,
        weighted_y_count : typing___Optional[builtin___float] = None,
        lift_values : typing___Optional[typing___Iterable[type___LiftSeries.LiftValue]] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"weighted_y_count",b"weighted_y_count",u"y_bucket",b"y_bucket",u"y_count",b"y_count",u"y_count_value",b"y_count_value",u"y_int",b"y_int",u"y_string",b"y_string",u"y_value",b"y_value"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"lift_values",b"lift_values",u"weighted_y_count",b"weighted_y_count",u"y_bucket",b"y_bucket",u"y_count",b"y_count",u"y_count_value",b"y_count_value",u"y_int",b"y_int",u"y_string",b"y_string",u"y_value",b"y_value"]) -> None: ...
    @typing___overload
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"y_count_value",b"y_count_value"]) -> typing_extensions___Literal["y_count","weighted_y_count"]: ...
    @typing___overload
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"y_value",b"y_value"]) -> typing_extensions___Literal["y_int","y_string","y_bucket"]: ...
type___LiftSeries = LiftSeries

class FeatureNameStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    TypeValue = typing___NewType('TypeValue', builtin___int)
    type___TypeValue = TypeValue
    Type: _Type
    class _Type(google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper[FeatureNameStatistics.TypeValue]):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        INT = typing___cast(FeatureNameStatistics.TypeValue, 0)
        FLOAT = typing___cast(FeatureNameStatistics.TypeValue, 1)
        STRING = typing___cast(FeatureNameStatistics.TypeValue, 2)
        BYTES = typing___cast(FeatureNameStatistics.TypeValue, 3)
        STRUCT = typing___cast(FeatureNameStatistics.TypeValue, 4)
    INT = typing___cast(FeatureNameStatistics.TypeValue, 0)
    FLOAT = typing___cast(FeatureNameStatistics.TypeValue, 1)
    STRING = typing___cast(FeatureNameStatistics.TypeValue, 2)
    BYTES = typing___cast(FeatureNameStatistics.TypeValue, 3)
    STRUCT = typing___cast(FeatureNameStatistics.TypeValue, 4)

    name: typing___Text = ...
    type: type___FeatureNameStatistics.TypeValue = ...

    @property
    def path(self) -> tensorflow_metadata___proto___v0___path_pb2___Path: ...

    @property
    def num_stats(self) -> type___NumericStatistics: ...

    @property
    def string_stats(self) -> type___StringStatistics: ...

    @property
    def bytes_stats(self) -> type___BytesStatistics: ...

    @property
    def struct_stats(self) -> type___StructStatistics: ...

    @property
    def custom_stats(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___CustomStatistic]: ...

    def __init__(self,
        *,
        name : typing___Optional[typing___Text] = None,
        path : typing___Optional[tensorflow_metadata___proto___v0___path_pb2___Path] = None,
        type : typing___Optional[type___FeatureNameStatistics.TypeValue] = None,
        num_stats : typing___Optional[type___NumericStatistics] = None,
        string_stats : typing___Optional[type___StringStatistics] = None,
        bytes_stats : typing___Optional[type___BytesStatistics] = None,
        struct_stats : typing___Optional[type___StructStatistics] = None,
        custom_stats : typing___Optional[typing___Iterable[type___CustomStatistic]] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"bytes_stats",b"bytes_stats",u"field_id",b"field_id",u"name",b"name",u"num_stats",b"num_stats",u"path",b"path",u"stats",b"stats",u"string_stats",b"string_stats",u"struct_stats",b"struct_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"bytes_stats",b"bytes_stats",u"custom_stats",b"custom_stats",u"field_id",b"field_id",u"name",b"name",u"num_stats",b"num_stats",u"path",b"path",u"stats",b"stats",u"string_stats",b"string_stats",u"struct_stats",b"struct_stats",u"type",b"type"]) -> None: ...
    @typing___overload
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"field_id",b"field_id"]) -> typing_extensions___Literal["name","path"]: ...
    @typing___overload
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"stats",b"stats"]) -> typing_extensions___Literal["num_stats","string_stats","bytes_stats","struct_stats"]: ...
type___FeatureNameStatistics = FeatureNameStatistics

class WeightedCommonStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    num_non_missing: builtin___float = ...
    num_missing: builtin___float = ...
    avg_num_values: builtin___float = ...
    tot_num_values: builtin___float = ...

    def __init__(self,
        *,
        num_non_missing : typing___Optional[builtin___float] = None,
        num_missing : typing___Optional[builtin___float] = None,
        avg_num_values : typing___Optional[builtin___float] = None,
        tot_num_values : typing___Optional[builtin___float] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"avg_num_values",b"avg_num_values",u"num_missing",b"num_missing",u"num_non_missing",b"num_non_missing",u"tot_num_values",b"tot_num_values"]) -> None: ...
type___WeightedCommonStatistics = WeightedCommonStatistics

class CustomStatistic(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    name: typing___Text = ...
    num: builtin___float = ...
    str: typing___Text = ...

    @property
    def histogram(self) -> type___Histogram: ...

    @property
    def rank_histogram(self) -> type___RankHistogram: ...

    def __init__(self,
        *,
        name : typing___Optional[typing___Text] = None,
        num : typing___Optional[builtin___float] = None,
        str : typing___Optional[typing___Text] = None,
        histogram : typing___Optional[type___Histogram] = None,
        rank_histogram : typing___Optional[type___RankHistogram] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"histogram",b"histogram",u"num",b"num",u"rank_histogram",b"rank_histogram",u"str",b"str",u"val",b"val"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"histogram",b"histogram",u"name",b"name",u"num",b"num",u"rank_histogram",b"rank_histogram",u"str",b"str",u"val",b"val"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"val",b"val"]) -> typing_extensions___Literal["num","str","histogram","rank_histogram"]: ...
type___CustomStatistic = CustomStatistic

class NumericStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    mean: builtin___float = ...
    std_dev: builtin___float = ...
    num_zeros: builtin___int = ...
    min: builtin___float = ...
    median: builtin___float = ...
    max: builtin___float = ...

    @property
    def common_stats(self) -> type___CommonStatistics: ...

    @property
    def histograms(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___Histogram]: ...

    @property
    def weighted_numeric_stats(self) -> type___WeightedNumericStatistics: ...

    def __init__(self,
        *,
        common_stats : typing___Optional[type___CommonStatistics] = None,
        mean : typing___Optional[builtin___float] = None,
        std_dev : typing___Optional[builtin___float] = None,
        num_zeros : typing___Optional[builtin___int] = None,
        min : typing___Optional[builtin___float] = None,
        median : typing___Optional[builtin___float] = None,
        max : typing___Optional[builtin___float] = None,
        histograms : typing___Optional[typing___Iterable[type___Histogram]] = None,
        weighted_numeric_stats : typing___Optional[type___WeightedNumericStatistics] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats",u"weighted_numeric_stats",b"weighted_numeric_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats",u"histograms",b"histograms",u"max",b"max",u"mean",b"mean",u"median",b"median",u"min",b"min",u"num_zeros",b"num_zeros",u"std_dev",b"std_dev",u"weighted_numeric_stats",b"weighted_numeric_stats"]) -> None: ...
type___NumericStatistics = NumericStatistics

class StringStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class FreqAndValue(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        value: typing___Text = ...
        frequency: builtin___float = ...

        def __init__(self,
            *,
            value : typing___Optional[typing___Text] = None,
            frequency : typing___Optional[builtin___float] = None,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"frequency",b"frequency",u"value",b"value"]) -> None: ...
    type___FreqAndValue = FreqAndValue

    unique: builtin___int = ...
    avg_length: builtin___float = ...
    vocabulary_file: typing___Text = ...

    @property
    def common_stats(self) -> type___CommonStatistics: ...

    @property
    def top_values(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___StringStatistics.FreqAndValue]: ...

    @property
    def rank_histogram(self) -> type___RankHistogram: ...

    @property
    def weighted_string_stats(self) -> type___WeightedStringStatistics: ...

    def __init__(self,
        *,
        common_stats : typing___Optional[type___CommonStatistics] = None,
        unique : typing___Optional[builtin___int] = None,
        top_values : typing___Optional[typing___Iterable[type___StringStatistics.FreqAndValue]] = None,
        avg_length : typing___Optional[builtin___float] = None,
        rank_histogram : typing___Optional[type___RankHistogram] = None,
        weighted_string_stats : typing___Optional[type___WeightedStringStatistics] = None,
        vocabulary_file : typing___Optional[typing___Text] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats",u"rank_histogram",b"rank_histogram",u"weighted_string_stats",b"weighted_string_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"avg_length",b"avg_length",u"common_stats",b"common_stats",u"rank_histogram",b"rank_histogram",u"top_values",b"top_values",u"unique",b"unique",u"vocabulary_file",b"vocabulary_file",u"weighted_string_stats",b"weighted_string_stats"]) -> None: ...
type___StringStatistics = StringStatistics

class WeightedNumericStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    mean: builtin___float = ...
    std_dev: builtin___float = ...
    median: builtin___float = ...

    @property
    def histograms(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___Histogram]: ...

    def __init__(self,
        *,
        mean : typing___Optional[builtin___float] = None,
        std_dev : typing___Optional[builtin___float] = None,
        median : typing___Optional[builtin___float] = None,
        histograms : typing___Optional[typing___Iterable[type___Histogram]] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"histograms",b"histograms",u"mean",b"mean",u"median",b"median",u"std_dev",b"std_dev"]) -> None: ...
type___WeightedNumericStatistics = WeightedNumericStatistics

class WeightedStringStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def top_values(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___StringStatistics.FreqAndValue]: ...

    @property
    def rank_histogram(self) -> type___RankHistogram: ...

    def __init__(self,
        *,
        top_values : typing___Optional[typing___Iterable[type___StringStatistics.FreqAndValue]] = None,
        rank_histogram : typing___Optional[type___RankHistogram] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"rank_histogram",b"rank_histogram"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"rank_histogram",b"rank_histogram",u"top_values",b"top_values"]) -> None: ...
type___WeightedStringStatistics = WeightedStringStatistics

class BytesStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    unique: builtin___int = ...
    avg_num_bytes: builtin___float = ...
    min_num_bytes: builtin___float = ...
    max_num_bytes: builtin___float = ...

    @property
    def common_stats(self) -> type___CommonStatistics: ...

    def __init__(self,
        *,
        common_stats : typing___Optional[type___CommonStatistics] = None,
        unique : typing___Optional[builtin___int] = None,
        avg_num_bytes : typing___Optional[builtin___float] = None,
        min_num_bytes : typing___Optional[builtin___float] = None,
        max_num_bytes : typing___Optional[builtin___float] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"avg_num_bytes",b"avg_num_bytes",u"common_stats",b"common_stats",u"max_num_bytes",b"max_num_bytes",u"min_num_bytes",b"min_num_bytes",u"unique",b"unique"]) -> None: ...
type___BytesStatistics = BytesStatistics

class StructStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def common_stats(self) -> type___CommonStatistics: ...

    def __init__(self,
        *,
        common_stats : typing___Optional[type___CommonStatistics] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"common_stats",b"common_stats"]) -> None: ...
type___StructStatistics = StructStatistics

class CommonStatistics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    num_non_missing: builtin___int = ...
    num_missing: builtin___int = ...
    min_num_values: builtin___int = ...
    max_num_values: builtin___int = ...
    avg_num_values: builtin___float = ...
    tot_num_values: builtin___int = ...

    @property
    def num_values_histogram(self) -> type___Histogram: ...

    @property
    def weighted_common_stats(self) -> type___WeightedCommonStatistics: ...

    @property
    def feature_list_length_histogram(self) -> type___Histogram: ...

    def __init__(self,
        *,
        num_non_missing : typing___Optional[builtin___int] = None,
        num_missing : typing___Optional[builtin___int] = None,
        min_num_values : typing___Optional[builtin___int] = None,
        max_num_values : typing___Optional[builtin___int] = None,
        avg_num_values : typing___Optional[builtin___float] = None,
        tot_num_values : typing___Optional[builtin___int] = None,
        num_values_histogram : typing___Optional[type___Histogram] = None,
        weighted_common_stats : typing___Optional[type___WeightedCommonStatistics] = None,
        feature_list_length_histogram : typing___Optional[type___Histogram] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"feature_list_length_histogram",b"feature_list_length_histogram",u"num_values_histogram",b"num_values_histogram",u"weighted_common_stats",b"weighted_common_stats"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"avg_num_values",b"avg_num_values",u"feature_list_length_histogram",b"feature_list_length_histogram",u"max_num_values",b"max_num_values",u"min_num_values",b"min_num_values",u"num_missing",b"num_missing",u"num_non_missing",b"num_non_missing",u"num_values_histogram",b"num_values_histogram",u"tot_num_values",b"tot_num_values",u"weighted_common_stats",b"weighted_common_stats"]) -> None: ...
type___CommonStatistics = CommonStatistics

class Histogram(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    HistogramTypeValue = typing___NewType('HistogramTypeValue', builtin___int)
    type___HistogramTypeValue = HistogramTypeValue
    HistogramType: _HistogramType
    class _HistogramType(google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper[Histogram.HistogramTypeValue]):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        STANDARD = typing___cast(Histogram.HistogramTypeValue, 0)
        QUANTILES = typing___cast(Histogram.HistogramTypeValue, 1)
    STANDARD = typing___cast(Histogram.HistogramTypeValue, 0)
    QUANTILES = typing___cast(Histogram.HistogramTypeValue, 1)

    class Bucket(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        low_value: builtin___float = ...
        high_value: builtin___float = ...
        sample_count: builtin___float = ...

        def __init__(self,
            *,
            low_value : typing___Optional[builtin___float] = None,
            high_value : typing___Optional[builtin___float] = None,
            sample_count : typing___Optional[builtin___float] = None,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"high_value",b"high_value",u"low_value",b"low_value",u"sample_count",b"sample_count"]) -> None: ...
    type___Bucket = Bucket

    num_nan: builtin___int = ...
    num_undefined: builtin___int = ...
    type: type___Histogram.HistogramTypeValue = ...
    name: typing___Text = ...

    @property
    def buckets(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___Histogram.Bucket]: ...

    def __init__(self,
        *,
        num_nan : typing___Optional[builtin___int] = None,
        num_undefined : typing___Optional[builtin___int] = None,
        buckets : typing___Optional[typing___Iterable[type___Histogram.Bucket]] = None,
        type : typing___Optional[type___Histogram.HistogramTypeValue] = None,
        name : typing___Optional[typing___Text] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"buckets",b"buckets",u"name",b"name",u"num_nan",b"num_nan",u"num_undefined",b"num_undefined",u"type",b"type"]) -> None: ...
type___Histogram = Histogram

class RankHistogram(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Bucket(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        low_rank: builtin___int = ...
        high_rank: builtin___int = ...
        label: typing___Text = ...
        sample_count: builtin___float = ...

        def __init__(self,
            *,
            low_rank : typing___Optional[builtin___int] = None,
            high_rank : typing___Optional[builtin___int] = None,
            label : typing___Optional[typing___Text] = None,
            sample_count : typing___Optional[builtin___float] = None,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"high_rank",b"high_rank",u"label",b"label",u"low_rank",b"low_rank",u"sample_count",b"sample_count"]) -> None: ...
    type___Bucket = Bucket

    name: typing___Text = ...

    @property
    def buckets(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___RankHistogram.Bucket]: ...

    def __init__(self,
        *,
        buckets : typing___Optional[typing___Iterable[type___RankHistogram.Bucket]] = None,
        name : typing___Optional[typing___Text] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"buckets",b"buckets",u"name",b"name"]) -> None: ...
type___RankHistogram = RankHistogram
