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

class QueryStub:
    """Query defines the gRPC querier service."""

    def __init__(self, channel: grpc.Channel) -> None: ...
    Accounts: grpc.UnaryUnaryMultiCallable[
        cosmos.auth.v1beta1.query_pb2.QueryAccountsRequest,
        cosmos.auth.v1beta1.query_pb2.QueryAccountsResponse,
    ]
    """Accounts returns all the existing accounts

    Since: cosmos-sdk 0.43
    """
    Account: grpc.UnaryUnaryMultiCallable[
        cosmos.auth.v1beta1.query_pb2.QueryAccountRequest,
        cosmos.auth.v1beta1.query_pb2.QueryAccountResponse,
    ]
    """Account returns account details based on address."""
    Params: grpc.UnaryUnaryMultiCallable[
        cosmos.auth.v1beta1.query_pb2.QueryParamsRequest,
        cosmos.auth.v1beta1.query_pb2.QueryParamsResponse,
    ]
    """Params queries all parameters."""
    ModuleAccounts: grpc.UnaryUnaryMultiCallable[
        cosmos.auth.v1beta1.query_pb2.QueryModuleAccountsRequest,
        cosmos.auth.v1beta1.query_pb2.QueryModuleAccountsResponse,
    ]
    """ModuleAccounts returns all the existing module accounts."""

class QueryServicer(metaclass=abc.ABCMeta):
    """Query defines the gRPC querier service."""

    @abc.abstractmethod
    def Accounts(
        self,
        request: cosmos.auth.v1beta1.query_pb2.QueryAccountsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.auth.v1beta1.query_pb2.QueryAccountsResponse:
        """Accounts returns all the existing accounts

        Since: cosmos-sdk 0.43
        """
    @abc.abstractmethod
    def Account(
        self,
        request: cosmos.auth.v1beta1.query_pb2.QueryAccountRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.auth.v1beta1.query_pb2.QueryAccountResponse:
        """Account returns account details based on address."""
    @abc.abstractmethod
    def Params(
        self,
        request: cosmos.auth.v1beta1.query_pb2.QueryParamsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.auth.v1beta1.query_pb2.QueryParamsResponse:
        """Params queries all parameters."""
    @abc.abstractmethod
    def ModuleAccounts(
        self,
        request: cosmos.auth.v1beta1.query_pb2.QueryModuleAccountsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.auth.v1beta1.query_pb2.QueryModuleAccountsResponse:
        """ModuleAccounts returns all the existing module accounts."""

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