# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from .RhoTypes_pb2 import (
    PCost as RhoTypes_pb2___PCost,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer as google___protobuf___internal___containers___RepeatedScalarFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
    Union as typing___Union,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int
if sys.version_info < (3,):
    builtin___buffer = buffer
    builtin___unicode = unicode


class HasBlockRequestProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    hash = ... # type: builtin___bytes

    def __init__(self,
        *,
        hash : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> HasBlockRequestProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> HasBlockRequestProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"hash",b"hash"]) -> None: ...

class HasBlockProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    hash = ... # type: builtin___bytes

    def __init__(self,
        *,
        hash : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> HasBlockProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> HasBlockProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"hash",b"hash"]) -> None: ...

class BlockRequestProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    hash = ... # type: builtin___bytes

    def __init__(self,
        *,
        hash : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BlockRequestProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BlockRequestProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"hash",b"hash"]) -> None: ...

class ForkChoiceTipRequestProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    def __init__(self,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ForkChoiceTipRequestProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ForkChoiceTipRequestProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...

class ApprovedBlockCandidateProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    requiredSigs = ... # type: builtin___int

    @property
    def block(self) -> BlockMessageProto: ...

    def __init__(self,
        *,
        block : typing___Optional[BlockMessageProto] = None,
        requiredSigs : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ApprovedBlockCandidateProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ApprovedBlockCandidateProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"block",b"block"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"block",b"block",u"requiredSigs",b"requiredSigs"]) -> None: ...

class UnapprovedBlockProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    timestamp = ... # type: builtin___int
    duration = ... # type: builtin___int

    @property
    def candidate(self) -> ApprovedBlockCandidateProto: ...

    def __init__(self,
        *,
        candidate : typing___Optional[ApprovedBlockCandidateProto] = None,
        timestamp : typing___Optional[builtin___int] = None,
        duration : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> UnapprovedBlockProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> UnapprovedBlockProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate",u"duration",b"duration",u"timestamp",b"timestamp"]) -> None: ...

class Signature(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    publicKey = ... # type: builtin___bytes
    algorithm = ... # type: typing___Text
    sig = ... # type: builtin___bytes

    def __init__(self,
        *,
        publicKey : typing___Optional[builtin___bytes] = None,
        algorithm : typing___Optional[typing___Text] = None,
        sig : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> Signature: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> Signature: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"algorithm",b"algorithm",u"publicKey",b"publicKey",u"sig",b"sig"]) -> None: ...

class BlockApprovalProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def candidate(self) -> ApprovedBlockCandidateProto: ...

    @property
    def sig(self) -> Signature: ...

    def __init__(self,
        *,
        candidate : typing___Optional[ApprovedBlockCandidateProto] = None,
        sig : typing___Optional[Signature] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BlockApprovalProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BlockApprovalProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate",u"sig",b"sig"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate",u"sig",b"sig"]) -> None: ...

class ApprovedBlockProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def candidate(self) -> ApprovedBlockCandidateProto: ...

    @property
    def sigs(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[Signature]: ...

    def __init__(self,
        *,
        candidate : typing___Optional[ApprovedBlockCandidateProto] = None,
        sigs : typing___Optional[typing___Iterable[Signature]] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ApprovedBlockProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ApprovedBlockProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"candidate",b"candidate",u"sigs",b"sigs"]) -> None: ...

class ApprovedBlockRequestProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    identifier = ... # type: typing___Text

    def __init__(self,
        *,
        identifier : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ApprovedBlockRequestProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ApprovedBlockRequestProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"identifier",b"identifier"]) -> None: ...

class NoApprovedBlockAvailableProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    identifier = ... # type: typing___Text
    nodeIdentifer = ... # type: typing___Text

    def __init__(self,
        *,
        identifier : typing___Optional[typing___Text] = None,
        nodeIdentifer : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> NoApprovedBlockAvailableProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> NoApprovedBlockAvailableProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"identifier",b"identifier",u"nodeIdentifer",b"nodeIdentifer"]) -> None: ...

class BlockMessageProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    blockHash = ... # type: builtin___bytes
    sender = ... # type: builtin___bytes
    seqNum = ... # type: builtin___int
    sig = ... # type: builtin___bytes
    sigAlgorithm = ... # type: typing___Text
    shardId = ... # type: typing___Text
    extraBytes = ... # type: builtin___bytes

    @property
    def header(self) -> HeaderProto: ...

    @property
    def body(self) -> BodyProto: ...

    @property
    def justifications(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[JustificationProto]: ...

    def __init__(self,
        *,
        blockHash : typing___Optional[builtin___bytes] = None,
        header : typing___Optional[HeaderProto] = None,
        body : typing___Optional[BodyProto] = None,
        justifications : typing___Optional[typing___Iterable[JustificationProto]] = None,
        sender : typing___Optional[builtin___bytes] = None,
        seqNum : typing___Optional[builtin___int] = None,
        sig : typing___Optional[builtin___bytes] = None,
        sigAlgorithm : typing___Optional[typing___Text] = None,
        shardId : typing___Optional[typing___Text] = None,
        extraBytes : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BlockMessageProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BlockMessageProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"body",b"body",u"header",b"header"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"blockHash",b"blockHash",u"body",b"body",u"extraBytes",b"extraBytes",u"header",b"header",u"justifications",b"justifications",u"sender",b"sender",u"seqNum",b"seqNum",u"shardId",b"shardId",u"sig",b"sig",u"sigAlgorithm",b"sigAlgorithm"]) -> None: ...

class BlockHashMessageProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    hash = ... # type: builtin___bytes
    blockCreator = ... # type: builtin___bytes

    def __init__(self,
        *,
        hash : typing___Optional[builtin___bytes] = None,
        blockCreator : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BlockHashMessageProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BlockHashMessageProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"blockCreator",b"blockCreator",u"hash",b"hash"]) -> None: ...

class BlockMetadataInternal(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    blockHash = ... # type: builtin___bytes
    parents = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[builtin___bytes]
    sender = ... # type: builtin___bytes
    blockNum = ... # type: builtin___int
    seqNum = ... # type: builtin___int
    invalid = ... # type: builtin___bool

    @property
    def justifications(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[JustificationProto]: ...

    @property
    def bonds(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[BondProto]: ...

    def __init__(self,
        *,
        blockHash : typing___Optional[builtin___bytes] = None,
        parents : typing___Optional[typing___Iterable[builtin___bytes]] = None,
        sender : typing___Optional[builtin___bytes] = None,
        justifications : typing___Optional[typing___Iterable[JustificationProto]] = None,
        bonds : typing___Optional[typing___Iterable[BondProto]] = None,
        blockNum : typing___Optional[builtin___int] = None,
        seqNum : typing___Optional[builtin___int] = None,
        invalid : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BlockMetadataInternal: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BlockMetadataInternal: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"blockHash",b"blockHash",u"blockNum",b"blockNum",u"bonds",b"bonds",u"invalid",b"invalid",u"justifications",b"justifications",u"parents",b"parents",u"sender",b"sender",u"seqNum",b"seqNum"]) -> None: ...

class HeaderProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    parentsHashList = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[builtin___bytes]
    timestamp = ... # type: builtin___int
    version = ... # type: builtin___int
    extraBytes = ... # type: builtin___bytes

    def __init__(self,
        *,
        parentsHashList : typing___Optional[typing___Iterable[builtin___bytes]] = None,
        timestamp : typing___Optional[builtin___int] = None,
        version : typing___Optional[builtin___int] = None,
        extraBytes : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> HeaderProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> HeaderProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"extraBytes",b"extraBytes",u"parentsHashList",b"parentsHashList",u"timestamp",b"timestamp",u"version",b"version"]) -> None: ...

class DeployDataProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    deployer = ... # type: builtin___bytes
    term = ... # type: typing___Text
    timestamp = ... # type: builtin___int
    sig = ... # type: builtin___bytes
    sigAlgorithm = ... # type: typing___Text
    phloPrice = ... # type: builtin___int
    phloLimit = ... # type: builtin___int
    validAfterBlockNumber = ... # type: builtin___int

    def __init__(self,
        *,
        deployer : typing___Optional[builtin___bytes] = None,
        term : typing___Optional[typing___Text] = None,
        timestamp : typing___Optional[builtin___int] = None,
        sig : typing___Optional[builtin___bytes] = None,
        sigAlgorithm : typing___Optional[typing___Text] = None,
        phloPrice : typing___Optional[builtin___int] = None,
        phloLimit : typing___Optional[builtin___int] = None,
        validAfterBlockNumber : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> DeployDataProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> DeployDataProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"deployer",b"deployer",u"phloLimit",b"phloLimit",u"phloPrice",b"phloPrice",u"sig",b"sig",u"sigAlgorithm",b"sigAlgorithm",u"term",b"term",u"timestamp",b"timestamp",u"validAfterBlockNumber",b"validAfterBlockNumber"]) -> None: ...

class ProcessedDeployProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    errored = ... # type: builtin___bool
    systemDeployError = ... # type: typing___Text

    @property
    def deploy(self) -> DeployDataProto: ...

    @property
    def cost(self) -> RhoTypes_pb2___PCost: ...

    @property
    def deployLog(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[EventProto]: ...

    def __init__(self,
        *,
        deploy : typing___Optional[DeployDataProto] = None,
        cost : typing___Optional[RhoTypes_pb2___PCost] = None,
        deployLog : typing___Optional[typing___Iterable[EventProto]] = None,
        errored : typing___Optional[builtin___bool] = None,
        systemDeployError : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ProcessedDeployProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ProcessedDeployProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"cost",b"cost",u"deploy",b"deploy"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"cost",b"cost",u"deploy",b"deploy",u"deployLog",b"deployLog",u"errored",b"errored",u"systemDeployError",b"systemDeployError"]) -> None: ...

class SlashSystemDeployDataProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    invalidBlockHash = ... # type: builtin___bytes
    issuerPublicKey = ... # type: builtin___bytes

    def __init__(self,
        *,
        invalidBlockHash : typing___Optional[builtin___bytes] = None,
        issuerPublicKey : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> SlashSystemDeployDataProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> SlashSystemDeployDataProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"invalidBlockHash",b"invalidBlockHash",u"issuerPublicKey",b"issuerPublicKey"]) -> None: ...

class CloseBlockSystemDeployDataProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    def __init__(self,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> CloseBlockSystemDeployDataProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> CloseBlockSystemDeployDataProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...

class SystemDeployDataProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def slashSystemDeploy(self) -> SlashSystemDeployDataProto: ...

    @property
    def closeBlockSystemDeploy(self) -> CloseBlockSystemDeployDataProto: ...

    def __init__(self,
        *,
        slashSystemDeploy : typing___Optional[SlashSystemDeployDataProto] = None,
        closeBlockSystemDeploy : typing___Optional[CloseBlockSystemDeployDataProto] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> SystemDeployDataProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> SystemDeployDataProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"closeBlockSystemDeploy",b"closeBlockSystemDeploy",u"slashSystemDeploy",b"slashSystemDeploy",u"systemDeploy",b"systemDeploy"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"closeBlockSystemDeploy",b"closeBlockSystemDeploy",u"slashSystemDeploy",b"slashSystemDeploy",u"systemDeploy",b"systemDeploy"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"systemDeploy",b"systemDeploy"]) -> typing_extensions___Literal["slashSystemDeploy","closeBlockSystemDeploy"]: ...

class ProcessedSystemDeployProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    errorMsg = ... # type: typing___Text

    @property
    def systemDeploy(self) -> SystemDeployDataProto: ...

    @property
    def deployLog(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[EventProto]: ...

    def __init__(self,
        *,
        systemDeploy : typing___Optional[SystemDeployDataProto] = None,
        deployLog : typing___Optional[typing___Iterable[EventProto]] = None,
        errorMsg : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ProcessedSystemDeployProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ProcessedSystemDeployProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"systemDeploy",b"systemDeploy"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"deployLog",b"deployLog",u"errorMsg",b"errorMsg",u"systemDeploy",b"systemDeploy"]) -> None: ...

class BodyProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    extraBytes = ... # type: builtin___bytes

    @property
    def state(self) -> RChainStateProto: ...

    @property
    def deploys(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ProcessedDeployProto]: ...

    @property
    def systemDeploys(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ProcessedSystemDeployProto]: ...

    def __init__(self,
        *,
        state : typing___Optional[RChainStateProto] = None,
        deploys : typing___Optional[typing___Iterable[ProcessedDeployProto]] = None,
        systemDeploys : typing___Optional[typing___Iterable[ProcessedSystemDeployProto]] = None,
        extraBytes : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BodyProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BodyProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"state",b"state"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"deploys",b"deploys",u"extraBytes",b"extraBytes",u"state",b"state",u"systemDeploys",b"systemDeploys"]) -> None: ...

class JustificationProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    validator = ... # type: builtin___bytes
    latestBlockHash = ... # type: builtin___bytes

    def __init__(self,
        *,
        validator : typing___Optional[builtin___bytes] = None,
        latestBlockHash : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> JustificationProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> JustificationProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"latestBlockHash",b"latestBlockHash",u"validator",b"validator"]) -> None: ...

class RChainStateProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    preStateHash = ... # type: builtin___bytes
    postStateHash = ... # type: builtin___bytes
    blockNumber = ... # type: builtin___int

    @property
    def bonds(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[BondProto]: ...

    def __init__(self,
        *,
        preStateHash : typing___Optional[builtin___bytes] = None,
        postStateHash : typing___Optional[builtin___bytes] = None,
        bonds : typing___Optional[typing___Iterable[BondProto]] = None,
        blockNumber : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> RChainStateProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> RChainStateProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"blockNumber",b"blockNumber",u"bonds",b"bonds",u"postStateHash",b"postStateHash",u"preStateHash",b"preStateHash"]) -> None: ...

class EventProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def produce(self) -> ProduceEventProto: ...

    @property
    def consume(self) -> ConsumeEventProto: ...

    @property
    def comm(self) -> CommEventProto: ...

    def __init__(self,
        *,
        produce : typing___Optional[ProduceEventProto] = None,
        consume : typing___Optional[ConsumeEventProto] = None,
        comm : typing___Optional[CommEventProto] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> EventProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> EventProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"comm",b"comm",u"consume",b"consume",u"event_instance",b"event_instance",u"produce",b"produce"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"comm",b"comm",u"consume",b"consume",u"event_instance",b"event_instance",u"produce",b"produce"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"event_instance",b"event_instance"]) -> typing_extensions___Literal["produce","consume","comm"]: ...

class ProduceEventProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    channelsHash = ... # type: builtin___bytes
    hash = ... # type: builtin___bytes
    persistent = ... # type: builtin___bool
    timesRepeated = ... # type: builtin___int

    def __init__(self,
        *,
        channelsHash : typing___Optional[builtin___bytes] = None,
        hash : typing___Optional[builtin___bytes] = None,
        persistent : typing___Optional[builtin___bool] = None,
        timesRepeated : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ProduceEventProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ProduceEventProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"channelsHash",b"channelsHash",u"hash",b"hash",u"persistent",b"persistent",u"timesRepeated",b"timesRepeated"]) -> None: ...

class ConsumeEventProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    channelsHashes = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[builtin___bytes]
    hash = ... # type: builtin___bytes
    persistent = ... # type: builtin___bool

    def __init__(self,
        *,
        channelsHashes : typing___Optional[typing___Iterable[builtin___bytes]] = None,
        hash : typing___Optional[builtin___bytes] = None,
        persistent : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ConsumeEventProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ConsumeEventProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"channelsHashes",b"channelsHashes",u"hash",b"hash",u"persistent",b"persistent"]) -> None: ...

class CommEventProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def consume(self) -> ConsumeEventProto: ...

    @property
    def produces(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ProduceEventProto]: ...

    @property
    def peeks(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[PeekProto]: ...

    def __init__(self,
        *,
        consume : typing___Optional[ConsumeEventProto] = None,
        produces : typing___Optional[typing___Iterable[ProduceEventProto]] = None,
        peeks : typing___Optional[typing___Iterable[PeekProto]] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> CommEventProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> CommEventProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"consume",b"consume"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"consume",b"consume",u"peeks",b"peeks",u"produces",b"produces"]) -> None: ...

class PeekProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    channelIndex = ... # type: builtin___int

    def __init__(self,
        *,
        channelIndex : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> PeekProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> PeekProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"channelIndex",b"channelIndex"]) -> None: ...

class BondProto(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    validator = ... # type: builtin___bytes
    stake = ... # type: builtin___int

    def __init__(self,
        *,
        validator : typing___Optional[builtin___bytes] = None,
        stake : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> BondProto: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> BondProto: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"stake",b"stake",u"validator",b"validator"]) -> None: ...
