"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

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

class Proof(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TOTAL_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    LEAF_HASH_FIELD_NUMBER: builtins.int
    AUNTS_FIELD_NUMBER: builtins.int
    total: builtins.int = ...
    index: builtins.int = ...
    leaf_hash: builtins.bytes = ...

    @property
    def aunts(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...

    def __init__(self,
        *,
        total : builtins.int = ...,
        index : builtins.int = ...,
        leaf_hash : builtins.bytes = ...,
        aunts : typing.Optional[typing.Iterable[builtins.bytes]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"aunts",b"aunts",u"index",b"index",u"leaf_hash",b"leaf_hash",u"total",b"total"]) -> None: ...
global___Proof = Proof

class ValueOp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    KEY_FIELD_NUMBER: builtins.int
    PROOF_FIELD_NUMBER: builtins.int
    key: builtins.bytes = ...

    @property
    def proof(self) -> global___Proof: ...

    def __init__(self,
        *,
        key : builtins.bytes = ...,
        proof : typing.Optional[global___Proof] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"proof",b"proof"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"proof",b"proof"]) -> None: ...
global___ValueOp = ValueOp

class DominoOp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    KEY_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    OUTPUT_FIELD_NUMBER: builtins.int
    key: typing.Text = ...
    input: typing.Text = ...
    output: typing.Text = ...

    def __init__(self,
        *,
        key : typing.Text = ...,
        input : typing.Text = ...,
        output : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"input",b"input",u"key",b"key",u"output",b"output"]) -> None: ...
global___DominoOp = DominoOp

class ProofOp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TYPE_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    type: typing.Text = ...
    key: builtins.bytes = ...
    data: builtins.bytes = ...

    def __init__(self,
        *,
        type : typing.Text = ...,
        key : builtins.bytes = ...,
        data : builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"key",b"key",u"type",b"type"]) -> None: ...
global___ProofOp = ProofOp

class ProofOps(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    OPS_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        ops : typing.Optional[typing.Iterable[global___ProofOp]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"ops",b"ops"]) -> None: ...
global___ProofOps = ProofOps
