"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.crypto.multisig.v1beta1.multisig_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class SignMode(metaclass=_SignMode):
    V = typing.NewType('V', builtins.int)

global___SignMode = SignMode

SIGN_MODE_UNSPECIFIED = SignMode.V(0)
SIGN_MODE_DIRECT = SignMode.V(1)
SIGN_MODE_TEXTUAL = SignMode.V(2)
SIGN_MODE_LEGACY_AMINO_JSON = SignMode.V(127)

class _SignMode(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SignMode.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    SIGN_MODE_UNSPECIFIED = SignMode.V(0)
    SIGN_MODE_DIRECT = SignMode.V(1)
    SIGN_MODE_TEXTUAL = SignMode.V(2)
    SIGN_MODE_LEGACY_AMINO_JSON = SignMode.V(127)

class SignatureDescriptors(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SIGNATURES_FIELD_NUMBER: builtins.int

    @property
    def signatures(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SignatureDescriptor]: ...

    def __init__(self,
        *,
        signatures : typing.Optional[typing.Iterable[global___SignatureDescriptor]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"signatures",b"signatures"]) -> None: ...
global___SignatureDescriptors = SignatureDescriptors

class SignatureDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Data(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class Single(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            MODE_FIELD_NUMBER: builtins.int
            SIGNATURE_FIELD_NUMBER: builtins.int
            mode: global___SignMode.V = ...
            signature: builtins.bytes = ...

            def __init__(self,
                *,
                mode : global___SignMode.V = ...,
                signature : builtins.bytes = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal[u"mode",b"mode",u"signature",b"signature"]) -> None: ...

        class Multi(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            BITARRAY_FIELD_NUMBER: builtins.int
            SIGNATURES_FIELD_NUMBER: builtins.int

            @property
            def bitarray(self) -> cosmos.crypto.multisig.v1beta1.multisig_pb2.CompactBitArray: ...

            @property
            def signatures(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SignatureDescriptor.Data]: ...

            def __init__(self,
                *,
                bitarray : typing.Optional[cosmos.crypto.multisig.v1beta1.multisig_pb2.CompactBitArray] = ...,
                signatures : typing.Optional[typing.Iterable[global___SignatureDescriptor.Data]] = ...,
                ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal[u"bitarray",b"bitarray"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal[u"bitarray",b"bitarray",u"signatures",b"signatures"]) -> None: ...

        SINGLE_FIELD_NUMBER: builtins.int
        MULTI_FIELD_NUMBER: builtins.int

        @property
        def single(self) -> global___SignatureDescriptor.Data.Single: ...

        @property
        def multi(self) -> global___SignatureDescriptor.Data.Multi: ...

        def __init__(self,
            *,
            single : typing.Optional[global___SignatureDescriptor.Data.Single] = ...,
            multi : typing.Optional[global___SignatureDescriptor.Data.Multi] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"multi",b"multi",u"single",b"single",u"sum",b"sum"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"multi",b"multi",u"single",b"single",u"sum",b"sum"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal[u"sum",b"sum"]) -> typing.Optional[typing_extensions.Literal["single","multi"]]: ...

    PUBLIC_KEY_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    SEQUENCE_FIELD_NUMBER: builtins.int
    sequence: builtins.int = ...

    @property
    def public_key(self) -> google.protobuf.any_pb2.Any: ...

    @property
    def data(self) -> global___SignatureDescriptor.Data: ...

    def __init__(self,
        *,
        public_key : typing.Optional[google.protobuf.any_pb2.Any] = ...,
        data : typing.Optional[global___SignatureDescriptor.Data] = ...,
        sequence : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"data",b"data",u"public_key",b"public_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"public_key",b"public_key",u"sequence",b"sequence"]) -> None: ...
global___SignatureDescriptor = SignatureDescriptor
