"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

from collections import abc as _abc
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

class _ADVEncryptionType:
    ValueType = _typing.NewType("ValueType", _builtins.int)
    V: _TypeAlias = ValueType  # noqa: Y015

class _ADVEncryptionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ADVEncryptionType.ValueType], _builtins.type):
    DESCRIPTOR: _descriptor.EnumDescriptor
    E2EE: _ADVEncryptionType.ValueType  # 0
    HOSTED: _ADVEncryptionType.ValueType  # 1

class ADVEncryptionType(_ADVEncryptionType, metaclass=_ADVEncryptionTypeEnumTypeWrapper): ...

E2EE: ADVEncryptionType.ValueType  # 0
HOSTED: ADVEncryptionType.ValueType  # 1
Global___ADVEncryptionType: _TypeAlias = ADVEncryptionType  # noqa: Y015

@_typing.final
class ADVKeyIndexList(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    RAWID_FIELD_NUMBER: _builtins.int
    TIMESTAMP_FIELD_NUMBER: _builtins.int
    CURRENTINDEX_FIELD_NUMBER: _builtins.int
    VALIDINDEXES_FIELD_NUMBER: _builtins.int
    ACCOUNTTYPE_FIELD_NUMBER: _builtins.int
    rawID: _builtins.int
    timestamp: _builtins.int
    currentIndex: _builtins.int
    accountType: Global___ADVEncryptionType.ValueType
    @_builtins.property
    def validIndexes(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
    def __init__(
        self,
        *,
        rawID: _builtins.int | None = ...,
        timestamp: _builtins.int | None = ...,
        currentIndex: _builtins.int | None = ...,
        validIndexes: _abc.Iterable[_builtins.int] | None = ...,
        accountType: Global___ADVEncryptionType.ValueType | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType", "currentIndex", b"currentIndex", "rawID", b"rawID", "timestamp", b"timestamp"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType", "currentIndex", b"currentIndex", "rawID", b"rawID", "timestamp", b"timestamp", "validIndexes", b"validIndexes"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ADVKeyIndexList: _TypeAlias = ADVKeyIndexList  # noqa: Y015

@_typing.final
class ADVSignedKeyIndexList(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DETAILS_FIELD_NUMBER: _builtins.int
    ACCOUNTSIGNATURE_FIELD_NUMBER: _builtins.int
    ACCOUNTSIGNATUREKEY_FIELD_NUMBER: _builtins.int
    details: _builtins.bytes
    accountSignature: _builtins.bytes
    accountSignatureKey: _builtins.bytes
    def __init__(
        self,
        *,
        details: _builtins.bytes | None = ...,
        accountSignature: _builtins.bytes | None = ...,
        accountSignatureKey: _builtins.bytes | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["accountSignature", b"accountSignature", "accountSignatureKey", b"accountSignatureKey", "details", b"details"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["accountSignature", b"accountSignature", "accountSignatureKey", b"accountSignatureKey", "details", b"details"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ADVSignedKeyIndexList: _TypeAlias = ADVSignedKeyIndexList  # noqa: Y015

@_typing.final
class ADVDeviceIdentity(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    RAWID_FIELD_NUMBER: _builtins.int
    TIMESTAMP_FIELD_NUMBER: _builtins.int
    KEYINDEX_FIELD_NUMBER: _builtins.int
    ACCOUNTTYPE_FIELD_NUMBER: _builtins.int
    DEVICETYPE_FIELD_NUMBER: _builtins.int
    rawID: _builtins.int
    timestamp: _builtins.int
    keyIndex: _builtins.int
    accountType: Global___ADVEncryptionType.ValueType
    deviceType: Global___ADVEncryptionType.ValueType
    def __init__(
        self,
        *,
        rawID: _builtins.int | None = ...,
        timestamp: _builtins.int | None = ...,
        keyIndex: _builtins.int | None = ...,
        accountType: Global___ADVEncryptionType.ValueType | None = ...,
        deviceType: Global___ADVEncryptionType.ValueType | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType", "deviceType", b"deviceType", "keyIndex", b"keyIndex", "rawID", b"rawID", "timestamp", b"timestamp"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["accountType", b"accountType", "deviceType", b"deviceType", "keyIndex", b"keyIndex", "rawID", b"rawID", "timestamp", b"timestamp"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ADVDeviceIdentity: _TypeAlias = ADVDeviceIdentity  # noqa: Y015

@_typing.final
class ADVSignedDeviceIdentity(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DETAILS_FIELD_NUMBER: _builtins.int
    ACCOUNTSIGNATUREKEY_FIELD_NUMBER: _builtins.int
    ACCOUNTSIGNATURE_FIELD_NUMBER: _builtins.int
    DEVICESIGNATURE_FIELD_NUMBER: _builtins.int
    details: _builtins.bytes
    accountSignatureKey: _builtins.bytes
    accountSignature: _builtins.bytes
    deviceSignature: _builtins.bytes
    def __init__(
        self,
        *,
        details: _builtins.bytes | None = ...,
        accountSignatureKey: _builtins.bytes | None = ...,
        accountSignature: _builtins.bytes | None = ...,
        deviceSignature: _builtins.bytes | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["accountSignature", b"accountSignature", "accountSignatureKey", b"accountSignatureKey", "details", b"details", "deviceSignature", b"deviceSignature"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["accountSignature", b"accountSignature", "accountSignatureKey", b"accountSignatureKey", "details", b"details", "deviceSignature", b"deviceSignature"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ADVSignedDeviceIdentity: _TypeAlias = ADVSignedDeviceIdentity  # noqa: Y015

@_typing.final
class ADVSignedDeviceIdentityHMAC(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    DETAILS_FIELD_NUMBER: _builtins.int
    HMAC_FIELD_NUMBER: _builtins.int
    ACCOUNTTYPE_FIELD_NUMBER: _builtins.int
    details: _builtins.bytes
    HMAC: _builtins.bytes
    accountType: Global___ADVEncryptionType.ValueType
    def __init__(
        self,
        *,
        details: _builtins.bytes | None = ...,
        HMAC: _builtins.bytes | None = ...,
        accountType: Global___ADVEncryptionType.ValueType | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["HMAC", b"HMAC", "accountType", b"accountType", "details", b"details"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["HMAC", b"HMAC", "accountType", b"accountType", "details", b"details"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ADVSignedDeviceIdentityHMAC: _TypeAlias = ADVSignedDeviceIdentityHMAC  # noqa: Y015
