"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import cosmos.base.tendermint.v1beta1.query_pb2
import grpc

class ServiceStub:
    """Service defines the gRPC querier service for tendermint queries."""

    def __init__(self, channel: grpc.Channel) -> None: ...
    GetNodeInfo: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetNodeInfoRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetNodeInfoResponse,
    ]
    """GetNodeInfo queries the current node info."""
    GetSyncing: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetSyncingRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetSyncingResponse,
    ]
    """GetSyncing queries node syncing."""
    GetLatestBlock: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetLatestBlockRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetLatestBlockResponse,
    ]
    """GetLatestBlock returns the latest block."""
    GetBlockByHeight: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetBlockByHeightRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetBlockByHeightResponse,
    ]
    """GetBlockByHeight queries block for given height."""
    GetLatestValidatorSet: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetLatestValidatorSetRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetLatestValidatorSetResponse,
    ]
    """GetLatestValidatorSet queries latest validator-set."""
    GetValidatorSetByHeight: grpc.UnaryUnaryMultiCallable[
        cosmos.base.tendermint.v1beta1.query_pb2.GetValidatorSetByHeightRequest,
        cosmos.base.tendermint.v1beta1.query_pb2.GetValidatorSetByHeightResponse,
    ]
    """GetValidatorSetByHeight queries validator-set at a given height."""

class ServiceServicer(metaclass=abc.ABCMeta):
    """Service defines the gRPC querier service for tendermint queries."""

    @abc.abstractmethod
    def GetNodeInfo(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetNodeInfoRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetNodeInfoResponse:
        """GetNodeInfo queries the current node info."""
    @abc.abstractmethod
    def GetSyncing(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetSyncingRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetSyncingResponse:
        """GetSyncing queries node syncing."""
    @abc.abstractmethod
    def GetLatestBlock(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetLatestBlockRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetLatestBlockResponse:
        """GetLatestBlock returns the latest block."""
    @abc.abstractmethod
    def GetBlockByHeight(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetBlockByHeightRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetBlockByHeightResponse:
        """GetBlockByHeight queries block for given height."""
    @abc.abstractmethod
    def GetLatestValidatorSet(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetLatestValidatorSetRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetLatestValidatorSetResponse:
        """GetLatestValidatorSet queries latest validator-set."""
    @abc.abstractmethod
    def GetValidatorSetByHeight(
        self,
        request: cosmos.base.tendermint.v1beta1.query_pb2.GetValidatorSetByHeightRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.tendermint.v1beta1.query_pb2.GetValidatorSetByHeightResponse:
        """GetValidatorSetByHeight queries validator-set at a given height."""

def add_ServiceServicer_to_server(servicer: ServiceServicer, server: grpc.Server) -> None: ...
