"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import abc
import cosmos.base.reflection.v2alpha1.reflection_pb2
import grpc

class ReflectionServiceStub:
    """ReflectionService defines a service for application reflection."""
    def __init__(self, channel: grpc.Channel) -> None: ...
    GetAuthnDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetAuthnDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetAuthnDescriptorResponse]
    """GetAuthnDescriptor returns information on how to authenticate transactions in the application
    NOTE: this RPC is still experimental and might be subject to breaking changes or removal in
    future releases of the cosmos-sdk.
    """

    GetChainDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetChainDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetChainDescriptorResponse]
    """GetChainDescriptor returns the description of the chain"""

    GetCodecDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetCodecDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetCodecDescriptorResponse]
    """GetCodecDescriptor returns the descriptor of the codec of the application"""

    GetConfigurationDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetConfigurationDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetConfigurationDescriptorResponse]
    """GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application"""

    GetQueryServicesDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetQueryServicesDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetQueryServicesDescriptorResponse]
    """GetQueryServicesDescriptor returns the available gRPC queryable services of the application"""

    GetTxDescriptor: grpc.UnaryUnaryMultiCallable[
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetTxDescriptorRequest,
        cosmos.base.reflection.v2alpha1.reflection_pb2.GetTxDescriptorResponse]
    """GetTxDescriptor returns information on the used transaction object and available msgs that can be used"""


class ReflectionServiceServicer(metaclass=abc.ABCMeta):
    """ReflectionService defines a service for application reflection."""
    @abc.abstractmethod
    def GetAuthnDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetAuthnDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetAuthnDescriptorResponse:
        """GetAuthnDescriptor returns information on how to authenticate transactions in the application
        NOTE: this RPC is still experimental and might be subject to breaking changes or removal in
        future releases of the cosmos-sdk.
        """
        pass

    @abc.abstractmethod
    def GetChainDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetChainDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetChainDescriptorResponse:
        """GetChainDescriptor returns the description of the chain"""
        pass

    @abc.abstractmethod
    def GetCodecDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetCodecDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetCodecDescriptorResponse:
        """GetCodecDescriptor returns the descriptor of the codec of the application"""
        pass

    @abc.abstractmethod
    def GetConfigurationDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetConfigurationDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetConfigurationDescriptorResponse:
        """GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application"""
        pass

    @abc.abstractmethod
    def GetQueryServicesDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetQueryServicesDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetQueryServicesDescriptorResponse:
        """GetQueryServicesDescriptor returns the available gRPC queryable services of the application"""
        pass

    @abc.abstractmethod
    def GetTxDescriptor(self,
        request: cosmos.base.reflection.v2alpha1.reflection_pb2.GetTxDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> cosmos.base.reflection.v2alpha1.reflection_pb2.GetTxDescriptorResponse:
        """GetTxDescriptor returns information on the used transaction object and available msgs that can be used"""
        pass


def add_ReflectionServiceServicer_to_server(servicer: ReflectionServiceServicer, server: grpc.Server) -> None: ...
