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

from .tx_pb2 import *
# Msg defines the authz Msg service.
class MsgStub:
    def __init__(self, channel: grpc.Channel) -> None: ...
    # Grant grants the provided authorization to the grantee on the granter's
    # account with the provided expiration time. If there is already a grant
    # for the given (granter, grantee, Authorization) triple, then the grant
    # will be overwritten.
    Grant:grpc.UnaryUnaryMultiCallable[
        global___MsgGrant,
        global___MsgGrantResponse] = ...

    # Exec attempts to execute the provided messages using
    # authorizations granted to the grantee. Each message should have only
    # one signer corresponding to the granter of the authorization.
    Exec:grpc.UnaryUnaryMultiCallable[
        global___MsgExec,
        global___MsgExecResponse] = ...

    # Revoke revokes any authorization corresponding to the provided method name on the
    # granter's account that has been granted to the grantee.
    Revoke:grpc.UnaryUnaryMultiCallable[
        global___MsgRevoke,
        global___MsgRevokeResponse] = ...


# Msg defines the authz Msg service.
class MsgServicer(metaclass=abc.ABCMeta):
    # Grant grants the provided authorization to the grantee on the granter's
    # account with the provided expiration time. If there is already a grant
    # for the given (granter, grantee, Authorization) triple, then the grant
    # will be overwritten.
    @abc.abstractmethod
    def Grant(self,
        request: global___MsgGrant,
        context: grpc.ServicerContext,
    ) -> global___MsgGrantResponse: ...

    # Exec attempts to execute the provided messages using
    # authorizations granted to the grantee. Each message should have only
    # one signer corresponding to the granter of the authorization.
    @abc.abstractmethod
    def Exec(self,
        request: global___MsgExec,
        context: grpc.ServicerContext,
    ) -> global___MsgExecResponse: ...

    # Revoke revokes any authorization corresponding to the provided method name on the
    # granter's account that has been granted to the grantee.
    @abc.abstractmethod
    def Revoke(self,
        request: global___MsgRevoke,
        context: grpc.ServicerContext,
    ) -> global___MsgRevokeResponse: ...


def add_MsgServicer_to_server(servicer: MsgServicer, server: grpc.Server) -> None: ...
