"""
@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.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
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 Params(google.protobuf.message.Message):
    """Params defines the parameters for the bank module."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SEND_ENABLED_FIELD_NUMBER: builtins.int
    DEFAULT_SEND_ENABLED_FIELD_NUMBER: builtins.int
    @property
    def send_enabled(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SendEnabled]: ...
    default_send_enabled: builtins.bool
    def __init__(
        self,
        *,
        send_enabled: collections.abc.Iterable[global___SendEnabled] | None = ...,
        default_send_enabled: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["default_send_enabled", b"default_send_enabled", "send_enabled", b"send_enabled"]) -> None: ...

global___Params = Params

@typing_extensions.final
class SendEnabled(google.protobuf.message.Message):
    """SendEnabled maps coin denom to a send_enabled status (whether a denom is
    sendable).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DENOM_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    denom: builtins.str
    enabled: builtins.bool
    def __init__(
        self,
        *,
        denom: builtins.str = ...,
        enabled: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["denom", b"denom", "enabled", b"enabled"]) -> None: ...

global___SendEnabled = SendEnabled

@typing_extensions.final
class Input(google.protobuf.message.Message):
    """Input models transaction input."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_FIELD_NUMBER: builtins.int
    COINS_FIELD_NUMBER: builtins.int
    address: builtins.str
    @property
    def coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "coins", b"coins"]) -> None: ...

global___Input = Input

@typing_extensions.final
class Output(google.protobuf.message.Message):
    """Output models transaction outputs."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_FIELD_NUMBER: builtins.int
    COINS_FIELD_NUMBER: builtins.int
    address: builtins.str
    @property
    def coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "coins", b"coins"]) -> None: ...

global___Output = Output

@typing_extensions.final
class Supply(google.protobuf.message.Message):
    """Supply represents a struct that passively keeps track of the total supply
    amounts in the network.
    This message is deprecated now that supply is indexed by denom.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOTAL_FIELD_NUMBER: builtins.int
    @property
    def total(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        total: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["total", b"total"]) -> None: ...

global___Supply = Supply

@typing_extensions.final
class DenomUnit(google.protobuf.message.Message):
    """DenomUnit represents a struct that describes a given
    denomination unit of the basic token.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DENOM_FIELD_NUMBER: builtins.int
    EXPONENT_FIELD_NUMBER: builtins.int
    ALIASES_FIELD_NUMBER: builtins.int
    denom: builtins.str
    """denom represents the string name of the given denom unit (e.g uatom)."""
    exponent: builtins.int
    """exponent represents power of 10 exponent that one must
    raise the base_denom to in order to equal the given DenomUnit's denom
    1 denom = 1^exponent base_denom
    (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with
    exponent = 6, thus: 1 atom = 10^6 uatom).
    """
    @property
    def aliases(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """aliases is a list of string aliases for the given denom"""
    def __init__(
        self,
        *,
        denom: builtins.str = ...,
        exponent: builtins.int = ...,
        aliases: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["aliases", b"aliases", "denom", b"denom", "exponent", b"exponent"]) -> None: ...

global___DenomUnit = DenomUnit

@typing_extensions.final
class Metadata(google.protobuf.message.Message):
    """Metadata represents a struct that describes
    a basic token.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    DENOM_UNITS_FIELD_NUMBER: builtins.int
    BASE_FIELD_NUMBER: builtins.int
    DISPLAY_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SYMBOL_FIELD_NUMBER: builtins.int
    description: builtins.str
    @property
    def denom_units(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DenomUnit]:
        """denom_units represents the list of DenomUnit's for a given coin"""
    base: builtins.str
    """base represents the base denom (should be the DenomUnit with exponent = 0)."""
    display: builtins.str
    """display indicates the suggested denom that should be
    displayed in clients.
    """
    name: builtins.str
    """name defines the name of the token (eg: Cosmos Atom)

    Since: cosmos-sdk 0.43
    """
    symbol: builtins.str
    """symbol is the token symbol usually shown on exchanges (eg: ATOM). This can
    be the same as the display.

    Since: cosmos-sdk 0.43
    """
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        denom_units: collections.abc.Iterable[global___DenomUnit] | None = ...,
        base: builtins.str = ...,
        display: builtins.str = ...,
        name: builtins.str = ...,
        symbol: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["base", b"base", "denom_units", b"denom_units", "description", b"description", "display", b"display", "name", b"name", "symbol", b"symbol"]) -> None: ...

global___Metadata = Metadata
