"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.base.v1beta1.coin_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import tendermint.types.types_pb2
import typing
import typing_extensions

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

class BondStatus(metaclass=_BondStatus):
    V = typing.NewType('V', builtins.int)

global___BondStatus = BondStatus

BOND_STATUS_UNSPECIFIED = BondStatus.V(0)
BOND_STATUS_UNBONDED = BondStatus.V(1)
BOND_STATUS_UNBONDING = BondStatus.V(2)
BOND_STATUS_BONDED = BondStatus.V(3)

class _BondStatus(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[BondStatus.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    BOND_STATUS_UNSPECIFIED = BondStatus.V(0)
    BOND_STATUS_UNBONDED = BondStatus.V(1)
    BOND_STATUS_UNBONDING = BondStatus.V(2)
    BOND_STATUS_BONDED = BondStatus.V(3)

class HistoricalInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    HEADER_FIELD_NUMBER: builtins.int
    VALSET_FIELD_NUMBER: builtins.int

    @property
    def header(self) -> tendermint.types.types_pb2.Header: ...

    @property
    def valset(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Validator]: ...

    def __init__(self,
        *,
        header : typing.Optional[tendermint.types.types_pb2.Header] = ...,
        valset : typing.Optional[typing.Iterable[global___Validator]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"header",b"header"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"header",b"header",u"valset",b"valset"]) -> None: ...
global___HistoricalInfo = HistoricalInfo

class CommissionRates(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RATE_FIELD_NUMBER: builtins.int
    MAX_RATE_FIELD_NUMBER: builtins.int
    MAX_CHANGE_RATE_FIELD_NUMBER: builtins.int
    rate: typing.Text = ...
    max_rate: typing.Text = ...
    max_change_rate: typing.Text = ...

    def __init__(self,
        *,
        rate : typing.Text = ...,
        max_rate : typing.Text = ...,
        max_change_rate : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"max_change_rate",b"max_change_rate",u"max_rate",b"max_rate",u"rate",b"rate"]) -> None: ...
global___CommissionRates = CommissionRates

class Commission(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    COMMISSION_RATES_FIELD_NUMBER: builtins.int
    UPDATE_TIME_FIELD_NUMBER: builtins.int

    @property
    def commission_rates(self) -> global___CommissionRates: ...

    @property
    def update_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    def __init__(self,
        *,
        commission_rates : typing.Optional[global___CommissionRates] = ...,
        update_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"commission_rates",b"commission_rates",u"update_time",b"update_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"commission_rates",b"commission_rates",u"update_time",b"update_time"]) -> None: ...
global___Commission = Commission

class Description(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MONIKER_FIELD_NUMBER: builtins.int
    IDENTITY_FIELD_NUMBER: builtins.int
    WEBSITE_FIELD_NUMBER: builtins.int
    SECURITY_CONTACT_FIELD_NUMBER: builtins.int
    DETAILS_FIELD_NUMBER: builtins.int
    moniker: typing.Text = ...
    identity: typing.Text = ...
    website: typing.Text = ...
    security_contact: typing.Text = ...
    details: typing.Text = ...

    def __init__(self,
        *,
        moniker : typing.Text = ...,
        identity : typing.Text = ...,
        website : typing.Text = ...,
        security_contact : typing.Text = ...,
        details : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"details",b"details",u"identity",b"identity",u"moniker",b"moniker",u"security_contact",b"security_contact",u"website",b"website"]) -> None: ...
global___Description = Description

class Validator(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    OPERATOR_ADDRESS_FIELD_NUMBER: builtins.int
    CONSENSUS_PUBKEY_FIELD_NUMBER: builtins.int
    JAILED_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TOKENS_FIELD_NUMBER: builtins.int
    DELEGATOR_SHARES_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    UNBONDING_HEIGHT_FIELD_NUMBER: builtins.int
    UNBONDING_TIME_FIELD_NUMBER: builtins.int
    COMMISSION_FIELD_NUMBER: builtins.int
    MIN_SELF_DELEGATION_FIELD_NUMBER: builtins.int
    operator_address: typing.Text = ...
    jailed: builtins.bool = ...
    status: global___BondStatus.V = ...
    tokens: typing.Text = ...
    delegator_shares: typing.Text = ...
    unbonding_height: builtins.int = ...
    min_self_delegation: typing.Text = ...

    @property
    def consensus_pubkey(self) -> google.protobuf.any_pb2.Any: ...

    @property
    def description(self) -> global___Description: ...

    @property
    def unbonding_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def commission(self) -> global___Commission: ...

    def __init__(self,
        *,
        operator_address : typing.Text = ...,
        consensus_pubkey : typing.Optional[google.protobuf.any_pb2.Any] = ...,
        jailed : builtins.bool = ...,
        status : global___BondStatus.V = ...,
        tokens : typing.Text = ...,
        delegator_shares : typing.Text = ...,
        description : typing.Optional[global___Description] = ...,
        unbonding_height : builtins.int = ...,
        unbonding_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        commission : typing.Optional[global___Commission] = ...,
        min_self_delegation : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"commission",b"commission",u"consensus_pubkey",b"consensus_pubkey",u"description",b"description",u"unbonding_time",b"unbonding_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"commission",b"commission",u"consensus_pubkey",b"consensus_pubkey",u"delegator_shares",b"delegator_shares",u"description",b"description",u"jailed",b"jailed",u"min_self_delegation",b"min_self_delegation",u"operator_address",b"operator_address",u"status",b"status",u"tokens",b"tokens",u"unbonding_height",b"unbonding_height",u"unbonding_time",b"unbonding_time"]) -> None: ...
global___Validator = Validator

class ValAddresses(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ADDRESSES_FIELD_NUMBER: builtins.int

    @property
    def addresses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...

    def __init__(self,
        *,
        addresses : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"addresses",b"addresses"]) -> None: ...
global___ValAddresses = ValAddresses

class DVPair(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    delegator_address: typing.Text = ...
    validator_address: typing.Text = ...

    def __init__(self,
        *,
        delegator_address : typing.Text = ...,
        validator_address : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"delegator_address",b"delegator_address",u"validator_address",b"validator_address"]) -> None: ...
global___DVPair = DVPair

class DVPairs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PAIRS_FIELD_NUMBER: builtins.int

    @property
    def pairs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DVPair]: ...

    def __init__(self,
        *,
        pairs : typing.Optional[typing.Iterable[global___DVPair]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"pairs",b"pairs"]) -> None: ...
global___DVPairs = DVPairs

class DVVTriplet(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_SRC_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_DST_ADDRESS_FIELD_NUMBER: builtins.int
    delegator_address: typing.Text = ...
    validator_src_address: typing.Text = ...
    validator_dst_address: typing.Text = ...

    def __init__(self,
        *,
        delegator_address : typing.Text = ...,
        validator_src_address : typing.Text = ...,
        validator_dst_address : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"delegator_address",b"delegator_address",u"validator_dst_address",b"validator_dst_address",u"validator_src_address",b"validator_src_address"]) -> None: ...
global___DVVTriplet = DVVTriplet

class DVVTriplets(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TRIPLETS_FIELD_NUMBER: builtins.int

    @property
    def triplets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DVVTriplet]: ...

    def __init__(self,
        *,
        triplets : typing.Optional[typing.Iterable[global___DVVTriplet]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"triplets",b"triplets"]) -> None: ...
global___DVVTriplets = DVVTriplets

class Delegation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    SHARES_FIELD_NUMBER: builtins.int
    delegator_address: typing.Text = ...
    validator_address: typing.Text = ...
    shares: typing.Text = ...

    def __init__(self,
        *,
        delegator_address : typing.Text = ...,
        validator_address : typing.Text = ...,
        shares : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"delegator_address",b"delegator_address",u"shares",b"shares",u"validator_address",b"validator_address"]) -> None: ...
global___Delegation = Delegation

class UnbondingDelegation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    ENTRIES_FIELD_NUMBER: builtins.int
    delegator_address: typing.Text = ...
    validator_address: typing.Text = ...

    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UnbondingDelegationEntry]: ...

    def __init__(self,
        *,
        delegator_address : typing.Text = ...,
        validator_address : typing.Text = ...,
        entries : typing.Optional[typing.Iterable[global___UnbondingDelegationEntry]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"delegator_address",b"delegator_address",u"entries",b"entries",u"validator_address",b"validator_address"]) -> None: ...
global___UnbondingDelegation = UnbondingDelegation

class UnbondingDelegationEntry(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CREATION_HEIGHT_FIELD_NUMBER: builtins.int
    COMPLETION_TIME_FIELD_NUMBER: builtins.int
    INITIAL_BALANCE_FIELD_NUMBER: builtins.int
    BALANCE_FIELD_NUMBER: builtins.int
    creation_height: builtins.int = ...
    initial_balance: typing.Text = ...
    balance: typing.Text = ...

    @property
    def completion_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    def __init__(self,
        *,
        creation_height : builtins.int = ...,
        completion_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        initial_balance : typing.Text = ...,
        balance : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"completion_time",b"completion_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"balance",b"balance",u"completion_time",b"completion_time",u"creation_height",b"creation_height",u"initial_balance",b"initial_balance"]) -> None: ...
global___UnbondingDelegationEntry = UnbondingDelegationEntry

class RedelegationEntry(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CREATION_HEIGHT_FIELD_NUMBER: builtins.int
    COMPLETION_TIME_FIELD_NUMBER: builtins.int
    INITIAL_BALANCE_FIELD_NUMBER: builtins.int
    SHARES_DST_FIELD_NUMBER: builtins.int
    creation_height: builtins.int = ...
    initial_balance: typing.Text = ...
    shares_dst: typing.Text = ...

    @property
    def completion_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    def __init__(self,
        *,
        creation_height : builtins.int = ...,
        completion_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        initial_balance : typing.Text = ...,
        shares_dst : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"completion_time",b"completion_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"completion_time",b"completion_time",u"creation_height",b"creation_height",u"initial_balance",b"initial_balance",u"shares_dst",b"shares_dst"]) -> None: ...
global___RedelegationEntry = RedelegationEntry

class Redelegation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_SRC_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_DST_ADDRESS_FIELD_NUMBER: builtins.int
    ENTRIES_FIELD_NUMBER: builtins.int
    delegator_address: typing.Text = ...
    validator_src_address: typing.Text = ...
    validator_dst_address: typing.Text = ...

    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RedelegationEntry]: ...

    def __init__(self,
        *,
        delegator_address : typing.Text = ...,
        validator_src_address : typing.Text = ...,
        validator_dst_address : typing.Text = ...,
        entries : typing.Optional[typing.Iterable[global___RedelegationEntry]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"delegator_address",b"delegator_address",u"entries",b"entries",u"validator_dst_address",b"validator_dst_address",u"validator_src_address",b"validator_src_address"]) -> None: ...
global___Redelegation = Redelegation

class Params(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    UNBONDING_TIME_FIELD_NUMBER: builtins.int
    MAX_VALIDATORS_FIELD_NUMBER: builtins.int
    MAX_ENTRIES_FIELD_NUMBER: builtins.int
    HISTORICAL_ENTRIES_FIELD_NUMBER: builtins.int
    BOND_DENOM_FIELD_NUMBER: builtins.int
    max_validators: builtins.int = ...
    max_entries: builtins.int = ...
    historical_entries: builtins.int = ...
    bond_denom: typing.Text = ...

    @property
    def unbonding_time(self) -> google.protobuf.duration_pb2.Duration: ...

    def __init__(self,
        *,
        unbonding_time : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        max_validators : builtins.int = ...,
        max_entries : builtins.int = ...,
        historical_entries : builtins.int = ...,
        bond_denom : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"unbonding_time",b"unbonding_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"bond_denom",b"bond_denom",u"historical_entries",b"historical_entries",u"max_entries",b"max_entries",u"max_validators",b"max_validators",u"unbonding_time",b"unbonding_time"]) -> None: ...
global___Params = Params

class DelegationResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DELEGATION_FIELD_NUMBER: builtins.int
    BALANCE_FIELD_NUMBER: builtins.int

    @property
    def delegation(self) -> global___Delegation: ...

    @property
    def balance(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...

    def __init__(self,
        *,
        delegation : typing.Optional[global___Delegation] = ...,
        balance : typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"balance",b"balance",u"delegation",b"delegation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"balance",b"balance",u"delegation",b"delegation"]) -> None: ...
global___DelegationResponse = DelegationResponse

class RedelegationEntryResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    REDELEGATION_ENTRY_FIELD_NUMBER: builtins.int
    BALANCE_FIELD_NUMBER: builtins.int
    balance: typing.Text = ...

    @property
    def redelegation_entry(self) -> global___RedelegationEntry: ...

    def __init__(self,
        *,
        redelegation_entry : typing.Optional[global___RedelegationEntry] = ...,
        balance : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"redelegation_entry",b"redelegation_entry"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"balance",b"balance",u"redelegation_entry",b"redelegation_entry"]) -> None: ...
global___RedelegationEntryResponse = RedelegationEntryResponse

class RedelegationResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    REDELEGATION_FIELD_NUMBER: builtins.int
    ENTRIES_FIELD_NUMBER: builtins.int

    @property
    def redelegation(self) -> global___Redelegation: ...

    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RedelegationEntryResponse]: ...

    def __init__(self,
        *,
        redelegation : typing.Optional[global___Redelegation] = ...,
        entries : typing.Optional[typing.Iterable[global___RedelegationEntryResponse]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"redelegation",b"redelegation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"entries",b"entries",u"redelegation",b"redelegation"]) -> None: ...
global___RedelegationResponse = RedelegationResponse

class Pool(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    NOT_BONDED_TOKENS_FIELD_NUMBER: builtins.int
    BONDED_TOKENS_FIELD_NUMBER: builtins.int
    not_bonded_tokens: typing.Text = ...
    bonded_tokens: typing.Text = ...

    def __init__(self,
        *,
        not_bonded_tokens : typing.Text = ...,
        bonded_tokens : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"bonded_tokens",b"bonded_tokens",u"not_bonded_tokens",b"not_bonded_tokens"]) -> None: ...
global___Pool = Pool
