"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
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 sys
import tendermint.types.types_pb2
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _BondStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _BondStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_BondStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    BOND_STATUS_UNSPECIFIED: _BondStatus.ValueType  # 0
    """UNSPECIFIED defines an invalid validator status."""
    BOND_STATUS_UNBONDED: _BondStatus.ValueType  # 1
    """UNBONDED defines a validator that is not bonded."""
    BOND_STATUS_UNBONDING: _BondStatus.ValueType  # 2
    """UNBONDING defines a validator that is unbonding."""
    BOND_STATUS_BONDED: _BondStatus.ValueType  # 3
    """BONDED defines a validator that is bonded."""

class BondStatus(_BondStatus, metaclass=_BondStatusEnumTypeWrapper):
    """BondStatus is the status of a validator."""

BOND_STATUS_UNSPECIFIED: BondStatus.ValueType  # 0
"""UNSPECIFIED defines an invalid validator status."""
BOND_STATUS_UNBONDED: BondStatus.ValueType  # 1
"""UNBONDED defines a validator that is not bonded."""
BOND_STATUS_UNBONDING: BondStatus.ValueType  # 2
"""UNBONDING defines a validator that is unbonding."""
BOND_STATUS_BONDED: BondStatus.ValueType  # 3
"""BONDED defines a validator that is bonded."""
global___BondStatus = BondStatus

@typing_extensions.final
class HistoricalInfo(google.protobuf.message.Message):
    """HistoricalInfo contains header and validator information for a given block.
    It is stored as part of staking module's state, which persists the `n` most
    recent HistoricalInfo
    (`n` is set by the staking module's `historical_entries` parameter).
    """

    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: tendermint.types.types_pb2.Header | None = ...,
        valset: collections.abc.Iterable[global___Validator] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["header", b"header"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["header", b"header", "valset", b"valset"]) -> None: ...

global___HistoricalInfo = HistoricalInfo

