"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Since: cosmos-sdk 0.46"""
import builtins
import cosmos.crypto.hd.v1.hd_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
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 Record(google.protobuf.message.Message):
    """Record is used for representing a key in the keyring."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class Local(google.protobuf.message.Message):
        """Item is a keyring item stored in a keyring backend.
        Local item
        """

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PRIV_KEY_FIELD_NUMBER: builtins.int
        @property
        def priv_key(self) -> google.protobuf.any_pb2.Any: ...
        def __init__(
            self,
            *,
            priv_key: google.protobuf.any_pb2.Any | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["priv_key", b"priv_key"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["priv_key", b"priv_key"]) -> None: ...

    @typing_extensions.final
    class Ledger(google.protobuf.message.Message):
        """Ledger item"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PATH_FIELD_NUMBER: builtins.int
        @property
        def path(self) -> cosmos.crypto.hd.v1.hd_pb2.BIP44Params: ...
        def __init__(
            self,
            *,
            path: cosmos.crypto.hd.v1.hd_pb2.BIP44Params | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["path", b"path"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["path", b"path"]) -> None: ...

    @typing_extensions.final
    class Multi(google.protobuf.message.Message):
        """Multi item"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        def __init__(
            self,
        ) -> None: ...

    @typing_extensions.final
    class Offline(google.protobuf.message.Message):
        """Offline item"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        def __init__(
            self,
        ) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    PUB_KEY_FIELD_NUMBER: builtins.int
    LOCAL_FIELD_NUMBER: builtins.int
    LEDGER_FIELD_NUMBER: builtins.int
    MULTI_FIELD_NUMBER: builtins.int
    OFFLINE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name represents a name of Record"""
    @property
    def pub_key(self) -> google.protobuf.any_pb2.Any:
        """pub_key represents a public key in any format"""
    @property
    def local(self) -> global___Record.Local:
        """local stores the private key locally."""
    @property
    def ledger(self) -> global___Record.Ledger:
        """ledger stores the information about a Ledger key."""
    @property
    def multi(self) -> global___Record.Multi:
        """Multi does not store any other information."""
    @property
    def offline(self) -> global___Record.Offline:
        """Offline does not store any other information."""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        pub_key: google.protobuf.any_pb2.Any | None = ...,
        local: global___Record.Local | None = ...,
        ledger: global___Record.Ledger | None = ...,
        multi: global___Record.Multi | None = ...,
        offline: global___Record.Offline | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["item", b"item", "ledger", b"ledger", "local", b"local", "multi", b"multi", "offline", b"offline", "pub_key", b"pub_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["item", b"item", "ledger", b"ledger", "local", b"local", "multi", b"multi", "name", b"name", "offline", b"offline", "pub_key", b"pub_key"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["item", b"item"]) -> typing_extensions.Literal["local", "ledger", "multi", "offline"] | None: ...

global___Record = Record
