"""
@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.message
import legacy_chain_properties_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class pow2_input(google.protobuf.message.Message):
    """Description https://gitlab.syncad.com/hive/hive/-/blob/develop/doc/devs/operations/30_pow2.md?ref_type=heads"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKER_ACCOUNT_FIELD_NUMBER: builtins.int
    PREV_BLOCK_FIELD_NUMBER: builtins.int
    NONCE_FIELD_NUMBER: builtins.int
    worker_account: builtins.str
    prev_block: builtins.str
    nonce: builtins.int
    def __init__(
        self,
        *,
        worker_account: builtins.str | None = ...,
        prev_block: builtins.str | None = ...,
        nonce: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["nonce", b"nonce", "prev_block", b"prev_block", "worker_account", b"worker_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["nonce", b"nonce", "prev_block", b"prev_block", "worker_account", b"worker_account"]) -> None: ...

global___pow2_input = pow2_input

@typing_extensions.final
class pow2_pow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INPUT_FIELD_NUMBER: builtins.int
    POW_SUMMARY_FIELD_NUMBER: builtins.int
    @property
    def input(self) -> global___pow2_input: ...
    pow_summary: builtins.int
    def __init__(
        self,
        *,
        input: global___pow2_input | None = ...,
        pow_summary: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input", "pow_summary", b"pow_summary"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["input", b"input", "pow_summary", b"pow_summary"]) -> None: ...

global___pow2_pow = pow2_pow

@typing_extensions.final
class equihash_proof(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    N_FIELD_NUMBER: builtins.int
    K_FIELD_NUMBER: builtins.int
    SEED_FIELD_NUMBER: builtins.int
    INPUTS_FIELD_NUMBER: builtins.int
    n: builtins.int
    k: builtins.int
    seed: builtins.str
    @property
    def inputs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        n: builtins.int | None = ...,
        k: builtins.int | None = ...,
        seed: builtins.str | None = ...,
        inputs: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["k", b"k", "n", b"n", "seed", b"seed"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["inputs", b"inputs", "k", b"k", "n", b"n", "seed", b"seed"]) -> None: ...

global___equihash_proof = equihash_proof

@typing_extensions.final
class equihash_pow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INPUT_FIELD_NUMBER: builtins.int
    PROOF_FIELD_NUMBER: builtins.int
    PREV_BLOCK_FIELD_NUMBER: builtins.int
    POW_SUMMARY_FIELD_NUMBER: builtins.int
    @property
    def input(self) -> global___pow2_input: ...
    @property
    def proof(self) -> global___equihash_proof: ...
    prev_block: builtins.str
    pow_summary: builtins.int
    def __init__(
        self,
        *,
        input: global___pow2_input | None = ...,
        proof: global___equihash_proof | None = ...,
        prev_block: builtins.str | None = ...,
        pow_summary: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["input", b"input", "pow_summary", b"pow_summary", "prev_block", b"prev_block", "proof", b"proof"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["input", b"input", "pow_summary", b"pow_summary", "prev_block", b"prev_block", "proof", b"proof"]) -> None: ...

global___equihash_pow = equihash_pow

@typing_extensions.final
class pow2_work(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POW2_FIELD_NUMBER: builtins.int
    EQUIHASH_POW_FIELD_NUMBER: builtins.int
    @property
    def pow2(self) -> global___pow2_pow: ...
    @property
    def equihash_pow(self) -> global___equihash_pow: ...
    def __init__(
        self,
        *,
        pow2: global___pow2_pow | None = ...,
        equihash_pow: global___equihash_pow | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["equihash_pow", b"equihash_pow", "pow2", b"pow2", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["equihash_pow", b"equihash_pow", "pow2", b"pow2", "value", b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["pow2", "equihash_pow"] | None: ...

global___pow2_work = pow2_work

@typing_extensions.final
class pow2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORK_FIELD_NUMBER: builtins.int
    NEW_OWNER_KEY_FIELD_NUMBER: builtins.int
    PROPS_FIELD_NUMBER: builtins.int
    @property
    def work(self) -> global___pow2_work: ...
    new_owner_key: builtins.str
    @property
    def props(self) -> legacy_chain_properties_pb2.legacy_chain_properties: ...
    def __init__(
        self,
        *,
        work: global___pow2_work | None = ...,
        new_owner_key: builtins.str | None = ...,
        props: legacy_chain_properties_pb2.legacy_chain_properties | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["new_owner_key", b"new_owner_key", "props", b"props", "work", b"work"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["new_owner_key", b"new_owner_key", "props", b"props", "work", b"work"]) -> None: ...

global___pow2 = pow2
