"""
@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
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

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

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

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

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

        APPLICATIONDATA_FIELD_NUMBER: _builtins.int
        SIGNAL_FIELD_NUMBER: _builtins.int
        @_builtins.property
        def applicationData(self) -> Global___MultiDevice.ApplicationData: ...
        @_builtins.property
        def signal(self) -> Global___MultiDevice.Signal: ...
        def __init__(
            self,
            *,
            applicationData: Global___MultiDevice.ApplicationData | None = ...,
            signal: Global___MultiDevice.Signal | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["applicationData", b"applicationData", "payload", b"payload", "signal", b"signal"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["applicationData", b"applicationData", "payload", b"payload", "signal", b"signal"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType_payload: _TypeAlias = _typing.Literal["applicationData", "signal"]  # noqa: Y015
        _WhichOneofArgType_payload: _TypeAlias = _typing.Literal["payload", b"payload"]  # noqa: Y015
        def WhichOneof(self, oneof_group: _WhichOneofArgType_payload) -> _WhichOneofReturnType_payload | None: ...

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

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

            KEYIDS_FIELD_NUMBER: _builtins.int
            @_builtins.property
            def keyIDs(self) -> _containers.RepeatedCompositeFieldContainer[Global___MultiDevice.ApplicationData.AppStateSyncKeyId]: ...
            def __init__(
                self,
                *,
                keyIDs: _abc.Iterable[Global___MultiDevice.ApplicationData.AppStateSyncKeyId] | None = ...,
            ) -> None: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["keyIDs", b"keyIDs"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

            KEYS_FIELD_NUMBER: _builtins.int
            @_builtins.property
            def keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___MultiDevice.ApplicationData.AppStateSyncKey]: ...
            def __init__(
                self,
                *,
                keys: _abc.Iterable[Global___MultiDevice.ApplicationData.AppStateSyncKey] | None = ...,
            ) -> None: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

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

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

                KEYDATA_FIELD_NUMBER: _builtins.int
                FINGERPRINT_FIELD_NUMBER: _builtins.int
                TIMESTAMP_FIELD_NUMBER: _builtins.int
                keyData: _builtins.bytes
                timestamp: _builtins.int
                @_builtins.property
                def fingerprint(self) -> Global___MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyData.AppStateSyncKeyFingerprint: ...
                def __init__(
                    self,
                    *,
                    keyData: _builtins.bytes | None = ...,
                    fingerprint: Global___MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyData.AppStateSyncKeyFingerprint | None = ...,
                    timestamp: _builtins.int | None = ...,
                ) -> None: ...
                _HasFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"]  # noqa: Y015
                def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
                _ClearFieldArgType: _TypeAlias = _typing.Literal["fingerprint", b"fingerprint", "keyData", b"keyData", "timestamp", b"timestamp"]  # noqa: Y015
                def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

            KEYID_FIELD_NUMBER: _builtins.int
            KEYDATA_FIELD_NUMBER: _builtins.int
            @_builtins.property
            def keyID(self) -> Global___MultiDevice.ApplicationData.AppStateSyncKeyId: ...
            @_builtins.property
            def keyData(self) -> Global___MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyData: ...
            def __init__(
                self,
                *,
                keyID: Global___MultiDevice.ApplicationData.AppStateSyncKeyId | None = ...,
                keyData: Global___MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyData | None = ...,
            ) -> None: ...
            _HasFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyID", b"keyID"]  # noqa: Y015
            def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["keyData", b"keyData", "keyID", b"keyID"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

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

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

        APPSTATESYNCKEYSHARE_FIELD_NUMBER: _builtins.int
        APPSTATESYNCKEYREQUEST_FIELD_NUMBER: _builtins.int
        @_builtins.property
        def appStateSyncKeyShare(self) -> Global___MultiDevice.ApplicationData.AppStateSyncKeyShareMessage: ...
        @_builtins.property
        def appStateSyncKeyRequest(self) -> Global___MultiDevice.ApplicationData.AppStateSyncKeyRequestMessage: ...
        def __init__(
            self,
            *,
            appStateSyncKeyShare: Global___MultiDevice.ApplicationData.AppStateSyncKeyShareMessage | None = ...,
            appStateSyncKeyRequest: Global___MultiDevice.ApplicationData.AppStateSyncKeyRequestMessage | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "applicationData", b"applicationData"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["appStateSyncKeyRequest", b"appStateSyncKeyRequest", "appStateSyncKeyShare", b"appStateSyncKeyShare", "applicationData", b"applicationData"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType_applicationData: _TypeAlias = _typing.Literal["appStateSyncKeyShare", "appStateSyncKeyRequest"]  # noqa: Y015
        _WhichOneofArgType_applicationData: _TypeAlias = _typing.Literal["applicationData", b"applicationData"]  # noqa: Y015
        def WhichOneof(self, oneof_group: _WhichOneofArgType_applicationData) -> _WhichOneofReturnType_applicationData | None: ...

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

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

    PAYLOAD_FIELD_NUMBER: _builtins.int
    METADATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def payload(self) -> Global___MultiDevice.Payload: ...
    @_builtins.property
    def metadata(self) -> Global___MultiDevice.Metadata: ...
    def __init__(
        self,
        *,
        payload: Global___MultiDevice.Payload | None = ...,
        metadata: Global___MultiDevice.Metadata | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "payload", b"payload"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "payload", b"payload"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___MultiDevice: _TypeAlias = MultiDevice  # noqa: Y015
