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

class QueryStub:
    """Query defines the gRPC querier service for gov module"""
    def __init__(self, channel: grpc.Channel) -> None: ...
    Proposal: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryProposalRequest,
        cosmos.gov.v1beta1.query_pb2.QueryProposalResponse]
    """Proposal queries proposal details based on ProposalID."""

    Proposals: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryProposalsRequest,
        cosmos.gov.v1beta1.query_pb2.QueryProposalsResponse]
    """Proposals queries all proposals based on given status."""

    Vote: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryVoteRequest,
        cosmos.gov.v1beta1.query_pb2.QueryVoteResponse]
    """Vote queries voted information based on proposalID, voterAddr."""

    Votes: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryVotesRequest,
        cosmos.gov.v1beta1.query_pb2.QueryVotesResponse]
    """Votes queries votes of a given proposal."""

    Params: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryParamsRequest,
        cosmos.gov.v1beta1.query_pb2.QueryParamsResponse]
    """Params queries all parameters of the gov module."""

    Deposit: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryDepositRequest,
        cosmos.gov.v1beta1.query_pb2.QueryDepositResponse]
    """Deposit queries single deposit information based proposalID, depositAddr."""

    Deposits: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryDepositsRequest,
        cosmos.gov.v1beta1.query_pb2.QueryDepositsResponse]
    """Deposits queries all deposits of a single proposal."""

    TallyResult: grpc.UnaryUnaryMultiCallable[
        cosmos.gov.v1beta1.query_pb2.QueryTallyResultRequest,
        cosmos.gov.v1beta1.query_pb2.QueryTallyResultResponse]
    """TallyResult queries the tally of a proposal vote."""


class QueryServicer(metaclass=abc.ABCMeta):
    """Query defines the gRPC querier service for gov module"""
    @abc.abstractmethod
    def Proposal(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryProposalRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryProposalResponse:
        """Proposal queries proposal details based on ProposalID."""
        pass

    @abc.abstractmethod
    def Proposals(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryProposalsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryProposalsResponse:
        """Proposals queries all proposals based on given status."""
        pass

    @abc.abstractmethod
    def Vote(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryVoteRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryVoteResponse:
        """Vote queries voted information based on proposalID, voterAddr."""
        pass

    @abc.abstractmethod
    def Votes(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryVotesRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryVotesResponse:
        """Votes queries votes of a given proposal."""
        pass

    @abc.abstractmethod
    def Params(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryParamsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryParamsResponse:
        """Params queries all parameters of the gov module."""
        pass

    @abc.abstractmethod
    def Deposit(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryDepositRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryDepositResponse:
        """Deposit queries single deposit information based proposalID, depositAddr."""
        pass

    @abc.abstractmethod
    def Deposits(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryDepositsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryDepositsResponse:
        """Deposits queries all deposits of a single proposal."""
        pass

    @abc.abstractmethod
    def TallyResult(self,
        request: cosmos.gov.v1beta1.query_pb2.QueryTallyResultRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.gov.v1beta1.query_pb2.QueryTallyResultResponse:
        """TallyResult queries the tally of a proposal vote."""
        pass


def add_QueryServicer_to_server(servicer: QueryServicer, server: grpc.Server) -> None: ...