@typing_extensions.final
class CommissionRates(google.protobuf.message.Message):
    """CommissionRates defines the initial commission rates to be used for creating
    a validator.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RATE_FIELD_NUMBER: builtins.int
    MAX_RATE_FIELD_NUMBER: builtins.int
    MAX_CHANGE_RATE_FIELD_NUMBER: builtins.int
    rate: builtins.str
    """rate is the commission rate charged to delegators, as a fraction."""
    max_rate: builtins.str
    """max_rate defines the maximum commission rate which validator can ever charge, as a fraction."""
    max_change_rate: builtins.str
    """max_change_rate defines the maximum daily increase of the validator commission, as a fraction."""
    def __init__(
        self,
        *,
        rate: builtins.str = ...,
        max_rate: builtins.str = ...,
        max_change_rate: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_change_rate", b"max_change_rate", "max_rate", b"max_rate", "rate", b"rate"]) -> None: ...

global___CommissionRates = CommissionRates

@typing_extensions.final
class Commission(google.protobuf.message.Message):
    """Commission defines commission parameters for a given validator."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMMISSION_RATES_FIELD_NUMBER: builtins.int
    UPDATE_TIME_FIELD_NUMBER: builtins.int
    @property
    def commission_rates(self) -> global___CommissionRates:
        """commission_rates defines the initial commission rates to be used for creating a validator."""
    @property
    def update_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """update_time is the last time the commission rate was changed."""
    def __init__(
        self,
        *,
        commission_rates: global___CommissionRates | None = ...,
        update_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["commission_rates", b"commission_rates", "update_time", b"update_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["commission_rates", b"commission_rates", "update_time", b"update_time"]) -> None: ...

global___Commission = Commission

@typing_extensions.final
class Description(google.protobuf.message.Message):
    """Description defines a validator description."""

    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: builtins.str
    """moniker defines a human-readable name for the validator."""
    identity: builtins.str
    """identity defines an optional identity signature (ex. UPort or Keybase)."""
    website: builtins.str
    """website defines an optional website link."""
    security_contact: builtins.str
    """security_contact defines an optional email for security contact."""
    details: builtins.str
    """details define other optional details."""
    def __init__(
        self,
        *,
        moniker: builtins.str = ...,
        identity: builtins.str = ...,
        website: builtins.str = ...,
        security_contact: builtins.str = ...,
        details: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["details", b"details", "identity", b"identity", "moniker", b"moniker", "security_contact", b"security_contact", "website", b"website"]) -> None: ...

global___Description = Description

@typing_extensions.final
class Validator(google.protobuf.message.Message):
    """Validator defines a validator, together with the total amount of the
    Validator's bond shares and their exchange rate to coins. Slashing results in
    a decrease in the exchange rate, allowing correct calculation of future
    undelegations without iterating over delegators. When coins are delegated to
    this validator, the validator is credited with a delegation whose number of
    bond shares is based on the amount of coins delegated divided by the current
    exchange rate. Voting power can be calculated as total bonded shares
    multiplied by exchange rate.
    """

    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: builtins.str
    """operator_address defines the address of the validator's operator; bech encoded in JSON."""
    @property
    def consensus_pubkey(self) -> google.protobuf.any_pb2.Any:
        """consensus_pubkey is the consensus public key of the validator, as a Protobuf Any."""
    jailed: builtins.bool
    """jailed defined whether the validator has been jailed from bonded status or not."""
    status: global___BondStatus.ValueType
    """status is the validator status (bonded/unbonding/unbonded)."""
    tokens: builtins.str
    """tokens define the delegated tokens (incl. self-delegation)."""
    delegator_shares: builtins.str
    """delegator_shares defines total shares issued to a validator's delegators."""
    @property
    def description(self) -> global___Description:
        """description defines the description terms for the validator."""
    unbonding_height: builtins.int
    """unbonding_height defines, if unbonding, the height at which this validator has begun unbonding."""
    @property
    def unbonding_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """unbonding_time defines, if unbonding, the min time for the validator to complete unbonding."""
    @property
    def commission(self) -> global___Commission:
        """commission defines the commission parameters."""
    min_self_delegation: builtins.str
    """min_self_delegation is the validator's self declared minimum self delegation."""
    def __init__(
        self,
        *,
        operator_address: builtins.str = ...,
        consensus_pubkey: google.protobuf.any_pb2.Any | None = ...,
        jailed: builtins.bool = ...,
        status: global___BondStatus.ValueType = ...,
        tokens: builtins.str = ...,
        delegator_shares: builtins.str = ...,
        description: global___Description | None = ...,
        unbonding_height: builtins.int = ...,
        unbonding_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        commission: global___Commission | None = ...,
        min_self_delegation: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["commission", b"commission", "consensus_pubkey", b"consensus_pubkey", "description", b"description", "unbonding_time", b"unbonding_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["commission", b"commission", "consensus_pubkey", b"consensus_pubkey", "delegator_shares", b"delegator_shares", "description", b"description", "jailed", b"jailed", "min_self_delegation", b"min_self_delegation", "operator_address", b"operator_address", "status", b"status", "tokens", b"tokens", "unbonding_height", b"unbonding_height", "unbonding_time", b"unbonding_time"]) -> None: ...

global___Validator = Validator

@typing_extensions.final
class ValAddresses(google.protobuf.message.Message):
    """ValAddresses defines a repeated set of validator addresses."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESSES_FIELD_NUMBER: builtins.int
    @property
    def addresses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        addresses: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["addresses", b"addresses"]) -> None: ...

global___ValAddresses = ValAddresses

@typing_extensions.final
class DVPair(google.protobuf.message.Message):
    """DVPair is struct that just has a delegator-validator pair with no other data.
    It is intended to be used as a marshalable pointer. For example, a DVPair can
    be used to construct the key to getting an UnbondingDelegation from state.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___DVPair = DVPair

@typing_extensions.final
class DVPairs(google.protobuf.message.Message):
    """DVPairs defines an array of DVPair objects."""

    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: collections.abc.Iterable[global___DVPair] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pairs", b"pairs"]) -> None: ...

global___DVPairs = DVPairs

@typing_extensions.final
class DVVTriplet(google.protobuf.message.Message):
    """DVVTriplet is struct that just has a delegator-validator-validator triplet
    with no other data. It is intended to be used as a marshalable pointer. For
    example, a DVVTriplet can be used to construct the key to getting a
    Redelegation from state.
    """

    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: builtins.str
    validator_src_address: builtins.str
    validator_dst_address: builtins.str
    def __init__(
        self,
        *,
        delegator_address: builtins.str = ...,
        validator_src_address: builtins.str = ...,
        validator_dst_address: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["delegator_address", b"delegator_address", "validator_dst_address", b"validator_dst_address", "validator_src_address", b"validator_src_address"]) -> None: ...

global___DVVTriplet = DVVTriplet

@typing_extensions.final
class DVVTriplets(google.protobuf.message.Message):
    """DVVTriplets defines an array of DVVTriplet objects."""

    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: collections.abc.Iterable[global___DVVTriplet] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["triplets", b"triplets"]) -> None: ...

global___DVVTriplets = DVVTriplets

@typing_extensions.final
class Delegation(google.protobuf.message.Message):
    """Delegation represents the bond with tokens held by an account. It is
    owned by one delegator, and is associated with the voting power of one
    validator.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    SHARES_FIELD_NUMBER: builtins.int
    delegator_address: builtins.str
    """delegator_address is the bech32-encoded address of the delegator."""
    validator_address: builtins.str
    """validator_address is the bech32-encoded address of the validator."""
    shares: builtins.str
    """shares define the delegation shares received."""
    def __init__(
        self,
        *,
        delegator_address: builtins.str = ...,
        validator_address: builtins.str = ...,
        shares: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["delegator_address", b"delegator_address", "shares", b"shares", "validator_address", b"validator_address"]) -> None: ...

global___Delegation = Delegation

@typing_extensions.final
class UnbondingDelegation(google.protobuf.message.Message):
    """UnbondingDelegation stores all of a single delegator's unbonding bonds
    for a single validator in an time-ordered list.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DELEGATOR_ADDRESS_FIELD_NUMBER: builtins.int
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    ENTRIES_FIELD_NUMBER: builtins.int
    delegator_address: builtins.str
    """delegator_address is the bech32-encoded address of the delegator."""
    validator_address: builtins.str
    """validator_address is the bech32-encoded address of the validator."""
    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UnbondingDelegationEntry]:
        """entries are the unbonding delegation entries.
        unbonding delegation entries
        """
    def __init__(
        self,
        *,
        delegator_address: builtins.str = ...,
        validator_address: builtins.str = ...,
        entries: collections.abc.Iterable[global___UnbondingDelegationEntry] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["delegator_address", b"delegator_address", "entries", b"entries", "validator_address", b"validator_address"]) -> None: ...

global___UnbondingDelegation = UnbondingDelegation

@typing_extensions.final
class UnbondingDelegationEntry(google.protobuf.message.Message):
    """UnbondingDelegationEntry defines an unbonding object with relevant metadata."""

    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
    """creation_height is the height which the unbonding took place."""
    @property
    def completion_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """completion_time is the unix time for unbonding completion."""
    initial_balance: builtins.str
    """initial_balance defines the tokens initially scheduled to receive at completion."""
    balance: builtins.str
    """balance defines the tokens to receive at completion."""
    def __init__(
        self,
        *,
        creation_height: builtins.int = ...,
        completion_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        initial_balance: builtins.str = ...,
        balance: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["completion_time", b"completion_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["balance", b"balance", "completion_time", b"completion_time", "creation_height", b"creation_height", "initial_balance", b"initial_balance"]) -> None: ...

global___UnbondingDelegationEntry = UnbondingDelegationEntry

@typing_extensions.final
class RedelegationEntry(google.protobuf.message.Message):
    """RedelegationEntry defines a redelegation object with relevant metadata."""

    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
    """creation_height  defines the height which the redelegation took place."""
    @property
    def completion_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """completion_time defines the unix time for redelegation completion."""
    initial_balance: builtins.str
    """initial_balance defines the initial balance when redelegation started."""
    shares_dst: builtins.str
    """shares_dst is the amount of destination-validator shares created by redelegation."""
    def __init__(
        self,
        *,
        creation_height: builtins.int = ...,
        completion_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        initial_balance: builtins.str = ...,
        shares_dst: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["completion_time", b"completion_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["completion_time", b"completion_time", "creation_height", b"creation_height", "initial_balance", b"initial_balance", "shares_dst", b"shares_dst"]) -> None: ...

global___RedelegationEntry = RedelegationEntry

@typing_extensions.final
class Redelegation(google.protobuf.message.Message):
    """Redelegation contains the list of a particular delegator's redelegating bonds
    from a particular source validator to a particular destination validator.
    """

    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: builtins.str
    """delegator_address is the bech32-encoded address of the delegator."""
    validator_src_address: builtins.str
    """validator_src_address is the validator redelegation source operator address."""
    validator_dst_address: builtins.str
    """validator_dst_address is the validator redelegation destination operator address."""
    @property
    def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RedelegationEntry]:
        """entries are the redelegation entries.
        redelegation entries
        """
    def __init__(
        self,
        *,
        delegator_address: builtins.str = ...,
        validator_src_address: builtins.str = ...,
        validator_dst_address: builtins.str = ...,
        entries: collections.abc.Iterable[global___RedelegationEntry] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["delegator_address", b"delegator_address", "entries", b"entries", "validator_dst_address", b"validator_dst_address", "validator_src_address", b"validator_src_address"]) -> None: ...

global___Redelegation = Redelegation

@typing_extensions.final
class Params(google.protobuf.message.Message):
    """Params defines the parameters for the staking module."""

    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
    MIN_COMMISSION_RATE_FIELD_NUMBER: builtins.int
    MIN_SELF_DELEGATION_FIELD_NUMBER: builtins.int
    @property
    def unbonding_time(self) -> google.protobuf.duration_pb2.Duration:
        """unbonding_time is the time duration of unbonding."""
    max_validators: builtins.int
    """max_validators is the maximum number of validators."""
    max_entries: builtins.int
    """max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio)."""
    historical_entries: builtins.int
    """historical_entries is the number of historical entries to persist."""
    bond_denom: builtins.str
    """bond_denom defines the bondable coin denomination."""
    min_commission_rate: builtins.str
    """min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators"""
    min_self_delegation: builtins.str
    """min_self_delegation is the chain-wide minimum amount that a validator has to self delegate"""
    def __init__(
        self,
        *,
        unbonding_time: google.protobuf.duration_pb2.Duration | None = ...,
        max_validators: builtins.int = ...,
        max_entries: builtins.int = ...,
        historical_entries: builtins.int = ...,
        bond_denom: builtins.str = ...,
        min_commission_rate: builtins.str = ...,
        min_self_delegation: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["unbonding_time", b"unbonding_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bond_denom", b"bond_denom", "historical_entries", b"historical_entries", "max_entries", b"max_entries", "max_validators", b"max_validators", "min_commission_rate", b"min_commission_rate", "min_self_delegation", b"min_self_delegation", "unbonding_time", b"unbonding_time"]) -> None: ...

global___Params = Params

@typing_extensions.final
class DelegationResponse(google.protobuf.message.Message):
    """DelegationResponse is equivalent to Delegation except that it contains a
    balance in addition to shares which is more suitable for client responses.
    """

    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: global___Delegation | None = ...,
        balance: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["balance", b"balance", "delegation", b"delegation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["balance", b"balance", "delegation", b"delegation"]) -> None: ...

global___DelegationResponse = DelegationResponse

@typing_extensions.final
class RedelegationEntryResponse(google.protobuf.message.Message):
    """RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
    contains a balance in addition to shares which is more suitable for client
    responses.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REDELEGATION_ENTRY_FIELD_NUMBER: builtins.int
    BALANCE_FIELD_NUMBER: builtins.int
    @property
    def redelegation_entry(self) -> global___RedelegationEntry: ...
    balance: builtins.str
    def __init__(
        self,
        *,
        redelegation_entry: global___RedelegationEntry | None = ...,
        balance: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["redelegation_entry", b"redelegation_entry"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["balance", b"balance", "redelegation_entry", b"redelegation_entry"]) -> None: ...

global___RedelegationEntryResponse = RedelegationEntryResponse

@typing_extensions.final
class RedelegationResponse(google.protobuf.message.Message):
    """RedelegationResponse is equivalent to a Redelegation except that its entries
    contain a balance in addition to shares which is more suitable for client
    responses.
    """

    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: global___Redelegation | None = ...,
        entries: collections.abc.Iterable[global___RedelegationEntryResponse] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["redelegation", b"redelegation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entries", b"entries", "redelegation", b"redelegation"]) -> None: ...

global___RedelegationResponse = RedelegationResponse

@typing_extensions.final
class Pool(google.protobuf.message.Message):
    """Pool is used for tracking bonded and not-bonded token supply of the bond
    denomination.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NOT_BONDED_TOKENS_FIELD_NUMBER: builtins.int
    BONDED_TOKENS_FIELD_NUMBER: builtins.int
    not_bonded_tokens: builtins.str
    bonded_tokens: builtins.str
    def __init__(
        self,
        *,
        not_bonded_tokens: builtins.str = ...,
        bonded_tokens: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["bonded_tokens", b"bonded_tokens", "not_bonded_tokens", b"not_bonded_tokens"]) -> None: ...

global___Pool = Pool
