"""
@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 sys
import tendermint.crypto.keys_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    VALIDATORS_FIELD_NUMBER: builtins.int
    PROPOSER_FIELD_NUMBER: builtins.int
    TOTAL_VOTING_POWER_FIELD_NUMBER: builtins.int
    @property
    def validators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Validator]: ...
    @property
    def proposer(self) -> global___Validator: ...
    total_voting_power: builtins.int
    def __init__(
        self,
        *,
        validators: collections.abc.Iterable[global___Validator] | None = ...,
        proposer: global___Validator | None = ...,
        total_voting_power: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["proposer", b"proposer"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["proposer", b"proposer", "total_voting_power", b"total_voting_power", "validators", b"validators"]) -> None: ...

global___ValidatorSet = ValidatorSet

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

    ADDRESS_FIELD_NUMBER: builtins.int
    PUB_KEY_FIELD_NUMBER: builtins.int
    VOTING_POWER_FIELD_NUMBER: builtins.int
    PROPOSER_PRIORITY_FIELD_NUMBER: builtins.int
    address: builtins.bytes
    @property
    def pub_key(self) -> tendermint.crypto.keys_pb2.PublicKey: ...
    voting_power: builtins.int
    proposer_priority: builtins.int
    def __init__(
        self,
        *,
        address: builtins.bytes = ...,
        pub_key: tendermint.crypto.keys_pb2.PublicKey | None = ...,
        voting_power: builtins.int = ...,
        proposer_priority: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pub_key", b"pub_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "proposer_priority", b"proposer_priority", "pub_key", b"pub_key", "voting_power", b"voting_power"]) -> None: ...

global___Validator = Validator

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

    PUB_KEY_FIELD_NUMBER: builtins.int
    VOTING_POWER_FIELD_NUMBER: builtins.int
    @property
    def pub_key(self) -> tendermint.crypto.keys_pb2.PublicKey: ...
    voting_power: builtins.int
    def __init__(
        self,
        *,
        pub_key: tendermint.crypto.keys_pb2.PublicKey | None = ...,
        voting_power: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pub_key", b"pub_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pub_key", b"pub_key", "voting_power", b"voting_power"]) -> None: ...

global___SimpleValidator = SimpleValidator
