"""
@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

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class ModuleOptions(google.protobuf.message.Message):
    """ModuleOptions describes the CLI options for a Cosmos SDK module."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TX_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    @property
    def tx(self) -> global___ServiceCommandDescriptor:
        """tx describes the tx command for the module."""
    @property
    def query(self) -> global___ServiceCommandDescriptor:
        """query describes the tx command for the module."""
    def __init__(
        self,
        *,
        tx: global___ServiceCommandDescriptor | None = ...,
        query: global___ServiceCommandDescriptor | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["query", b"query", "tx", b"tx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["query", b"query", "tx", b"tx"]) -> None: ...

global___ModuleOptions = ModuleOptions

@typing_extensions.final
class ServiceCommandDescriptor(google.protobuf.message.Message):
    """ServiceCommandDescriptor describes a CLI command based on a protobuf service."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___ServiceCommandDescriptor: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___ServiceCommandDescriptor | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    SERVICE_FIELD_NUMBER: builtins.int
    RPC_COMMAND_OPTIONS_FIELD_NUMBER: builtins.int
    SUB_COMMANDS_FIELD_NUMBER: builtins.int
    service: builtins.str
    """service is the fully qualified name of the protobuf service to build
    the command from. It can be left empty if sub_commands are used instead
    which may be the case if a module provides multiple tx and/or query services.
    """
    @property
    def rpc_command_options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RpcCommandOptions]:
        """rpc_command_options are options for commands generated from rpc methods.
        If no options are specified for a given rpc method on the service, a
        command will be generated for that method with the default options.
        """
    @property
    def sub_commands(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ServiceCommandDescriptor]:
        """sub_commands is a map of optional sub-commands for this command based on
        different protobuf services. The map key is used as the name of the
        sub-command.
        """
    def __init__(
        self,
        *,
        service: builtins.str = ...,
        rpc_command_options: collections.abc.Iterable[global___RpcCommandOptions] | None = ...,
        sub_commands: collections.abc.Mapping[builtins.str, global___ServiceCommandDescriptor] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["rpc_command_options", b"rpc_command_options", "service", b"service", "sub_commands", b"sub_commands"]) -> None: ...

global___ServiceCommandDescriptor = ServiceCommandDescriptor

@typing_extensions.final
class RpcCommandOptions(google.protobuf.message.Message):
    """RpcCommandOptions specifies options for commands generated from protobuf
    rpc methods.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___FlagOptions: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___FlagOptions | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RPC_METHOD_FIELD_NUMBER: builtins.int
    USE_FIELD_NUMBER: builtins.int
    LONG_FIELD_NUMBER: builtins.int
    SHORT_FIELD_NUMBER: builtins.int
    EXAMPLE_FIELD_NUMBER: builtins.int
    ALIAS_FIELD_NUMBER: builtins.int
    SUGGEST_FOR_FIELD_NUMBER: builtins.int
    DEPRECATED_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    FLAG_OPTIONS_FIELD_NUMBER: builtins.int
    POSITIONAL_ARGS_FIELD_NUMBER: builtins.int
    SKIP_FIELD_NUMBER: builtins.int
    rpc_method: builtins.str
    """rpc_method is short name of the protobuf rpc method that this command is
    generated from.
    """
    use: builtins.str
    """use is the one-line usage method. It also allows specifying an alternate
    name for the command as the first word of the usage text.

    By default the name of an rpc command is the kebab-case short name of the
    rpc method.
    """
    long: builtins.str
    """long is the long message shown in the 'help <this-command>' output."""
    short: builtins.str
    """short is the short description shown in the 'help' output."""
    example: builtins.str
    """example is examples of how to use the command."""
    @property
    def alias(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """alias is an array of aliases that can be used instead of the first word in Use."""
    @property
    def suggest_for(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """suggest_for is an array of command names for which this command will be suggested -
        similar to aliases but only suggests.
        """
    deprecated: builtins.str
    """deprecated defines, if this command is deprecated and should print this string when used."""
    version: builtins.str
    """version defines the version for this command. If this value is non-empty and the command does not
    define a "version" flag, a "version" boolean flag will be added to the command and, if specified,
    will print content of the "Version" variable. A shorthand "v" flag will also be added if the
    command does not define one.
    """
    @property
    def flag_options(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___FlagOptions]:
        """flag_options are options for flags generated from rpc request fields.
        By default all request fields are configured as flags. They can
        also be configured as positional args instead using positional_args.
        """
    @property
    def positional_args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PositionalArgDescriptor]:
        """positional_args specifies positional arguments for the command."""
    skip: builtins.bool
    """skip specifies whether to skip this rpc method when generating commands."""
    def __init__(
        self,
        *,
        rpc_method: builtins.str = ...,
        use: builtins.str = ...,
        long: builtins.str = ...,
        short: builtins.str = ...,
        example: builtins.str = ...,
        alias: collections.abc.Iterable[builtins.str] | None = ...,
        suggest_for: collections.abc.Iterable[builtins.str] | None = ...,
        deprecated: builtins.str = ...,
        version: builtins.str = ...,
        flag_options: collections.abc.Mapping[builtins.str, global___FlagOptions] | None = ...,
        positional_args: collections.abc.Iterable[global___PositionalArgDescriptor] | None = ...,
        skip: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias", b"alias", "deprecated", b"deprecated", "example", b"example", "flag_options", b"flag_options", "long", b"long", "positional_args", b"positional_args", "rpc_method", b"rpc_method", "short", b"short", "skip", b"skip", "suggest_for", b"suggest_for", "use", b"use", "version", b"version"]) -> None: ...

global___RpcCommandOptions = RpcCommandOptions

@typing_extensions.final
class FlagOptions(google.protobuf.message.Message):
    """FlagOptions are options for flags generated from rpc request fields.
    By default, all request fields are configured as flags based on the
    kebab-case name of the field. Fields can be turned into positional arguments
    instead by using RpcCommandOptions.positional_args.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    SHORTHAND_FIELD_NUMBER: builtins.int
    USAGE_FIELD_NUMBER: builtins.int
    DEFAULT_VALUE_FIELD_NUMBER: builtins.int
    NO_OPT_DEFAULT_VALUE_FIELD_NUMBER: builtins.int
    DEPRECATED_FIELD_NUMBER: builtins.int
    SHORTHAND_DEPRECATED_FIELD_NUMBER: builtins.int
    HIDDEN_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name is an alternate name to use for the field flag."""
    shorthand: builtins.str
    """shorthand is a one-letter abbreviated flag."""
    usage: builtins.str
    """usage is the help message."""
    default_value: builtins.str
    """default_value is the default value as text."""
    no_opt_default_value: builtins.str
    """default value is the default value as text if the flag is used without any value."""
    deprecated: builtins.str
    """deprecated is the usage text to show if this flag is deprecated."""
    shorthand_deprecated: builtins.str
    """shorthand_deprecated is the usage text to show if the shorthand of this flag is deprecated."""
    hidden: builtins.bool
    """hidden hides the flag from help/usage text"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        shorthand: builtins.str = ...,
        usage: builtins.str = ...,
        default_value: builtins.str = ...,
        no_opt_default_value: builtins.str = ...,
        deprecated: builtins.str = ...,
        shorthand_deprecated: builtins.str = ...,
        hidden: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["default_value", b"default_value", "deprecated", b"deprecated", "hidden", b"hidden", "name", b"name", "no_opt_default_value", b"no_opt_default_value", "shorthand", b"shorthand", "shorthand_deprecated", b"shorthand_deprecated", "usage", b"usage"]) -> None: ...

global___FlagOptions = FlagOptions

@typing_extensions.final
class PositionalArgDescriptor(google.protobuf.message.Message):
    """PositionalArgDescriptor describes a positional argument."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROTO_FIELD_FIELD_NUMBER: builtins.int
    VARARGS_FIELD_NUMBER: builtins.int
    proto_field: builtins.str
    """proto_field specifies the proto field to use as the positional arg. Any
    fields used as positional args will not have a flag generated.
    """
    varargs: builtins.bool
    """varargs makes a positional parameter a varargs parameter. This can only be
    applied to last positional parameter and the proto_field must a repeated
    field.
    """
    def __init__(
        self,
        *,
        proto_field: builtins.str = ...,
        varargs: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["proto_field", b"proto_field", "varargs", b"varargs"]) -> None: ...

global___PositionalArgDescriptor = PositionalArgDescriptor
