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

from .query_pb2 import *
# Query defines the gRPC querier service for distribution module.
class QueryStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    # Params queries params of the distribution module.
    Params:grpc.UnaryUnaryMultiCallable[
        global___QueryParamsRequest,
        global___QueryParamsResponse] = ...

    # ValidatorOutstandingRewards queries rewards of a validator address.
    ValidatorOutstandingRewards:grpc.UnaryUnaryMultiCallable[
        global___QueryValidatorOutstandingRewardsRequest,
        global___QueryValidatorOutstandingRewardsResponse] = ...

    # ValidatorCommission queries accumulated commission for a validator.
    ValidatorCommission:grpc.UnaryUnaryMultiCallable[
        global___QueryValidatorCommissionRequest,
        global___QueryValidatorCommissionResponse] = ...

    # ValidatorSlashes queries slash events of a validator.
    ValidatorSlashes:grpc.UnaryUnaryMultiCallable[
        global___QueryValidatorSlashesRequest,
        global___QueryValidatorSlashesResponse] = ...

    # DelegationRewards queries the total rewards accrued by a delegation.
    DelegationRewards:grpc.UnaryUnaryMultiCallable[
        global___QueryDelegationRewardsRequest,
        global___QueryDelegationRewardsResponse] = ...

    # DelegationTotalRewards queries the total rewards accrued by a each
    # validator.
    DelegationTotalRewards:grpc.UnaryUnaryMultiCallable[
        global___QueryDelegationTotalRewardsRequest,
        global___QueryDelegationTotalRewardsResponse] = ...

    # DelegatorValidators queries the validators of a delegator.
    DelegatorValidators:grpc.UnaryUnaryMultiCallable[
        global___QueryDelegatorValidatorsRequest,
        global___QueryDelegatorValidatorsResponse] = ...

    # DelegatorWithdrawAddress queries withdraw address of a delegator.
    DelegatorWithdrawAddress:grpc.UnaryUnaryMultiCallable[
        global___QueryDelegatorWithdrawAddressRequest,
        global___QueryDelegatorWithdrawAddressResponse] = ...

    # CommunityPool queries the community pool coins.
    CommunityPool:grpc.UnaryUnaryMultiCallable[
        global___QueryCommunityPoolRequest,
        global___QueryCommunityPoolResponse] = ...


# Query defines the gRPC querier service for distribution module.
class QueryServicer(metaclass=abc.ABCMeta):
    # Params queries params of the distribution module.
    @abc.abstractmethod
    def Params(self,
        request: global___QueryParamsRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryParamsResponse: ...

    # ValidatorOutstandingRewards queries rewards of a validator address.
    @abc.abstractmethod
    def ValidatorOutstandingRewards(self,
        request: global___QueryValidatorOutstandingRewardsRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryValidatorOutstandingRewardsResponse: ...

    # ValidatorCommission queries accumulated commission for a validator.
    @abc.abstractmethod
    def ValidatorCommission(self,
        request: global___QueryValidatorCommissionRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryValidatorCommissionResponse: ...

    # ValidatorSlashes queries slash events of a validator.
    @abc.abstractmethod
    def ValidatorSlashes(self,
        request: global___QueryValidatorSlashesRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryValidatorSlashesResponse: ...

    # DelegationRewards queries the total rewards accrued by a delegation.
    @abc.abstractmethod
    def DelegationRewards(self,
        request: global___QueryDelegationRewardsRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryDelegationRewardsResponse: ...

    # DelegationTotalRewards queries the total rewards accrued by a each
    # validator.
    @abc.abstractmethod
    def DelegationTotalRewards(self,
        request: global___QueryDelegationTotalRewardsRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryDelegationTotalRewardsResponse: ...

    # DelegatorValidators queries the validators of a delegator.
    @abc.abstractmethod
    def DelegatorValidators(self,
        request: global___QueryDelegatorValidatorsRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryDelegatorValidatorsResponse: ...

    # DelegatorWithdrawAddress queries withdraw address of a delegator.
    @abc.abstractmethod
    def DelegatorWithdrawAddress(self,
        request: global___QueryDelegatorWithdrawAddressRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryDelegatorWithdrawAddressResponse: ...

    # CommunityPool queries the community pool coins.
    @abc.abstractmethod
    def CommunityPool(self,
        request: global___QueryCommunityPoolRequest,
        context: grpc.ServicerContext,
    ) -> global___QueryCommunityPoolResponse: ...


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