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

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

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

    class _SyncdOperationEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[SyncdMutation._SyncdOperation.ValueType], _builtins.type):
        DESCRIPTOR: _descriptor.EnumDescriptor
        SET: SyncdMutation._SyncdOperation.ValueType  # 0
        REMOVE: SyncdMutation._SyncdOperation.ValueType  # 1

    class SyncdOperation(_SyncdOperation, metaclass=_SyncdOperationEnumTypeWrapper): ...
    SET: SyncdMutation.SyncdOperation.ValueType  # 0
    REMOVE: SyncdMutation.SyncdOperation.ValueType  # 1

    OPERATION_FIELD_NUMBER: _builtins.int
    RECORD_FIELD_NUMBER: _builtins.int
    operation: Global___SyncdMutation.SyncdOperation.ValueType
    @_builtins.property
    def record(self) -> Global___SyncdRecord: ...
    def __init__(
        self,
        *,
        operation: Global___SyncdMutation.SyncdOperation.ValueType | None = ...,
        record: Global___SyncdRecord | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["operation", b"operation", "record", b"record"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["operation", b"operation", "record", b"record"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SyncdMutation: _TypeAlias = SyncdMutation  # noqa: Y015

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

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

Global___SyncdVersion: _TypeAlias = SyncdVersion  # noqa: Y015

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

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

Global___ExitCode: _TypeAlias = ExitCode  # noqa: Y015

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

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

Global___SyncdIndex: _TypeAlias = SyncdIndex  # noqa: Y015

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

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

Global___SyncdValue: _TypeAlias = SyncdValue  # noqa: Y015

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

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

Global___KeyId: _TypeAlias = KeyId  # noqa: Y015

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

    INDEX_FIELD_NUMBER: _builtins.int
    VALUE_FIELD_NUMBER: _builtins.int
    KEYID_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def index(self) -> Global___SyncdIndex: ...
    @_builtins.property
    def value(self) -> Global___SyncdValue: ...
    @_builtins.property
    def keyID(self) -> Global___KeyId: ...
    def __init__(
        self,
        *,
        index: Global___SyncdIndex | None = ...,
        value: Global___SyncdValue | None = ...,
        keyID: Global___KeyId | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["index", b"index", "keyID", b"keyID", "value", b"value"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["index", b"index", "keyID", b"keyID", "value", b"value"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SyncdRecord: _TypeAlias = SyncdRecord  # noqa: Y015

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

    MEDIAKEY_FIELD_NUMBER: _builtins.int
    DIRECTPATH_FIELD_NUMBER: _builtins.int
    HANDLE_FIELD_NUMBER: _builtins.int
    FILESIZEBYTES_FIELD_NUMBER: _builtins.int
    FILESHA256_FIELD_NUMBER: _builtins.int
    FILEENCSHA256_FIELD_NUMBER: _builtins.int
    mediaKey: _builtins.bytes
    directPath: _builtins.str
    handle: _builtins.str
    fileSizeBytes: _builtins.int
    fileSHA256: _builtins.bytes
    fileEncSHA256: _builtins.bytes
    def __init__(
        self,
        *,
        mediaKey: _builtins.bytes | None = ...,
        directPath: _builtins.str | None = ...,
        handle: _builtins.str | None = ...,
        fileSizeBytes: _builtins.int | None = ...,
        fileSHA256: _builtins.bytes | None = ...,
        fileEncSHA256: _builtins.bytes | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSHA256", b"fileEncSHA256", "fileSHA256", b"fileSHA256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["directPath", b"directPath", "fileEncSHA256", b"fileEncSHA256", "fileSHA256", b"fileSHA256", "fileSizeBytes", b"fileSizeBytes", "handle", b"handle", "mediaKey", b"mediaKey"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___ExternalBlobReference: _TypeAlias = ExternalBlobReference  # noqa: Y015

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

    VERSION_FIELD_NUMBER: _builtins.int
    RECORDS_FIELD_NUMBER: _builtins.int
    MAC_FIELD_NUMBER: _builtins.int
    KEYID_FIELD_NUMBER: _builtins.int
    mac: _builtins.bytes
    @_builtins.property
    def version(self) -> Global___SyncdVersion: ...
    @_builtins.property
    def records(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncdRecord]: ...
    @_builtins.property
    def keyID(self) -> Global___KeyId: ...
    def __init__(
        self,
        *,
        version: Global___SyncdVersion | None = ...,
        records: _abc.Iterable[Global___SyncdRecord] | None = ...,
        mac: _builtins.bytes | None = ...,
        keyID: Global___KeyId | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["keyID", b"keyID", "mac", b"mac", "version", b"version"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["keyID", b"keyID", "mac", b"mac", "records", b"records", "version", b"version"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SyncdSnapshot: _TypeAlias = SyncdSnapshot  # noqa: Y015

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

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

Global___SyncdMutations: _TypeAlias = SyncdMutations  # noqa: Y015

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

    VERSION_FIELD_NUMBER: _builtins.int
    MUTATIONS_FIELD_NUMBER: _builtins.int
    EXTERNALMUTATIONS_FIELD_NUMBER: _builtins.int
    SNAPSHOTMAC_FIELD_NUMBER: _builtins.int
    PATCHMAC_FIELD_NUMBER: _builtins.int
    KEYID_FIELD_NUMBER: _builtins.int
    EXITCODE_FIELD_NUMBER: _builtins.int
    DEVICEINDEX_FIELD_NUMBER: _builtins.int
    CLIENTDEBUGDATA_FIELD_NUMBER: _builtins.int
    snapshotMAC: _builtins.bytes
    patchMAC: _builtins.bytes
    deviceIndex: _builtins.int
    clientDebugData: _builtins.bytes
    @_builtins.property
    def version(self) -> Global___SyncdVersion: ...
    @_builtins.property
    def mutations(self) -> _containers.RepeatedCompositeFieldContainer[Global___SyncdMutation]: ...
    @_builtins.property
    def externalMutations(self) -> Global___ExternalBlobReference: ...
    @_builtins.property
    def keyID(self) -> Global___KeyId: ...
    @_builtins.property
    def exitCode(self) -> Global___ExitCode: ...
    def __init__(
        self,
        *,
        version: Global___SyncdVersion | None = ...,
        mutations: _abc.Iterable[Global___SyncdMutation] | None = ...,
        externalMutations: Global___ExternalBlobReference | None = ...,
        snapshotMAC: _builtins.bytes | None = ...,
        patchMAC: _builtins.bytes | None = ...,
        keyID: Global___KeyId | None = ...,
        exitCode: Global___ExitCode | None = ...,
        deviceIndex: _builtins.int | None = ...,
        clientDebugData: _builtins.bytes | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["clientDebugData", b"clientDebugData", "deviceIndex", b"deviceIndex", "exitCode", b"exitCode", "externalMutations", b"externalMutations", "keyID", b"keyID", "patchMAC", b"patchMAC", "snapshotMAC", b"snapshotMAC", "version", b"version"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["clientDebugData", b"clientDebugData", "deviceIndex", b"deviceIndex", "exitCode", b"exitCode", "externalMutations", b"externalMutations", "keyID", b"keyID", "mutations", b"mutations", "patchMAC", b"patchMAC", "snapshotMAC", b"snapshotMAC", "version", b"version"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SyncdPatch: _TypeAlias = SyncdPatch  # noqa: Y015
