"""
@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 Module(google.protobuf.message.Message):
    """Module is the config object for the runtime module."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    APP_NAME_FIELD_NUMBER: builtins.int
    BEGIN_BLOCKERS_FIELD_NUMBER: builtins.int
    END_BLOCKERS_FIELD_NUMBER: builtins.int
    INIT_GENESIS_FIELD_NUMBER: builtins.int
    EXPORT_GENESIS_FIELD_NUMBER: builtins.int
    OVERRIDE_STORE_KEYS_FIELD_NUMBER: builtins.int
    app_name: builtins.str
    """app_name is the name of the app."""
    @property
    def begin_blockers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """begin_blockers specifies the module names of begin blockers
        to call in the order in which they should be called. If this is left empty
        no begin blocker will be registered.
        """
    @property
    def end_blockers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """end_blockers specifies the module names of the end blockers
        to call in the order in which they should be called. If this is left empty
        no end blocker will be registered.
        """
    @property
    def init_genesis(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """init_genesis specifies the module names of init genesis functions
        to call in the order in which they should be called. If this is left empty
        no init genesis function will be registered.
        """
    @property
    def export_genesis(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """export_genesis specifies the order in which to export module genesis data.
        If this is left empty, the init_genesis order will be used for export genesis
        if it is specified.
        """
    @property
    def override_store_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StoreKeyConfig]:
        """override_store_keys is an optional list of overrides for the module store keys
        to be used in keeper construction.
        """
    def __init__(
        self,
        *,
        app_name: builtins.str = ...,
        begin_blockers: collections.abc.Iterable[builtins.str] | None = ...,
        end_blockers: collections.abc.Iterable[builtins.str] | None = ...,
        init_genesis: collections.abc.Iterable[builtins.str] | None = ...,
        export_genesis: collections.abc.Iterable[builtins.str] | None = ...,
        override_store_keys: collections.abc.Iterable[global___StoreKeyConfig] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["app_name", b"app_name", "begin_blockers", b"begin_blockers", "end_blockers", b"end_blockers", "export_genesis", b"export_genesis", "init_genesis", b"init_genesis", "override_store_keys", b"override_store_keys"]) -> None: ...

global___Module = Module

@typing_extensions.final
class StoreKeyConfig(google.protobuf.message.Message):
    """StoreKeyConfig may be supplied to override the default module store key, which
    is the module name.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODULE_NAME_FIELD_NUMBER: builtins.int
    KV_STORE_KEY_FIELD_NUMBER: builtins.int
    module_name: builtins.str
    """name of the module to override the store key of"""
    kv_store_key: builtins.str
    """the kv store key to use instead of the module name."""
    def __init__(
        self,
        *,
        module_name: builtins.str = ...,
        kv_store_key: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["kv_store_key", b"kv_store_key", "module_name", b"module_name"]) -> None: ...

global___StoreKeyConfig = StoreKeyConfig
