"""
@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.message
import nibiru.oracle.v1.oracle_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class GenesisState(google.protobuf.message.Message):
    """GenesisState defines the oracle module's genesis state."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    FEEDER_DELEGATIONS_FIELD_NUMBER: builtins.int
    EXCHANGE_RATES_FIELD_NUMBER: builtins.int
    MISS_COUNTERS_FIELD_NUMBER: builtins.int
    AGGREGATE_EXCHANGE_RATE_PREVOTES_FIELD_NUMBER: builtins.int
    AGGREGATE_EXCHANGE_RATE_VOTES_FIELD_NUMBER: builtins.int
    PAIRS_FIELD_NUMBER: builtins.int
    REWARDS_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> nibiru.oracle.v1.oracle_pb2.Params: ...
    @property
    def feeder_delegations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeederDelegation]: ...
    @property
    def exchange_rates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.oracle.v1.oracle_pb2.ExchangeRateTuple]: ...
    @property
    def miss_counters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MissCounter]: ...
    @property
    def aggregate_exchange_rate_prevotes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.oracle.v1.oracle_pb2.AggregateExchangeRatePrevote]: ...
    @property
    def aggregate_exchange_rate_votes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.oracle.v1.oracle_pb2.AggregateExchangeRateVote]: ...
    @property
    def pairs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def rewards(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.oracle.v1.oracle_pb2.Rewards]: ...
    def __init__(
        self,
        *,
        params: nibiru.oracle.v1.oracle_pb2.Params | None = ...,
        feeder_delegations: collections.abc.Iterable[global___FeederDelegation] | None = ...,
        exchange_rates: collections.abc.Iterable[nibiru.oracle.v1.oracle_pb2.ExchangeRateTuple] | None = ...,
        miss_counters: collections.abc.Iterable[global___MissCounter] | None = ...,
        aggregate_exchange_rate_prevotes: collections.abc.Iterable[nibiru.oracle.v1.oracle_pb2.AggregateExchangeRatePrevote] | None = ...,
        aggregate_exchange_rate_votes: collections.abc.Iterable[nibiru.oracle.v1.oracle_pb2.AggregateExchangeRateVote] | None = ...,
        pairs: collections.abc.Iterable[builtins.str] | None = ...,
        rewards: collections.abc.Iterable[nibiru.oracle.v1.oracle_pb2.Rewards] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["params", b"params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aggregate_exchange_rate_prevotes", b"aggregate_exchange_rate_prevotes", "aggregate_exchange_rate_votes", b"aggregate_exchange_rate_votes", "exchange_rates", b"exchange_rates", "feeder_delegations", b"feeder_delegations", "miss_counters", b"miss_counters", "pairs", b"pairs", "params", b"params", "rewards", b"rewards"]) -> None: ...

global___GenesisState = GenesisState

@typing_extensions.final
class FeederDelegation(google.protobuf.message.Message):
    """FeederDelegation is the address for where oracle feeder authority are
    delegated to. By default this struct is only used at genesis to feed in
    default feeder addresses.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___FeederDelegation = FeederDelegation

@typing_extensions.final
class MissCounter(google.protobuf.message.Message):
    """MissCounter defines an miss counter and validator address pair used in
    oracle module's genesis state
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___MissCounter = MissCounter
