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

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    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): ...

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): ...

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

@typing_extensions.final
class Request(google.protobuf.message.Message):
    """----------------------------------------
    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: global___RequestEcho | None = ...,
        flush: global___RequestFlush | None = ...,
        info: global___RequestInfo | None = ...,
        set_option: global___RequestSetOption | None = ...,
        init_chain: global___RequestInitChain | None = ...,
        query: global___RequestQuery | None = ...,
        begin_block: global___RequestBeginBlock | None = ...,
        check_tx: global___RequestCheckTx | None = ...,
        deliver_tx: global___RequestDeliverTx | None = ...,
        end_block: global___RequestEndBlock | None = ...,
        commit: global___RequestCommit | None = ...,
        list_snapshots: global___RequestListSnapshots | None = ...,
        offer_snapshot: global___RequestOfferSnapshot | None = ...,
        load_snapshot_chunk: global___RequestLoadSnapshotChunk | None = ...,
        apply_snapshot_chunk: global___RequestApplySnapshotChunk | None = ...,
    ) -> 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_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"] | None: ...

global___Request = Request

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

    MESSAGE_FIELD_NUMBER: builtins.int
    message: builtins.str
    def __init__(
        self,
        *,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...

global___RequestEcho = RequestEcho

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

    def __init__(
        self,
    ) -> None: ...

global___RequestFlush = RequestFlush

@typing_extensions.final
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: builtins.str
    block_version: builtins.int
    p2p_version: builtins.int
    def __init__(
        self,
        *,
        version: builtins.str = ...,
        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

@typing_extensions.final
class RequestSetOption(google.protobuf.message.Message):
    """nondeterministic"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    key: builtins.str
    value: builtins.str
    def __init__(
        self,
        *,
        key: builtins.str = ...,
        value: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

global___RequestSetOption = RequestSetOption

@typing_extensions.final
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: builtins.str
    @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: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        chain_id: builtins.str = ...,
        consensus_params: global___ConsensusParams | None = ...,
        validators: collections.abc.Iterable[global___ValidatorUpdate] | None = ...,
        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

@typing_extensions.final
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: builtins.str
    height: builtins.int
    prove: builtins.bool
    def __init__(
        self,
        *,
        data: builtins.bytes = ...,
        path: builtins.str = ...,
        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

@typing_extensions.final
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: tendermint.types.types_pb2.Header | None = ...,
        last_commit_info: global___LastCommitInfo | None = ...,
        byzantine_validators: collections.abc.Iterable[global___Evidence] | None = ...,
    ) -> 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

@typing_extensions.final
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

@typing_extensions.final
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

@typing_extensions.final
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

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

    def __init__(
        self,
    ) -> None: ...

global___RequestCommit = RequestCommit

@typing_extensions.final
class RequestListSnapshots(google.protobuf.message.Message):
    """lists available snapshots"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RequestListSnapshots = RequestListSnapshots

@typing_extensions.final
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"""
    app_hash: builtins.bytes
    """light client-verified app hash for snapshot height"""
    def __init__(
        self,
        *,
        snapshot: global___Snapshot | None = ...,
        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

@typing_extensions.final
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

@typing_extensions.final
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: builtins.str
    def __init__(
        self,
        *,
        index: builtins.int = ...,
        chunk: builtins.bytes = ...,
        sender: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chunk", b"chunk", "index", b"index", "sender", b"sender"]) -> None: ...

global___RequestApplySnapshotChunk = RequestApplySnapshotChunk

@typing_extensions.final
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: global___ResponseException | None = ...,
        echo: global___ResponseEcho | None = ...,
        flush: global___ResponseFlush | None = ...,
        info: global___ResponseInfo | None = ...,
        set_option: global___ResponseSetOption | None = ...,
        init_chain: global___ResponseInitChain | None = ...,
        query: global___ResponseQuery | None = ...,
        begin_block: global___ResponseBeginBlock | None = ...,
        check_tx: global___ResponseCheckTx | None = ...,
        deliver_tx: global___ResponseDeliverTx | None = ...,
        end_block: global___ResponseEndBlock | None = ...,
        commit: global___ResponseCommit | None = ...,
        list_snapshots: global___ResponseListSnapshots | None = ...,
        offer_snapshot: global___ResponseOfferSnapshot | None = ...,
        load_snapshot_chunk: global___ResponseLoadSnapshotChunk | None = ...,
        apply_snapshot_chunk: global___ResponseApplySnapshotChunk | None = ...,
    ) -> 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_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"] | None: ...

global___Response = Response

@typing_extensions.final
class ResponseException(google.protobuf.message.Message):
    """nondeterministic"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ERROR_FIELD_NUMBER: builtins.int
    error: builtins.str
    def __init__(
        self,
        *,
        error: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["error", b"error"]) -> None: ...

global___ResponseException = ResponseException

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

    MESSAGE_FIELD_NUMBER: builtins.int
    message: builtins.str
    def __init__(
        self,
        *,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...

global___ResponseEcho = ResponseEcho

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

    def __init__(
        self,
    ) -> None: ...

global___ResponseFlush = ResponseFlush

@typing_extensions.final
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: builtins.str
    version: builtins.str
    app_version: builtins.int
    last_block_height: builtins.int
    last_block_app_hash: builtins.bytes
    def __init__(
        self,
        *,
        data: builtins.str = ...,
        version: builtins.str = ...,
        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

@typing_extensions.final
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: builtins.str
    """bytes data = 2;"""
    info: builtins.str
    def __init__(
        self,
        *,
        code: builtins.int = ...,
        log: builtins.str = ...,
        info: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["code", b"code", "info", b"info", "log", b"log"]) -> None: ...

global___ResponseSetOption = ResponseSetOption

@typing_extensions.final
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: global___ConsensusParams | None = ...,
        validators: collections.abc.Iterable[global___ValidatorUpdate] | None = ...,
        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

@typing_extensions.final
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: builtins.str
    """bytes data = 2; // use "value" instead.
    nondeterministic
    """
    info: builtins.str
    """nondeterministic"""
    index: builtins.int
    key: builtins.bytes
    value: builtins.bytes
    @property
    def proof_ops(self) -> tendermint.crypto.proof_pb2.ProofOps: ...
    height: builtins.int
    codespace: builtins.str
    def __init__(
        self,
        *,
        code: builtins.int = ...,
        log: builtins.str = ...,
        info: builtins.str = ...,
        index: builtins.int = ...,
        key: builtins.bytes = ...,
        value: builtins.bytes = ...,
        proof_ops: tendermint.crypto.proof_pb2.ProofOps | None = ...,
        height: builtins.int = ...,
        codespace: builtins.str = ...,
    ) -> 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

@typing_extensions.final
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: collections.abc.Iterable[global___Event] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["events", b"events"]) -> None: ...

global___ResponseBeginBlock = ResponseBeginBlock

@typing_extensions.final
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: builtins.str
    """nondeterministic"""
    info: builtins.str
    """nondeterministic"""
    gas_wanted: builtins.int
    gas_used: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    codespace: builtins.str
    def __init__(
        self,
        *,
        code: builtins.int = ...,
        data: builtins.bytes = ...,
        log: builtins.str = ...,
        info: builtins.str = ...,
        gas_wanted: builtins.int = ...,
        gas_used: builtins.int = ...,
        events: collections.abc.Iterable[global___Event] | None = ...,
        codespace: builtins.str = ...,
    ) -> 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

@typing_extensions.final
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: builtins.str
    """nondeterministic"""
    info: builtins.str
    """nondeterministic"""
    gas_wanted: builtins.int
    gas_used: builtins.int
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: ...
    codespace: builtins.str
    def __init__(
        self,
        *,
        code: builtins.int = ...,
        data: builtins.bytes = ...,
        log: builtins.str = ...,
        info: builtins.str = ...,
        gas_wanted: builtins.int = ...,
        gas_used: builtins.int = ...,
        events: collections.abc.Iterable[global___Event] | None = ...,
        codespace: builtins.str = ...,
    ) -> 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

@typing_extensions.final
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: collections.abc.Iterable[global___ValidatorUpdate] | None = ...,
        consensus_param_updates: global___ConsensusParams | None = ...,
        events: collections.abc.Iterable[global___Event] | None = ...,
    ) -> 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

@typing_extensions.final
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

@typing_extensions.final
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: collections.abc.Iterable[global___Snapshot] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["snapshots", b"snapshots"]) -> None: ...

global___ResponseListSnapshots = ResponseListSnapshots

@typing_extensions.final
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):  # noqa: F821
        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): ...
    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

@typing_extensions.final
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

@typing_extensions.final
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):  # noqa: F821
        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): ...
    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"""
    @property
    def reject_senders(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Chunk senders to reject and ban"""
    def __init__(
        self,
        *,
        result: global___ResponseApplySnapshotChunk.Result.ValueType = ...,
        refetch_chunks: collections.abc.Iterable[builtins.int] | None = ...,
        reject_senders: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> 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

@typing_extensions.final
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: global___BlockParams | None = ...,
        evidence: tendermint.types.params_pb2.EvidenceParams | None = ...,
        validator: tendermint.types.params_pb2.ValidatorParams | None = ...,
        version: tendermint.types.params_pb2.VersionParams | None = ...,
    ) -> 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

@typing_extensions.final
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

@typing_extensions.final
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: collections.abc.Iterable[global___VoteInfo] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["round", b"round", "votes", b"votes"]) -> None: ...

global___LastCommitInfo = LastCommitInfo

@typing_extensions.final
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: builtins.str
    @property
    def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EventAttribute]: ...
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        attributes: collections.abc.Iterable[global___EventAttribute] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "type", b"type"]) -> None: ...

global___Event = Event

@typing_extensions.final
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

@typing_extensions.final
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: global___ResponseDeliverTx | None = ...,
    ) -> 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

@typing_extensions.final
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

@typing_extensions.final
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: tendermint.crypto.keys_pb2.PublicKey | None = ...,
        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

@typing_extensions.final
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: global___Validator | None = ...,
        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

@typing_extensions.final
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"""
    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"""
    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: global___Validator | None = ...,
        height: builtins.int = ...,
        time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        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

@typing_extensions.final
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
