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

class QueryStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    FeeTokens: grpc.UnaryUnaryMultiCallable[
        osmosis.txfees.v1beta1.query_pb2.QueryFeeTokensRequest,
        osmosis.txfees.v1beta1.query_pb2.QueryFeeTokensResponse,
    ]
    """FeeTokens returns a list of all the whitelisted fee tokens and their
    corresponding pools. It does not include the BaseDenom, which has its own
    query endpoint
    """
    DenomSpotPrice: grpc.UnaryUnaryMultiCallable[
        osmosis.txfees.v1beta1.query_pb2.QueryDenomSpotPriceRequest,
        osmosis.txfees.v1beta1.query_pb2.QueryDenomSpotPriceResponse,
    ]
    """DenomSpotPrice returns all spot prices by each registered token denom."""
    DenomPoolId: grpc.UnaryUnaryMultiCallable[
        osmosis.txfees.v1beta1.query_pb2.QueryDenomPoolIdRequest,
        osmosis.txfees.v1beta1.query_pb2.QueryDenomPoolIdResponse,
    ]
    """Returns the poolID for a specified denom input."""
    BaseDenom: grpc.UnaryUnaryMultiCallable[
        osmosis.txfees.v1beta1.query_pb2.QueryBaseDenomRequest,
        osmosis.txfees.v1beta1.query_pb2.QueryBaseDenomResponse,
    ]
    """Returns a list of all base denom tokens and their corresponding pools."""

class QueryServicer(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def FeeTokens(
        self,
        request: osmosis.txfees.v1beta1.query_pb2.QueryFeeTokensRequest,
        context: grpc.ServicerContext,
    ) -> osmosis.txfees.v1beta1.query_pb2.QueryFeeTokensResponse:
        """FeeTokens returns a list of all the whitelisted fee tokens and their
        corresponding pools. It does not include the BaseDenom, which has its own
        query endpoint
        """
    @abc.abstractmethod
    def DenomSpotPrice(
        self,
        request: osmosis.txfees.v1beta1.query_pb2.QueryDenomSpotPriceRequest,
        context: grpc.ServicerContext,
    ) -> osmosis.txfees.v1beta1.query_pb2.QueryDenomSpotPriceResponse:
        """DenomSpotPrice returns all spot prices by each registered token denom."""
    @abc.abstractmethod
    def DenomPoolId(
        self,
        request: osmosis.txfees.v1beta1.query_pb2.QueryDenomPoolIdRequest,
        context: grpc.ServicerContext,
    ) -> osmosis.txfees.v1beta1.query_pb2.QueryDenomPoolIdResponse:
        """Returns the poolID for a specified denom input."""
    @abc.abstractmethod
    def BaseDenom(
        self,
        request: osmosis.txfees.v1beta1.query_pb2.QueryBaseDenomRequest,
        context: grpc.ServicerContext,
    ) -> osmosis.txfees.v1beta1.query_pb2.QueryBaseDenomResponse:
        """Returns a list of all base denom tokens and their corresponding pools."""

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