"""
@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 auth module."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BECH32_PREFIX_FIELD_NUMBER: builtins.int
    MODULE_ACCOUNT_PERMISSIONS_FIELD_NUMBER: builtins.int
    AUTHORITY_FIELD_NUMBER: builtins.int
    bech32_prefix: builtins.str
    """bech32_prefix is the bech32 account prefix for the app."""
    @property
    def module_account_permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleAccountPermission]:
        """module_account_permissions are module account permissions."""
    authority: builtins.str
    """authority defines the custom module authority. If not set, defaults to the governance module."""
    def __init__(
        self,
        *,
        bech32_prefix: builtins.str = ...,
        module_account_permissions: collections.abc.Iterable[global___ModuleAccountPermission] | None = ...,
        authority: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["authority", b"authority", "bech32_prefix", b"bech32_prefix", "module_account_permissions", b"module_account_permissions"]) -> None: ...

global___Module = Module

@typing_extensions.final
class ModuleAccountPermission(google.protobuf.message.Message):
    """ModuleAccountPermission represents permissions for a module account."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_FIELD_NUMBER: builtins.int
    PERMISSIONS_FIELD_NUMBER: builtins.int
    account: builtins.str
    """account is the name of the module."""
    @property
    def permissions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """permissions are the permissions this module has. Currently recognized
        values are minter, burner and staking.
        """
    def __init__(
        self,
        *,
        account: builtins.str = ...,
        permissions: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["account", b"account", "permissions", b"permissions"]) -> None: ...

global___ModuleAccountPermission = ModuleAccountPermission
