# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
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.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 typing import (
    NewType as typing___NewType,
    Optional as typing___Optional,
    cast as typing___cast,
)

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 TraceConfig(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    max_number_of_attributes: builtin___int = ...
    max_number_of_timed_events: builtin___int = ...
    max_number_of_attributes_per_timed_event: builtin___int = ...
    max_number_of_links: builtin___int = ...
    max_number_of_attributes_per_link: builtin___int = ...

    @property
    def constant_sampler(self) -> type___ConstantSampler: ...

    @property
    def trace_id_ratio_based(self) -> type___TraceIdRatioBased: ...

    @property
    def rate_limiting_sampler(self) -> type___RateLimitingSampler: ...

    def __init__(self,
        *,
        constant_sampler : typing___Optional[type___ConstantSampler] = None,
        trace_id_ratio_based : typing___Optional[type___TraceIdRatioBased] = None,
        rate_limiting_sampler : typing___Optional[type___RateLimitingSampler] = None,
        max_number_of_attributes : typing___Optional[builtin___int] = None,
        max_number_of_timed_events : typing___Optional[builtin___int] = None,
        max_number_of_attributes_per_timed_event : typing___Optional[builtin___int] = None,
        max_number_of_links : typing___Optional[builtin___int] = None,
        max_number_of_attributes_per_link : typing___Optional[builtin___int] = None,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"constant_sampler",b"constant_sampler",u"rate_limiting_sampler",b"rate_limiting_sampler",u"sampler",b"sampler",u"trace_id_ratio_based",b"trace_id_ratio_based"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"constant_sampler",b"constant_sampler",u"max_number_of_attributes",b"max_number_of_attributes",u"max_number_of_attributes_per_link",b"max_number_of_attributes_per_link",u"max_number_of_attributes_per_timed_event",b"max_number_of_attributes_per_timed_event",u"max_number_of_links",b"max_number_of_links",u"max_number_of_timed_events",b"max_number_of_timed_events",u"rate_limiting_sampler",b"rate_limiting_sampler",u"sampler",b"sampler",u"trace_id_ratio_based",b"trace_id_ratio_based"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"sampler",b"sampler"]) -> typing_extensions___Literal["constant_sampler","trace_id_ratio_based","rate_limiting_sampler"]: ...
type___TraceConfig = TraceConfig

class ConstantSampler(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    ConstantDecisionValue = typing___NewType('ConstantDecisionValue', builtin___int)
    type___ConstantDecisionValue = ConstantDecisionValue
    ConstantDecision: _ConstantDecision
    class _ConstantDecision(google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper[ConstantSampler.ConstantDecisionValue]):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        ALWAYS_OFF = typing___cast(ConstantSampler.ConstantDecisionValue, 0)
        ALWAYS_ON = typing___cast(ConstantSampler.ConstantDecisionValue, 1)
        ALWAYS_PARENT = typing___cast(ConstantSampler.ConstantDecisionValue, 2)
    ALWAYS_OFF = typing___cast(ConstantSampler.ConstantDecisionValue, 0)
    ALWAYS_ON = typing___cast(ConstantSampler.ConstantDecisionValue, 1)
    ALWAYS_PARENT = typing___cast(ConstantSampler.ConstantDecisionValue, 2)
    type___ConstantDecision = ConstantDecision

    decision: type___ConstantSampler.ConstantDecisionValue = ...

    def __init__(self,
        *,
        decision : typing___Optional[type___ConstantSampler.ConstantDecisionValue] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"decision",b"decision"]) -> None: ...
type___ConstantSampler = ConstantSampler

class TraceIdRatioBased(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    samplingRatio: builtin___float = ...

    def __init__(self,
        *,
        samplingRatio : typing___Optional[builtin___float] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"samplingRatio",b"samplingRatio"]) -> None: ...
type___TraceIdRatioBased = TraceIdRatioBased

class RateLimitingSampler(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    qps: builtin___int = ...

    def __init__(self,
        *,
        qps : typing___Optional[builtin___int] = None,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"qps",b"qps"]) -> None: ...
type___RateLimitingSampler = RateLimitingSampler
