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

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

    def __init__(self, channel: grpc.Channel) -> None: ...
    Validators: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryValidatorsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryValidatorsResponse,
    ]
    """Validators queries all validators that match the given status."""
    Validator: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryValidatorRequest,
        cosmos.staking.v1beta1.query_pb2.QueryValidatorResponse,
    ]
    """Validator queries validator info for given validator address."""
    ValidatorDelegations: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryValidatorDelegationsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryValidatorDelegationsResponse,
    ]
    """ValidatorDelegations queries delegate info for given validator."""
    ValidatorUnbondingDelegations: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryValidatorUnbondingDelegationsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryValidatorUnbondingDelegationsResponse,
    ]
    """ValidatorUnbondingDelegations queries unbonding delegations of a validator."""
    Delegation: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryDelegationRequest,
        cosmos.staking.v1beta1.query_pb2.QueryDelegationResponse,
    ]
    """Delegation queries delegate info for given validator delegator pair."""
    UnbondingDelegation: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryUnbondingDelegationRequest,
        cosmos.staking.v1beta1.query_pb2.QueryUnbondingDelegationResponse,
    ]
    """UnbondingDelegation queries unbonding info for given validator delegator
    pair.
    """
    DelegatorDelegations: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorDelegationsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorDelegationsResponse,
    ]
    """DelegatorDelegations queries all delegations of a given delegator address."""
    DelegatorUnbondingDelegations: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorUnbondingDelegationsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorUnbondingDelegationsResponse,
    ]
    """DelegatorUnbondingDelegations queries all unbonding delegations of a given
    delegator address.
    """
    Redelegations: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryRedelegationsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryRedelegationsResponse,
    ]
    """Redelegations queries redelegations of given address."""
    DelegatorValidators: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorsResponse,
    ]
    """DelegatorValidators queries all validators info for given delegator
    address.
    """
    DelegatorValidator: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorRequest,
        cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorResponse,
    ]
    """DelegatorValidator queries validator info for given delegator validator
    pair.
    """
    HistoricalInfo: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryHistoricalInfoRequest,
        cosmos.staking.v1beta1.query_pb2.QueryHistoricalInfoResponse,
    ]
    """HistoricalInfo queries the historical info for given height."""
    Pool: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryPoolRequest,
        cosmos.staking.v1beta1.query_pb2.QueryPoolResponse,
    ]
    """Pool queries the pool info."""
    Params: grpc.UnaryUnaryMultiCallable[
        cosmos.staking.v1beta1.query_pb2.QueryParamsRequest,
        cosmos.staking.v1beta1.query_pb2.QueryParamsResponse,
    ]
    """Parameters queries the staking parameters."""

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

    @abc.abstractmethod
    def Validators(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryValidatorsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryValidatorsResponse:
        """Validators queries all validators that match the given status."""
    @abc.abstractmethod
    def Validator(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryValidatorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryValidatorResponse:
        """Validator queries validator info for given validator address."""
    @abc.abstractmethod
    def ValidatorDelegations(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryValidatorDelegationsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryValidatorDelegationsResponse:
        """ValidatorDelegations queries delegate info for given validator."""
    @abc.abstractmethod
    def ValidatorUnbondingDelegations(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryValidatorUnbondingDelegationsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryValidatorUnbondingDelegationsResponse:
        """ValidatorUnbondingDelegations queries unbonding delegations of a validator."""
    @abc.abstractmethod
    def Delegation(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryDelegationRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryDelegationResponse:
        """Delegation queries delegate info for given validator delegator pair."""
    @abc.abstractmethod
    def UnbondingDelegation(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryUnbondingDelegationRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryUnbondingDelegationResponse:
        """UnbondingDelegation queries unbonding info for given validator delegator
        pair.
        """
    @abc.abstractmethod
    def DelegatorDelegations(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryDelegatorDelegationsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryDelegatorDelegationsResponse:
        """DelegatorDelegations queries all delegations of a given delegator address."""
    @abc.abstractmethod
    def DelegatorUnbondingDelegations(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryDelegatorUnbondingDelegationsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryDelegatorUnbondingDelegationsResponse:
        """DelegatorUnbondingDelegations queries all unbonding delegations of a given
        delegator address.
        """
    @abc.abstractmethod
    def Redelegations(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryRedelegationsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryRedelegationsResponse:
        """Redelegations queries redelegations of given address."""
    @abc.abstractmethod
    def DelegatorValidators(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorsResponse:
        """DelegatorValidators queries all validators info for given delegator
        address.
        """
    @abc.abstractmethod
    def DelegatorValidator(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryDelegatorValidatorResponse:
        """DelegatorValidator queries validator info for given delegator validator
        pair.
        """
    @abc.abstractmethod
    def HistoricalInfo(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryHistoricalInfoRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryHistoricalInfoResponse:
        """HistoricalInfo queries the historical info for given height."""
    @abc.abstractmethod
    def Pool(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryPoolRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryPoolResponse:
        """Pool queries the pool info."""
    @abc.abstractmethod
    def Params(
        self,
        request: cosmos.staking.v1beta1.query_pb2.QueryParamsRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.staking.v1beta1.query_pb2.QueryParamsResponse:
        """Parameters queries the staking parameters."""

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