"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Statistics(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

    class Null(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Unit(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Boolean(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Id(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Integer(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Enum(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Float(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Text(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        EXAMPLE_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution: ...
        example: typing.Text = ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            example : typing.Text = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","example",b"example","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Bytes(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Struct(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Field(google.protobuf.message.Message):
            """A single field"""
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            NAME_FIELD_NUMBER: builtins.int
            STATISTICS_FIELD_NUMBER: builtins.int
            name: typing.Text = ...
            @property
            def statistics(self) -> global___Statistics: ...
            def __init__(self,
                *,
                name : typing.Text = ...,
                statistics : typing.Optional[global___Statistics] = ...,
                ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["statistics",b"statistics"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["name",b"name","statistics",b"statistics"]) -> None: ...

        FIELDS_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        NAME_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Statistics.Struct.Field]:
            """A static struct with named fields"""
            pass
        size: builtins.int = ...
        name: typing.Text = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            fields : typing.Optional[typing.Iterable[global___Statistics.Struct.Field]] = ...,
            size : builtins.int = ...,
            name : typing.Text = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["fields",b"fields","multiplicity",b"multiplicity","name",b"name","size",b"size"]) -> None: ...

    class Union(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Field(google.protobuf.message.Message):
            """A single field"""
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            NAME_FIELD_NUMBER: builtins.int
            STATISTICS_FIELD_NUMBER: builtins.int
            name: typing.Text = ...
            @property
            def statistics(self) -> global___Statistics: ...
            def __init__(self,
                *,
                name : typing.Text = ...,
                statistics : typing.Optional[global___Statistics] = ...,
                ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["statistics",b"statistics"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["name",b"name","statistics",b"statistics"]) -> None: ...

        FIELDS_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        NAME_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Statistics.Union.Field]: ...
        size: builtins.int = ...
        name: typing.Text = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            fields : typing.Optional[typing.Iterable[global___Statistics.Union.Field]] = ...,
            size : builtins.int = ...,
            name : typing.Text = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["fields",b"fields","multiplicity",b"multiplicity","name",b"name","size",b"size"]) -> None: ...

    class Optional(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STATISTICS_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        NAME_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def statistics(self) -> global___Statistics: ...
        size: builtins.int = ...
        name: typing.Text = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            statistics : typing.Optional[global___Statistics] = ...,
            size : builtins.int = ...,
            name : typing.Text = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["statistics",b"statistics"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","name",b"name","size",b"size","statistics",b"statistics"]) -> None: ...

    class List(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STATISTICS_FIELD_NUMBER: builtins.int
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def statistics(self) -> global___Statistics: ...
        @property
        def distribution(self) -> global___Distribution: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            statistics : typing.Optional[global___Statistics] = ...,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution","statistics",b"statistics"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size","statistics",b"statistics"]) -> None: ...

    class Array(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STATISTICS_FIELD_NUMBER: builtins.int
        DISTRIBUTIONS_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def statistics(self) -> global___Statistics:
            """A numpy-like n-dimensional array"""
            pass
        @property
        def distributions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Distribution]: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            statistics : typing.Optional[global___Statistics] = ...,
            distributions : typing.Optional[typing.Iterable[global___Distribution]] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["statistics",b"statistics"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distributions",b"distributions","multiplicity",b"multiplicity","size",b"size","statistics",b"statistics"]) -> None: ...

    class Datetime(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution:
            """for a datetime type"""
            pass
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Date(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution:
            """for a date type"""
            pass
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Time(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution:
            """for a time type"""
            pass
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Duration(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        DISTRIBUTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def distribution(self) -> global___Distribution:
            """for a duration type"""
            pass
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            distribution : typing.Optional[global___Distribution] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["distribution",b"distribution"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["distribution",b"distribution","multiplicity",b"multiplicity","size",b"size"]) -> None: ...

    class Constrained(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STATISTICS_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        MULTIPLICITY_FIELD_NUMBER: builtins.int
        @property
        def statistics(self) -> global___Statistics: ...
        size: builtins.int = ...
        multiplicity: builtins.float = ...
        def __init__(self,
            *,
            statistics : typing.Optional[global___Statistics] = ...,
            size : builtins.int = ...,
            multiplicity : builtins.float = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["statistics",b"statistics"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["multiplicity",b"multiplicity","size",b"size","statistics",b"statistics"]) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    NULL_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    BOOLEAN_FIELD_NUMBER: builtins.int
    INTEGER_FIELD_NUMBER: builtins.int
    ENUM_FIELD_NUMBER: builtins.int
    FLOAT_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    BYTES_FIELD_NUMBER: builtins.int
    STRUCT_FIELD_NUMBER: builtins.int
    UNION_FIELD_NUMBER: builtins.int
    OPTIONAL_FIELD_NUMBER: builtins.int
    LIST_FIELD_NUMBER: builtins.int
    ARRAY_FIELD_NUMBER: builtins.int
    DATETIME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    CONSTRAINED_FIELD_NUMBER: builtins.int
    DATE_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    name: typing.Text = ...
    @property
    def null(self) -> global___Statistics.Null: ...
    @property
    def unit(self) -> global___Statistics.Unit: ...
    @property
    def boolean(self) -> global___Statistics.Boolean: ...
    @property
    def integer(self) -> global___Statistics.Integer: ...
    @property
    def enum(self) -> global___Statistics.Enum: ...
    @property
    def float(self) -> global___Statistics.Float: ...
    @property
    def text(self) -> global___Statistics.Text: ...
    @property
    def bytes(self) -> global___Statistics.Bytes: ...
    @property
    def struct(self) -> global___Statistics.Struct: ...
    @property
    def union(self) -> global___Statistics.Union: ...
    @property
    def optional(self) -> global___Statistics.Optional: ...
    @property
    def list(self) -> global___Statistics.List: ...
    @property
    def array(self) -> global___Statistics.Array: ...
    @property
    def datetime(self) -> global___Statistics.Datetime: ...
    @property
    def id(self) -> global___Statistics.Id: ...
    @property
    def constrained(self) -> global___Statistics.Constrained: ...
    @property
    def date(self) -> global___Statistics.Date: ...
    @property
    def time(self) -> global___Statistics.Time: ...
    @property
    def duration(self) -> global___Statistics.Duration: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Other properties"""
        pass
    def __init__(self,
        *,
        name : typing.Text = ...,
        null : typing.Optional[global___Statistics.Null] = ...,
        unit : typing.Optional[global___Statistics.Unit] = ...,
        boolean : typing.Optional[global___Statistics.Boolean] = ...,
        integer : typing.Optional[global___Statistics.Integer] = ...,
        enum : typing.Optional[global___Statistics.Enum] = ...,
        float : typing.Optional[global___Statistics.Float] = ...,
        text : typing.Optional[global___Statistics.Text] = ...,
        bytes : typing.Optional[global___Statistics.Bytes] = ...,
        struct : typing.Optional[global___Statistics.Struct] = ...,
        union : typing.Optional[global___Statistics.Union] = ...,
        optional : typing.Optional[global___Statistics.Optional] = ...,
        list : typing.Optional[global___Statistics.List] = ...,
        array : typing.Optional[global___Statistics.Array] = ...,
        datetime : typing.Optional[global___Statistics.Datetime] = ...,
        id : typing.Optional[global___Statistics.Id] = ...,
        constrained : typing.Optional[global___Statistics.Constrained] = ...,
        date : typing.Optional[global___Statistics.Date] = ...,
        time : typing.Optional[global___Statistics.Time] = ...,
        duration : typing.Optional[global___Statistics.Duration] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["array",b"array","boolean",b"boolean","bytes",b"bytes","constrained",b"constrained","date",b"date","datetime",b"datetime","duration",b"duration","enum",b"enum","float",b"float","id",b"id","integer",b"integer","list",b"list","null",b"null","optional",b"optional","statistics",b"statistics","struct",b"struct","text",b"text","time",b"time","union",b"union","unit",b"unit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["array",b"array","boolean",b"boolean","bytes",b"bytes","constrained",b"constrained","date",b"date","datetime",b"datetime","duration",b"duration","enum",b"enum","float",b"float","id",b"id","integer",b"integer","list",b"list","name",b"name","null",b"null","optional",b"optional","properties",b"properties","statistics",b"statistics","struct",b"struct","text",b"text","time",b"time","union",b"union","unit",b"unit"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["statistics",b"statistics"]) -> typing.Optional[typing_extensions.Literal["null","unit","boolean","integer","enum","float","text","bytes","struct","union","optional","list","array","datetime","id","constrained","date","time","duration"]]: ...
global___Statistics = Statistics

class Distribution(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

    class Double(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Point(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            VALUE_FIELD_NUMBER: builtins.int
            PROBABILITY_FIELD_NUMBER: builtins.int
            value: builtins.float = ...
            probability: builtins.float = ...
            def __init__(self,
                *,
                value : builtins.float = ...,
                probability : builtins.float = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["probability",b"probability","value",b"value"]) -> None: ...

        POINTS_FIELD_NUMBER: builtins.int
        MIN_FIELD_NUMBER: builtins.int
        MAX_FIELD_NUMBER: builtins.int
        @property
        def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Distribution.Double.Point]: ...
        min: builtins.float = ...
        max: builtins.float = ...
        def __init__(self,
            *,
            points : typing.Optional[typing.Iterable[global___Distribution.Double.Point]] = ...,
            min : builtins.float = ...,
            max : builtins.float = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["max",b"max","min",b"min","points",b"points"]) -> None: ...

    class Integer(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Point(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            VALUE_FIELD_NUMBER: builtins.int
            PROBABILITY_FIELD_NUMBER: builtins.int
            value: builtins.int = ...
            probability: builtins.float = ...
            def __init__(self,
                *,
                value : builtins.int = ...,
                probability : builtins.float = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["probability",b"probability","value",b"value"]) -> None: ...

        POINTS_FIELD_NUMBER: builtins.int
        MIN_FIELD_NUMBER: builtins.int
        MAX_FIELD_NUMBER: builtins.int
        @property
        def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Distribution.Integer.Point]: ...
        min: builtins.int = ...
        max: builtins.int = ...
        def __init__(self,
            *,
            points : typing.Optional[typing.Iterable[global___Distribution.Integer.Point]] = ...,
            min : builtins.int = ...,
            max : builtins.int = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["max",b"max","min",b"min","points",b"points"]) -> None: ...

    class Boolean(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Point(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            NAME_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            PROBABILITY_FIELD_NUMBER: builtins.int
            name: builtins.bool = ...
            value: builtins.int = ...
            probability: builtins.float = ...
            def __init__(self,
                *,
                name : builtins.bool = ...,
                value : builtins.int = ...,
                probability : builtins.float = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["name",b"name","probability",b"probability","value",b"value"]) -> None: ...

        POINTS_FIELD_NUMBER: builtins.int
        @property
        def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Distribution.Boolean.Point]: ...
        def __init__(self,
            *,
            points : typing.Optional[typing.Iterable[global___Distribution.Boolean.Point]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["points",b"points"]) -> None: ...

    class Enum(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Point(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            NAME_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            PROBABILITY_FIELD_NUMBER: builtins.int
            name: typing.Text = ...
            value: builtins.float = ...
            probability: builtins.float = ...
            def __init__(self,
                *,
                name : typing.Text = ...,
                value : builtins.float = ...,
                probability : builtins.float = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal["name",b"name","probability",b"probability","value",b"value"]) -> None: ...

        POINTS_FIELD_NUMBER: builtins.int
        @property
        def points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Distribution.Enum.Point]: ...
        def __init__(self,
            *,
            points : typing.Optional[typing.Iterable[global___Distribution.Enum.Point]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["points",b"points"]) -> None: ...

    DOUBLE_FIELD_NUMBER: builtins.int
    INTEGER_FIELD_NUMBER: builtins.int
    BOOLEAN_FIELD_NUMBER: builtins.int
    ENUM_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    @property
    def double(self) -> global___Distribution.Double: ...
    @property
    def integer(self) -> global___Distribution.Integer: ...
    @property
    def boolean(self) -> global___Distribution.Boolean: ...
    @property
    def enum(self) -> global___Distribution.Enum: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Needed for compatibility with typing"""
        pass
    def __init__(self,
        *,
        double : typing.Optional[global___Distribution.Double] = ...,
        integer : typing.Optional[global___Distribution.Integer] = ...,
        boolean : typing.Optional[global___Distribution.Boolean] = ...,
        enum : typing.Optional[global___Distribution.Enum] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["boolean",b"boolean","distribution",b"distribution","double",b"double","enum",b"enum","integer",b"integer"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["boolean",b"boolean","distribution",b"distribution","double",b"double","enum",b"enum","integer",b"integer","properties",b"properties"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["distribution",b"distribution"]) -> typing.Optional[typing_extensions.Literal["double","integer","boolean","enum"]]: ...
global___Distribution = Distribution
