"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import tendermint.crypto.keys_pb2
import tendermint.crypto.proof_pb2
import tendermint.types.params_pb2
import tendermint.types.types_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _CheckTxType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _CheckTxTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CheckTxType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NEW: _CheckTxType.ValueType  # 0
    RECHECK: _CheckTxType.ValueType  # 1
class CheckTxType(_CheckTxType, metaclass=_CheckTxTypeEnumTypeWrapper):
    pass

NEW: CheckTxType.ValueType  # 0
RECHECK: CheckTxType.ValueType  # 1
global___CheckTxType = CheckTxType


class _EvidenceType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType
class _EvidenceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EvidenceType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN: _EvidenceType.ValueType  # 0
    DUPLICATE_VOTE: _EvidenceType.ValueType  # 1
    LIGHT_CLIENT_ATTACK: _EvidenceType.ValueType  # 2
class EvidenceType(_EvidenceType, metaclass=_EvidenceTypeEnumTypeWrapper):
    pass

UNKNOWN: EvidenceType.ValueType  # 0
DUPLICATE_VOTE: EvidenceType.ValueType  # 1
LIGHT_CLIENT_ATTACK: EvidenceType.ValueType  # 2
global___EvidenceType = EvidenceType


class Request(google.protobuf.message.Message):
    """This file is copied from http://github.com/tendermint/abci
    NOTE: When using custom types, mind the warnings.
    https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues

    ----------------------------------------
    Request types

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ECHO_FIELD_NUMBER: builtins.int
    FLUSH_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    SET_OPTION_FIELD_NUMBER: builtins.int
    INIT_CHAIN_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    BEGIN_BLOCK_FIELD_NUMBER: builtins.int
    CHECK_TX_FIELD_NUMBER: builtins.int
    DELIVER_TX_FIELD_NUMBER: builtins.int
    END_BLOCK_FIELD_NUMBER: builtins.int
    COMMIT_FIELD_NUMBER: builtins.int
    LIST_SNAPSHOTS_FIELD_NUMBER: builtins.int
    OFFER_SNAPSHOT_FIELD_NUMBER: builtins.int
    LOAD_SNAPSHOT_CHUNK_FIELD_NUMBER: builtins.int
    APPLY_SNAPSHOT_CHUNK_FIELD_NUMBER: builtins.int
    @property
    def echo(self) -> global___RequestEcho: ...
    @property
    def flush(self) -> global___RequestFlush: ...
    @property
    def info(self) -> global___RequestInfo: ...
    @property
    def set_option(self) -> global___RequestSetOption: ...
    @property
    def init_chain(self) -> global___RequestInitChain: ...
    @property
    def query(self) -> global___RequestQuery: ...
    @property
    def begin_block(self) -> global___RequestBeginBlock: ...
    @property
    def check_tx(self) -> global___RequestCheckTx: ...
    @property
    def deliver_tx(self) -> global___RequestDeliverTx: ...
    @property
    def end_block(self) -> global___RequestEndBlock: ...
    @property
    def commit(self) -> global___RequestCommit: ...
    @property
    def list_snapshots(self) -> global___RequestListSnapshots: ...
    @property
    def offer_snapshot(self) -> global___RequestOfferSnapshot: ...
    @property
    def load_snapshot_chunk(self) -> global___RequestLoadSnapshotChunk: ...
    @property
    def apply_snapshot_chunk(self) -> global___RequestApplySnapshotChunk: ...
    def __init__(self,
        *,
        echo: typing.Optional[global___RequestEcho] = ...,
        flush: typing.Optional[global___RequestFlush] = ...,
        info: typing.Optional[global___RequestInfo] = ...,
        set_option: typing.Optional[global___RequestSetOption] = ...,
        init_chain: typing.Optional[global___RequestInitChain] = ...,
        query: typing.Optional[global___RequestQuery] = ...,
        begin_block: typing.Optional[global___RequestBeginBlock] = ...,
        check_tx: typing.Optional[global___RequestCheckTx] = ...,
        deliver_tx: typing.Optional[global___RequestDeliverTx] = ...,
        end_block: typing.Optional[global___RequestEndBlock] = ...,
        commit: typing.Optional[global___RequestCommit] = ...,
        list_snapshots: typing.Optional[global___RequestListSnapshots] = ...,
        offer_snapshot: typing.Optional[global___RequestOfferSnapshot] = ...,
        load_snapshot_chunk: typing.Optional[global___RequestLoadSnapshotChunk] = ...,
        apply_snapshot_chunk: typing.Optional[global___RequestApplySnapshotChunk] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["apply_snapshot_chunk",b"apply_snapshot_chunk","begin_block",b"begin_block","check_tx",b"check_tx","commit",b"commit","deliver_tx",b"deliver_tx","echo",b"echo","end_block",b"end_block","flush",b"flush","info",b"info","init_chain",b"init_chain","list_snapshots",b"list_snapshots","load_snapshot_chunk",b"load_snapshot_chunk","offer_snapshot",b"offer_snapshot","query",b"query","set_option",b"set_option","value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["apply_snapshot_chunk",b"apply_snapshot_chunk","begin_block",b"begin_block","check_tx",b"check_tx","commit",b"commit","deliver_tx",b"deliver_tx","echo",b"echo","end_block",b"end_block","flush",b"flush","info",b"info","init_chain",b"init_chain","list_snapshots",b"list_snapshots","load_snapshot_chunk",b"load_snapshot_chunk","offer_snapshot",b"offer_snapshot","query",b"query","set_option",b"set_option","value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["echo","flush","info","set_option","init_chain","query","begin_block","check_tx","deliver_tx","end_block","commit","list_snapshots","offer_snapshot","load_snapshot_chunk","apply_snapshot_chunk"]]: ...
global___Request = Request

class RequestEcho(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_FIELD_NUMBER: builtins.int
    message: typing.Text
    def __init__(self,
        *,
        message: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message",b"message"]) -> None: ...
global___RequestEcho = RequestEcho

class RequestFlush(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___RequestFlush = RequestFlush

class RequestInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    VERSION_FIELD_NUMBER: builtins.int
    BLOCK_VERSION_FIELD_NUMBER: builtins.int
    P2P_VERSION_FIELD_NUMBER: builtins.int
    version: typing.Text
    block_version: builtins.int
    p2p_version: builtins.int
    def __init__(self,
        *,
        version: typing.Text = ...,
        block_version: builtins.int = ...,
        p2p_version: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["block_version",b"block_version","p2p_version",b"p2p_version","version",b"version"]) -> None: ...
global___RequestInfo = RequestInfo

class RequestSetOption(google.protobuf.message.Message):
    """nondeterministic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    key: typing.Text
    value: typing.Text
    def __init__(self,
        *,
        key: typing.Text = ...,
        value: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
global___RequestSetOption = RequestSetOption

class RequestInitChain(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TIME_FIELD_NUMBER: builtins.int
    CHAIN_ID_FIELD_NUMBER: builtins.int
    CONSENSUS_PARAMS_FIELD_NUMBER: builtins.int
    VALIDATORS_FIELD_NUMBER: builtins.int
    APP_STATE_BYTES_FIELD_NUMBER: builtins.int
    INITIAL_HEIGHT_FIELD_NUMBER: builtins.int
    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    chain_id: typing.Text
    @property
    def consensus_params(self) -> global___ConsensusParams: ...
    @property
    def validators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValidatorUpdate]: ...
    app_state_bytes: builtins.bytes
    initial_height: builtins.int
    def __init__(self,
        *,
        time: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        chain_id: typing.Text = ...,
        consensus_params: typing.Optional[global___ConsensusParams] = ...,
        validators: typing.Optional[typing.Iterable[global___ValidatorUpdate]] = ...,
        app_state_bytes: builtins.bytes = ...,
        initial_height: builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["consensus_params",b"consensus_params","time",b"time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["app_state_bytes",b"app_state_bytes","chain_id",b"chain_id","consensus_params",b"consensus_params","initial_height",b"initial_height","time",b"time","validators",b"validators"]) -> None: ...
global___RequestInitChain = RequestInitChain

class RequestQuery(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    DATA_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    HEIGHT_FIELD_NUMBER: builtins.int
    PROVE_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    path: typing.Text
    height: builtins.int
    prove: builtins.bool
    def __init__(self,
        *,
        data: builtins.bytes = ...,
        path: typing.Text = ...,
        height: builtins.int = ...,
        prove: builtins.bool = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["data",b"data","height",b"height","path",b"path","prove",b"prove"]) -> None: ...
global___RequestQuery = RequestQuery

class RequestBeginBlock(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HASH_FIELD_NUMBER: builtins.int
    HEADER_FIELD_NUMBER: builtins.int
    LAST_COMMIT_INFO_FIELD_NUMBER: builtins.int
    BYZANTINE_VALIDATORS_FIELD_NUMBER: builtins.int
    hash: builtins.bytes
    @property
    def header(self) -> tendermint.types.types_pb2.Header: ...
    @property
    def last_commit_info(self) -> global___LastCommitInfo: ...
    @property
    def byzantine_validators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Evidence]: ...
    def __init__(self,
        *,
        hash: builtins.bytes = ...,
        header: typing.Optional[tendermint.types.types_pb2.Header] = ...,
        last_commit_info: typing.Optional[global___LastCommitInfo] = ...,
        byzantine_validators: typing.Optional[typing.Iterable[global___Evidence]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["header",b"header","last_commit_info",b"last_commit_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["byzantine_validators",b"byzantine_validators","hash",b"hash","header",b"header","last_commit_info",b"last_commit_info"]) -> None: ...
global___RequestBeginBlock = RequestBeginBlock

class RequestCheckTx(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TX_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    tx: builtins.bytes
    type: global___CheckTxType.ValueType
    def __init__(self,
        *,
        tx: builtins.bytes = ...,
        type: global___CheckTxType.ValueType = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tx",b"tx","type",b"type"]) -> None: ...
global___RequestCheckTx = RequestCheckTx

class RequestDeliverTx(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TX_FIELD_NUMBER: builtins.int
    tx: builtins.bytes
    def __init__(self,
        *,
        tx: builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tx",b"tx"]) -> None: ...
global___RequestDeliverTx = RequestDeliverTx

class RequestEndBlock(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HEIGHT_FIELD_NUMBER: builtins.int
    height: builtins.int
    def __init__(self,
        *,
        height: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["height",b"height"]) -> None: ...
global___RequestEndBlock = RequestEndBlock

class RequestCommit(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___RequestCommit = RequestCommit

class RequestListSnapshots(google.protobuf.message.Message):
    """lists available snapshots"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___RequestListSnapshots = RequestListSnapshots

class RequestOfferSnapshot(google.protobuf.message.Message):
    """offers a snapshot to the application"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SNAPSHOT_FIELD_NUMBER: builtins.int
    APP_HASH_FIELD_NUMBER: builtins.int
    @property
    def snapshot(self) -> global___Snapshot:
        """snapshot offered by peers"""
        pass
    app_hash: builtins.bytes
    """light client-verified app hash for snapshot height"""

    def __init__(self,
        *,
        snapshot: typing.Optional[global___Snapshot] = ...,
        app_hash: builtins.bytes = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["snapshot",b"snapshot"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["app_hash",b"app_hash","snapshot",b"snapshot"]) -> None: ...
global___RequestOfferSnapshot = RequestOfferSnapshot

class RequestLoadSnapshotChunk(google.protobuf.message.Message):
    """loads a snapshot chunk"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HEIGHT_FIELD_NUMBER: builtins.int
    FORMAT_FIELD_NUMBER: builtins.int
    CHUNK_FIELD_NUMBER: builtins.int
    height: builtins.int
    format: builtins.int
    chunk: builtins.int
    def __init__(self,
        *,
        height: builtins.int = ...,
        format: builtins.int = ...,
        chunk: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chunk",b"chunk","format",b"format","height",b"height"]) -> None: ...
global___RequestLoadSnapshotChunk = RequestLoadSnapshotChunk

class RequestApplySnapshotChunk(google.protobuf.message.Message):
    """Applies a snapshot chunk"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    INDEX_FIELD_NUMBER: builtins.int
    CHUNK_FIELD_NUMBER: builtins.int
    SENDER_FIELD_NUMBER: builtins.int
    index: builtins.int
    chunk: builtins.bytes
    sender: typing.Text
    def __init__(self,
        *,
        index: builtins.int = ...,
        chunk: builtins.bytes = ...,
        sender: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chunk",b"chunk","index",b"index","sender",b"sender"]) -> None: ...
global___RequestApplySnapshotChunk = RequestApplySnapshotChunk

class Response(google.protobuf.message.Message):
    """----------------------------------------
    Response types

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EXCEPTION_FIELD_NUMBER: builtins.int
    ECHO_FIELD_NUMBER: builtins.int
    FLUSH_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    SET_OPTION_FIELD_NUMBER: builtins.int
    INIT_CHAIN_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    BEGIN_BLOCK_FIELD_NUMBER: builtins.int
    CHECK_TX_FIELD_NUMBER: builtins.int
    DELIVER_TX_FIELD_NUMBER: builtins.int
    END_BLOCK_FIELD_NUMBER: builtins.int
    COMMIT_FIELD_NUMBER: builtins.int
    LIST_SNAPSHOTS_FIELD_NUMBER: builtins.int
    OFFER_SNAPSHOT_FIELD_NUMBER: builtins.int
    LOAD_SNAPSHOT_CHUNK_FIELD_NUMBER: builtins.int
    APPLY_SNAPSHOT_CHUNK_FIELD_NUMBER: builtins.int
    @property
    def exception(self) -> global___ResponseException: ...
    @property
    def echo(self) -> global___ResponseEcho: ...
    @property
    def flush(self) -> global___ResponseFlush: ...
    @property
    def info(self) -> global___ResponseInfo: ...
    @property
    def set_option(self) -> global___ResponseSetOption: ...
    @property
    def init_chain(self) -> global___ResponseInitChain: ...
    @property
    def query(self) -> global___ResponseQuery: ...
    @property
    def begin_block(self) -> global___ResponseBeginBlock: ...
    @property
    def check_tx(self) -> global___ResponseCheckTx: ...
    @property
    def deliver_tx(self) -> global___ResponseDeliverTx: ...
    @property
    def end_block(self) -> global___ResponseEndBlock: ...
    @property
    def commit(self) -> global___ResponseCommit: ...
    @property
    def list_snapshots(self) -> global___ResponseListSnapshots: ...
    @property
    def offer_snapshot(self) -> global___ResponseOfferSnapshot: ...
    @property
    def load_snapshot_chunk(self) -> global___ResponseLoadSnapshotChunk: ...
    @property
    def apply_snapshot_chunk(self) -> global___ResponseApplySnapshotChunk: ...
    def __init__(self,
        *,
        exception: typing.Optional[global___ResponseException] = ...,
        echo: typing.Optional[global___ResponseEcho] = ...,
        flush: typing.Optional[global___ResponseFlush] = ...,
        info: typing.Optional[global___ResponseInfo] = ...,
        set_option: typing.Optional[global___ResponseSetOption] = ...,
        init_chain: typing.Optional[global___ResponseInitChain] = ...,
        query: typing.Optional[global___ResponseQuery] = ...,
        begin_block: typing.Optional[global___ResponseBeginBlock] = ...,
        check_tx: typing.Optional[global___ResponseCheckTx] = ...,
        deliver_tx: typing.Optional[global___ResponseDeliverTx] = ...,
        end_block: typing.Optional[global___ResponseEndBlock] = ...,
        commit: typing.Optional[global___ResponseCommit] = ...,
        list_snapshots: typing.Optional[global___ResponseListSnapshots] = ...,
        offer_snapshot: typing.Optional[global___ResponseOfferSnapshot] = ...,
        load_snapshot_chunk: typing.Optional[global___ResponseLoadSnapshotChunk] = ...,
        apply_snapshot_chunk: typing.Optional[global___ResponseApplySnapshotChunk] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["apply_snapshot_chunk",b"apply_snapshot_chunk","begin_block",b"begin_block","check_tx",b"check_tx","commit",b"commit","deliver_tx",b"deliver_tx","echo",b"echo","end_block",b"end_block","exception",b"exception","flush",b"flush","info",b"info","init_chain",b"init_chain","list_snapshots",b"list_snapshots","load_snapshot_chunk",b"load_snapshot_chunk","offer_snapshot",b"offer_snapshot","query",b"query","set_option",b"set_option","value",b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["apply_snapshot_chunk",b"apply_snapshot_chunk","begin_block",b"begin_block","check_tx",b"check_tx","commit",b"commit","deliver_tx",b"deliver_tx","echo",b"echo","end_block",b"end_block","exception",b"exception","flush",b"flush","info",b"info","init_chain",b"init_chain","list_snapshots",b"list_snapshots","load_snapshot_chunk",b"load_snapshot_chunk","offer_snapshot",b"offer_snapshot","query",b"query","set_option",b"set_option","value",b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["exception","echo","flush","info","set_option","init_chain","query","begin_block","check_tx","deliver_tx","end_block","commit","list_snapshots","offer_snapshot","load_snapshot_chunk","apply_snapshot_chunk"]]: ...
global___Response = Response

class ResponseException(google.protobuf.message.Message):
    """nondeterministic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ERROR_FIELD_NUMBER: builtins.int
    error: typing.Text
    def __init__(self,
        *,
        error: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["error",b"error"]) -> None: ...
global___ResponseException = ResponseException

class ResponseEcho(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MESSAGE_FIELD_NUMBER: builtins.int
    message: typing.Text
    def __init__(self,
        *,
        message: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message",b"message"]) -> None: ...
global___ResponseEcho = ResponseEcho

class ResponseFlush(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(self,
        ) -> None: ...
global___ResponseFlush = ResponseFlush

class ResponseInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    DATA_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    APP_VERSION_FIELD_NUMBER: builtins.int
    LAST_BLOCK_HEIGHT_FIELD_NUMBER: builtins.int
    LAST_BLOCK_APP_HASH_FIELD_NUMBER: builtins.int
    data: typing.Text
    version: typing.Text
    app_version: builtins.int
    last_block_height: builtins.int
    last_block_app_hash: builtins.bytes
    def __init__(self,
        *,
        data: typing.Text = ...,
        version: typing.Text = ...,
        app_version: builtins.int = ...,
        last_block_height: builtins.int = ...,
        last_block_app_hash: builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["app_version",b"app_version","data",b"data","last_block_app_hash",b"last_block_app_hash","last_block_height",b"last_block_height","version",b"version"]) -> None: ...
global___ResponseInfo = ResponseInfo

class ResponseSetOption(google.protobuf.message.Message):
    """nondeterministic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CODE_FIELD_NUMBER: builtins.int
    LOG_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    code: builtins.int
    log: typing.Text
    """bytes data = 2;"""

    info: typing.Text
    def __init__(self,
        *,
        code: builtins.int = ...,
        log: typing.Text = ...,
        info: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["code",b"code","info",b"info","log",b"log"]) -> None: ...
global___ResponseSetOption = ResponseSetOption

class ResponseInitChain(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CONSENSUS_PARAMS_FIELD_NUMBER: builtins.int
    VALIDATORS_FIELD_NUMBER: builtins.int
    APP_HASH_FIELD_NUMBER: builtins.int
    @property
    def consensus_params(self) -> global___ConsensusParams: ...
    @property
    def validators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValidatorUpdate]: ...
    app_hash: builtins.bytes
    def __init__(self,
        *,
        consensus_params: typing.Optional[global___ConsensusParams] = ...,
        validators: typing.Optional[typing.Iterable[global___ValidatorUpdate]] = ...,
        app_hash: builtins.bytes = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["consensus_params",b"consensus_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["app_hash",b"app_hash","consensus_params",b"consensus_params","validators",b"validators"]) -> None: ...
global___ResponseInitChain = ResponseInitChain

class ResponseQuery(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CODE_FIELD_NUMBER: builtins.int
    LOG_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    PROOF_OPS_FIELD_NUMBER: builtins.int
    HEIGHT_FIELD_NUMBER: builtins.int
    CODESPACE_FIELD_NUMBER: builtins.int
    code: builtins.int
    log: typing.Text
    """bytes data = 2; // use "value" instead.
    nondeterministic
    """

    info: typing.Text
    """nondeterministic"""

    index: builtins.int
    key: builtins.bytes
    value: builtins.bytes
    @property
    def proof_ops(self) -> tendermint.crypto.proof_pb2.ProofOps: ...
    height: builtins.int
    codespace: typing.Text
    def __init__(self,
        *,
        code: builtins.int = ...,
        log: typing.Text = ...,
        info: typing.Text = ...,
        index: builtins.int = ...,
        key: builtins.bytes = ...,
        value: builtins.bytes = ...,
        proof_ops: typing.Optional[tendermint.crypto.proof_pb2.ProofOps] = ...,
        height: builtins.int = ...,
        codespace: typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["proof_ops",b"proof_ops"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["code",b"code","codespace",b"codespace","height",b"height","index",b"index","info",b"info","key",b"key","log",b"log","proof_ops",b"proof_ops","value",b"value"]) -> None: ...
global___ResponseQuery = ResponseQuery

class ResponseBeginBlock(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EVENTS_FIELD_NUMBER: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    def __init__(self,
        *,
        events: typing.Optional[typing.Iterable[global___Event]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["events",b"events"]) -> None: ...
global___ResponseBeginBlock = ResponseBeginBlock

class ResponseCheckTx(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CODE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    LOG_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    GAS_WANTED_FIELD_NUMBER: builtins.int
    GAS_USED_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int
    CODESPACE_FIELD_NUMBER: builtins.int
    code: builtins.int
    data: builtins.bytes
    log: typing.Text
    """nondeterministic"""

    info: typing.Text
    """nondeterministic"""

    gas_wanted: builtins.int
    gas_used: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    codespace: typing.Text
    def __init__(self,
        *,
        code: builtins.int = ...,
        data: builtins.bytes = ...,
        log: typing.Text = ...,
        info: typing.Text = ...,
        gas_wanted: builtins.int = ...,
        gas_used: builtins.int = ...,
        events: typing.Optional[typing.Iterable[global___Event]] = ...,
        codespace: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["code",b"code","codespace",b"codespace","data",b"data","events",b"events","gas_used",b"gas_used","gas_wanted",b"gas_wanted","info",b"info","log",b"log"]) -> None: ...
global___ResponseCheckTx = ResponseCheckTx

class ResponseDeliverTx(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CODE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    LOG_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    GAS_WANTED_FIELD_NUMBER: builtins.int
    GAS_USED_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int
    CODESPACE_FIELD_NUMBER: builtins.int
    code: builtins.int
    data: builtins.bytes
    log: typing.Text
    """nondeterministic"""

    info: typing.Text
    """nondeterministic"""

    gas_wanted: builtins.int
    gas_used: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    codespace: typing.Text
    def __init__(self,
        *,
        code: builtins.int = ...,
        data: builtins.bytes = ...,
        log: typing.Text = ...,
        info: typing.Text = ...,
        gas_wanted: builtins.int = ...,
        gas_used: builtins.int = ...,
        events: typing.Optional[typing.Iterable[global___Event]] = ...,
        codespace: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["code",b"code","codespace",b"codespace","data",b"data","events",b"events","gas_used",b"gas_used","gas_wanted",b"gas_wanted","info",b"info","log",b"log"]) -> None: ...
global___ResponseDeliverTx = ResponseDeliverTx

class ResponseEndBlock(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    VALIDATOR_UPDATES_FIELD_NUMBER: builtins.int
    CONSENSUS_PARAM_UPDATES_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int
    @property
    def validator_updates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValidatorUpdate]: ...
    @property
    def consensus_param_updates(self) -> global___ConsensusParams: ...
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    def __init__(self,
        *,
        validator_updates: typing.Optional[typing.Iterable[global___ValidatorUpdate]] = ...,
        consensus_param_updates: typing.Optional[global___ConsensusParams] = ...,
        events: typing.Optional[typing.Iterable[global___Event]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["consensus_param_updates",b"consensus_param_updates"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["consensus_param_updates",b"consensus_param_updates","events",b"events","validator_updates",b"validator_updates"]) -> None: ...
global___ResponseEndBlock = ResponseEndBlock

class ResponseCommit(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    DATA_FIELD_NUMBER: builtins.int
    RETAIN_HEIGHT_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    """reserve 1"""

    retain_height: builtins.int
    def __init__(self,
        *,
        data: builtins.bytes = ...,
        retain_height: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["data",b"data","retain_height",b"retain_height"]) -> None: ...
global___ResponseCommit = ResponseCommit

class ResponseListSnapshots(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SNAPSHOTS_FIELD_NUMBER: builtins.int
    @property
    def snapshots(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Snapshot]: ...
    def __init__(self,
        *,
        snapshots: typing.Optional[typing.Iterable[global___Snapshot]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["snapshots",b"snapshots"]) -> None: ...
global___ResponseListSnapshots = ResponseListSnapshots

class ResponseOfferSnapshot(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    class _Result:
        ValueType = typing.NewType('ValueType', builtins.int)
        V: typing_extensions.TypeAlias = ValueType
    class _ResultEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ResponseOfferSnapshot._Result.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: ResponseOfferSnapshot._Result.ValueType  # 0
        """Unknown result, abort all snapshot restoration"""

        ACCEPT: ResponseOfferSnapshot._Result.ValueType  # 1
        """Snapshot accepted, apply chunks"""

        ABORT: ResponseOfferSnapshot._Result.ValueType  # 2
        """Abort all snapshot restoration"""

        REJECT: ResponseOfferSnapshot._Result.ValueType  # 3
        """Reject this specific snapshot, try others"""

        REJECT_FORMAT: ResponseOfferSnapshot._Result.ValueType  # 4
        """Reject all snapshots of this format, try others"""

        REJECT_SENDER: ResponseOfferSnapshot._Result.ValueType  # 5
        """Reject all snapshots from the sender(s), try others"""

    class Result(_Result, metaclass=_ResultEnumTypeWrapper):
        pass

    UNKNOWN: ResponseOfferSnapshot.Result.ValueType  # 0
    """Unknown result, abort all snapshot restoration"""

    ACCEPT: ResponseOfferSnapshot.Result.ValueType  # 1
    """Snapshot accepted, apply chunks"""

    ABORT: ResponseOfferSnapshot.Result.ValueType  # 2
    """Abort all snapshot restoration"""

    REJECT: ResponseOfferSnapshot.Result.ValueType  # 3
    """Reject this specific snapshot, try others"""

    REJECT_FORMAT: ResponseOfferSnapshot.Result.ValueType  # 4
    """Reject all snapshots of this format, try others"""

    REJECT_SENDER: ResponseOfferSnapshot.Result.ValueType  # 5
    """Reject all snapshots from the sender(s), try others"""


    RESULT_FIELD_NUMBER: builtins.int
    result: global___ResponseOfferSnapshot.Result.ValueType
    def __init__(self,
        *,
        result: global___ResponseOfferSnapshot.Result.ValueType = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result",b"result"]) -> None: ...
global___ResponseOfferSnapshot = ResponseOfferSnapshot

class ResponseLoadSnapshotChunk(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CHUNK_FIELD_NUMBER: builtins.int
    chunk: builtins.bytes
    def __init__(self,
        *,
        chunk: builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chunk",b"chunk"]) -> None: ...
global___ResponseLoadSnapshotChunk = ResponseLoadSnapshotChunk

class ResponseApplySnapshotChunk(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    class _Result:
        ValueType = typing.NewType('ValueType', builtins.int)
        V: typing_extensions.TypeAlias = ValueType
    class _ResultEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ResponseApplySnapshotChunk._Result.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: ResponseApplySnapshotChunk._Result.ValueType  # 0
        """Unknown result, abort all snapshot restoration"""

        ACCEPT: ResponseApplySnapshotChunk._Result.ValueType  # 1
        """Chunk successfully accepted"""

        ABORT: ResponseApplySnapshotChunk._Result.ValueType  # 2
        """Abort all snapshot restoration"""

        RETRY: ResponseApplySnapshotChunk._Result.ValueType  # 3
        """Retry chunk (combine with refetch and reject)"""

        RETRY_SNAPSHOT: ResponseApplySnapshotChunk._Result.ValueType  # 4
        """Retry snapshot (combine with refetch and reject)"""

        REJECT_SNAPSHOT: ResponseApplySnapshotChunk._Result.ValueType  # 5
        """Reject this snapshot, try others"""

    class Result(_Result, metaclass=_ResultEnumTypeWrapper):
        pass

    UNKNOWN: ResponseApplySnapshotChunk.Result.ValueType  # 0
    """Unknown result, abort all snapshot restoration"""

    ACCEPT: ResponseApplySnapshotChunk.Result.ValueType  # 1
    """Chunk successfully accepted"""

    ABORT: ResponseApplySnapshotChunk.Result.ValueType  # 2
    """Abort all snapshot restoration"""

    RETRY: ResponseApplySnapshotChunk.Result.ValueType  # 3
    """Retry chunk (combine with refetch and reject)"""

    RETRY_SNAPSHOT: ResponseApplySnapshotChunk.Result.ValueType  # 4
    """Retry snapshot (combine with refetch and reject)"""

    REJECT_SNAPSHOT: ResponseApplySnapshotChunk.Result.ValueType  # 5
    """Reject this snapshot, try others"""


    RESULT_FIELD_NUMBER: builtins.int
    REFETCH_CHUNKS_FIELD_NUMBER: builtins.int
    REJECT_SENDERS_FIELD_NUMBER: builtins.int
    result: global___ResponseApplySnapshotChunk.Result.ValueType
    @property
    def refetch_chunks(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """Chunks to refetch and reapply"""
        pass
    @property
    def reject_senders(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
        """Chunk senders to reject and ban"""
        pass
    def __init__(self,
        *,
        result: global___ResponseApplySnapshotChunk.Result.ValueType = ...,
        refetch_chunks: typing.Optional[typing.Iterable[builtins.int]] = ...,
        reject_senders: typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["refetch_chunks",b"refetch_chunks","reject_senders",b"reject_senders","result",b"result"]) -> None: ...
global___ResponseApplySnapshotChunk = ResponseApplySnapshotChunk

class ConsensusParams(google.protobuf.message.Message):
    """----------------------------------------
    Misc.

    ConsensusParams contains all consensus-relevant parameters
    that can be adjusted by the abci app
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    BLOCK_FIELD_NUMBER: builtins.int
    EVIDENCE_FIELD_NUMBER: builtins.int
    VALIDATOR_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    @property
    def block(self) -> global___BlockParams: ...
    @property
    def evidence(self) -> tendermint.types.params_pb2.EvidenceParams: ...
    @property
    def validator(self) -> tendermint.types.params_pb2.ValidatorParams: ...
    @property
    def version(self) -> tendermint.types.params_pb2.VersionParams: ...
    def __init__(self,
        *,
        block: typing.Optional[global___BlockParams] = ...,
        evidence: typing.Optional[tendermint.types.params_pb2.EvidenceParams] = ...,
        validator: typing.Optional[tendermint.types.params_pb2.ValidatorParams] = ...,
        version: typing.Optional[tendermint.types.params_pb2.VersionParams] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["block",b"block","evidence",b"evidence","validator",b"validator","version",b"version"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["block",b"block","evidence",b"evidence","validator",b"validator","version",b"version"]) -> None: ...
global___ConsensusParams = ConsensusParams

class BlockParams(google.protobuf.message.Message):
    """BlockParams contains limits on the block size."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    MAX_BYTES_FIELD_NUMBER: builtins.int
    MAX_GAS_FIELD_NUMBER: builtins.int
    max_bytes: builtins.int
    """Note: must be greater than 0"""

    max_gas: builtins.int
    """Note: must be greater or equal to -1"""

    def __init__(self,
        *,
        max_bytes: builtins.int = ...,
        max_gas: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_bytes",b"max_bytes","max_gas",b"max_gas"]) -> None: ...
global___BlockParams = BlockParams

class LastCommitInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ROUND_FIELD_NUMBER: builtins.int
    VOTES_FIELD_NUMBER: builtins.int
    round: builtins.int
    @property
    def votes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VoteInfo]: ...
    def __init__(self,
        *,
        round: builtins.int = ...,
        votes: typing.Optional[typing.Iterable[global___VoteInfo]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["round",b"round","votes",b"votes"]) -> None: ...
global___LastCommitInfo = LastCommitInfo

class Event(google.protobuf.message.Message):
    """Event allows application developers to attach additional information to
    ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
    Later, transactions may be queried using these events.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TYPE_FIELD_NUMBER: builtins.int
    ATTRIBUTES_FIELD_NUMBER: builtins.int
    type: typing.Text
    @property
    def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EventAttribute]: ...
    def __init__(self,
        *,
        type: typing.Text = ...,
        attributes: typing.Optional[typing.Iterable[global___EventAttribute]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["attributes",b"attributes","type",b"type"]) -> None: ...
global___Event = Event

class EventAttribute(google.protobuf.message.Message):
    """EventAttribute is a single key-value pair, associated with an event."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    key: builtins.bytes
    value: builtins.bytes
    index: builtins.bool
    """nondeterministic"""

    def __init__(self,
        *,
        key: builtins.bytes = ...,
        value: builtins.bytes = ...,
        index: builtins.bool = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["index",b"index","key",b"key","value",b"value"]) -> None: ...
global___EventAttribute = EventAttribute

class TxResult(google.protobuf.message.Message):
    """TxResult contains results of executing the transaction.

    One usage is indexing transaction results.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HEIGHT_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    TX_FIELD_NUMBER: builtins.int
    RESULT_FIELD_NUMBER: builtins.int
    height: builtins.int
    index: builtins.int
    tx: builtins.bytes
    @property
    def result(self) -> global___ResponseDeliverTx: ...
    def __init__(self,
        *,
        height: builtins.int = ...,
        index: builtins.int = ...,
        tx: builtins.bytes = ...,
        result: typing.Optional[global___ResponseDeliverTx] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["result",b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["height",b"height","index",b"index","result",b"result","tx",b"tx"]) -> None: ...
global___TxResult = TxResult

class Validator(google.protobuf.message.Message):
    """----------------------------------------
    Blockchain Types

    Validator
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ADDRESS_FIELD_NUMBER: builtins.int
    POWER_FIELD_NUMBER: builtins.int
    address: builtins.bytes
    """The first 20 bytes of SHA256(public key)"""

    power: builtins.int
    """PubKey pub_key = 2 [(gogoproto.nullable)=false];
    The voting power
    """

    def __init__(self,
        *,
        address: builtins.bytes = ...,
        power: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address",b"address","power",b"power"]) -> None: ...
global___Validator = Validator

class ValidatorUpdate(google.protobuf.message.Message):
    """ValidatorUpdate"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    PUB_KEY_FIELD_NUMBER: builtins.int
    POWER_FIELD_NUMBER: builtins.int
    @property
    def pub_key(self) -> tendermint.crypto.keys_pb2.PublicKey: ...
    power: builtins.int
    def __init__(self,
        *,
        pub_key: typing.Optional[tendermint.crypto.keys_pb2.PublicKey] = ...,
        power: builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pub_key",b"pub_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["power",b"power","pub_key",b"pub_key"]) -> None: ...
global___ValidatorUpdate = ValidatorUpdate

class VoteInfo(google.protobuf.message.Message):
    """VoteInfo"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    VALIDATOR_FIELD_NUMBER: builtins.int
    SIGNED_LAST_BLOCK_FIELD_NUMBER: builtins.int
    @property
    def validator(self) -> global___Validator: ...
    signed_last_block: builtins.bool
    def __init__(self,
        *,
        validator: typing.Optional[global___Validator] = ...,
        signed_last_block: builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["validator",b"validator"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["signed_last_block",b"signed_last_block","validator",b"validator"]) -> None: ...
global___VoteInfo = VoteInfo

class Evidence(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TYPE_FIELD_NUMBER: builtins.int
    VALIDATOR_FIELD_NUMBER: builtins.int
    HEIGHT_FIELD_NUMBER: builtins.int
    TIME_FIELD_NUMBER: builtins.int
    TOTAL_VOTING_POWER_FIELD_NUMBER: builtins.int
    type: global___EvidenceType.ValueType
    @property
    def validator(self) -> global___Validator:
        """The offending validator"""
        pass
    height: builtins.int
    """The height when the offense occurred"""

    @property
    def time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """The corresponding time where the offense occurred"""
        pass
    total_voting_power: builtins.int
    """Total voting power of the validator set in case the ABCI application does
    not store historical validators.
    https://github.com/tendermint/tendermint/issues/4581
    """

    def __init__(self,
        *,
        type: global___EvidenceType.ValueType = ...,
        validator: typing.Optional[global___Validator] = ...,
        height: builtins.int = ...,
        time: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        total_voting_power: builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["time",b"time","validator",b"validator"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["height",b"height","time",b"time","total_voting_power",b"total_voting_power","type",b"type","validator",b"validator"]) -> None: ...
global___Evidence = Evidence

class Snapshot(google.protobuf.message.Message):
    """----------------------------------------
    State Sync Types

    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    HEIGHT_FIELD_NUMBER: builtins.int
    FORMAT_FIELD_NUMBER: builtins.int
    CHUNKS_FIELD_NUMBER: builtins.int
    HASH_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    height: builtins.int
    """The height at which the snapshot was taken"""

    format: builtins.int
    """The application-specific snapshot format"""

    chunks: builtins.int
    """Number of chunks in the snapshot"""

    hash: builtins.bytes
    """Arbitrary snapshot hash, equal only if identical"""

    metadata: builtins.bytes
    """Arbitrary application metadata"""

    def __init__(self,
        *,
        height: builtins.int = ...,
        format: builtins.int = ...,
        chunks: builtins.int = ...,
        hash: builtins.bytes = ...,
        metadata: builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chunks",b"chunks","format",b"format","hash",b"hash","height",b"height","metadata",b"metadata"]) -> None: ...
global___Snapshot = Snapshot
