"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class MigrationPayload(google.protobuf.message.Message):
    """Copied from: https://github.com/beemdevelopment/Aegis/blob/master/app/src/main/proto/google_auth.proto"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Algorithm:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _AlgorithmEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MigrationPayload._Algorithm.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        ALGO_INVALID: MigrationPayload._Algorithm.ValueType  # 0
        ALGO_SHA1: MigrationPayload._Algorithm.ValueType  # 1

    class Algorithm(_Algorithm, metaclass=_AlgorithmEnumTypeWrapper): ...
    ALGO_INVALID: MigrationPayload.Algorithm.ValueType  # 0
    ALGO_SHA1: MigrationPayload.Algorithm.ValueType  # 1

    class _OtpType:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _OtpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MigrationPayload._OtpType.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        OTP_INVALID: MigrationPayload._OtpType.ValueType  # 0
        OTP_HOTP: MigrationPayload._OtpType.ValueType  # 1
        OTP_TOTP: MigrationPayload._OtpType.ValueType  # 2

    class OtpType(_OtpType, metaclass=_OtpTypeEnumTypeWrapper): ...
    OTP_INVALID: MigrationPayload.OtpType.ValueType  # 0
    OTP_HOTP: MigrationPayload.OtpType.ValueType  # 1
    OTP_TOTP: MigrationPayload.OtpType.ValueType  # 2

    @typing.final
    class OtpParameters(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        SECRET_FIELD_NUMBER: builtins.int
        NAME_FIELD_NUMBER: builtins.int
        ISSUER_FIELD_NUMBER: builtins.int
        ALGORITHM_FIELD_NUMBER: builtins.int
        DIGITS_FIELD_NUMBER: builtins.int
        TYPE_FIELD_NUMBER: builtins.int
        COUNTER_FIELD_NUMBER: builtins.int
        secret: builtins.bytes
        name: builtins.str
        issuer: builtins.str
        algorithm: global___MigrationPayload.Algorithm.ValueType
        digits: builtins.int
        type: global___MigrationPayload.OtpType.ValueType
        counter: builtins.int
        def __init__(
            self,
            *,
            secret: builtins.bytes = ...,
            name: builtins.str = ...,
            issuer: builtins.str = ...,
            algorithm: global___MigrationPayload.Algorithm.ValueType = ...,
            digits: builtins.int = ...,
            type: global___MigrationPayload.OtpType.ValueType = ...,
            counter: builtins.int = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["algorithm", b"algorithm", "counter", b"counter", "digits", b"digits", "issuer", b"issuer", "name", b"name", "secret", b"secret", "type", b"type"]) -> None: ...

    OTP_PARAMETERS_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    BATCH_SIZE_FIELD_NUMBER: builtins.int
    BATCH_INDEX_FIELD_NUMBER: builtins.int
    BATCH_ID_FIELD_NUMBER: builtins.int
    version: builtins.int
    batch_size: builtins.int
    batch_index: builtins.int
    batch_id: builtins.int
    @property
    def otp_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MigrationPayload.OtpParameters]: ...
    def __init__(
        self,
        *,
        otp_parameters: collections.abc.Iterable[global___MigrationPayload.OtpParameters] | None = ...,
        version: builtins.int = ...,
        batch_size: builtins.int = ...,
        batch_index: builtins.int = ...,
        batch_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["batch_id", b"batch_id", "batch_index", b"batch_index", "batch_size", b"batch_size", "otp_parameters", b"otp_parameters", "version", b"version"]) -> None: ...

global___MigrationPayload = MigrationPayload
