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

from .reflection_pb2 import *
# ReflectionService defines a service for application reflection.
class ReflectionServiceStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    # 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.
    GetAuthnDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetAuthnDescriptorRequest,
        global___GetAuthnDescriptorResponse] = ...

    # GetChainDescriptor returns the description of the chain
    GetChainDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetChainDescriptorRequest,
        global___GetChainDescriptorResponse] = ...

    # GetCodecDescriptor returns the descriptor of the codec of the application
    GetCodecDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetCodecDescriptorRequest,
        global___GetCodecDescriptorResponse] = ...

    # GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application
    GetConfigurationDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetConfigurationDescriptorRequest,
        global___GetConfigurationDescriptorResponse] = ...

    # GetQueryServicesDescriptor returns the available gRPC queryable services of the application
    GetQueryServicesDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetQueryServicesDescriptorRequest,
        global___GetQueryServicesDescriptorResponse] = ...

    # GetTxDescriptor returns information on the used transaction object and available msgs that can be used
    GetTxDescriptor:grpc.UnaryUnaryMultiCallable[
        global___GetTxDescriptorRequest,
        global___GetTxDescriptorResponse] = ...


# ReflectionService defines a service for application reflection.
class ReflectionServiceServicer(metaclass=abc.ABCMeta):
    # 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.
    @abc.abstractmethod
    def GetAuthnDescriptor(self,
        request: global___GetAuthnDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetAuthnDescriptorResponse: ...

    # GetChainDescriptor returns the description of the chain
    @abc.abstractmethod
    def GetChainDescriptor(self,
        request: global___GetChainDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetChainDescriptorResponse: ...

    # GetCodecDescriptor returns the descriptor of the codec of the application
    @abc.abstractmethod
    def GetCodecDescriptor(self,
        request: global___GetCodecDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetCodecDescriptorResponse: ...

    # GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application
    @abc.abstractmethod
    def GetConfigurationDescriptor(self,
        request: global___GetConfigurationDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetConfigurationDescriptorResponse: ...

    # GetQueryServicesDescriptor returns the available gRPC queryable services of the application
    @abc.abstractmethod
    def GetQueryServicesDescriptor(self,
        request: global___GetQueryServicesDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetQueryServicesDescriptorResponse: ...

    # GetTxDescriptor returns information on the used transaction object and available msgs that can be used
    @abc.abstractmethod
    def GetTxDescriptor(self,
        request: global___GetTxDescriptorRequest,
        context: grpc.ServicerContext,
    ) -> global___GetTxDescriptorResponse: ...


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