// package: cosmos.authz.v1beta1
// file: cosmos/authz/v1beta1/tx.proto

/* tslint:disable */
/* eslint-disable */

import * as grpc from "grpc";
import * as cosmos_authz_v1beta1_tx_pb from "../../../cosmos/authz/v1beta1/tx_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";
import * as cosmos_authz_v1beta1_authz_pb from "../../../cosmos/authz/v1beta1/authz_pb";
import * as cosmos_msg_v1_msg_pb from "../../../cosmos/msg/v1/msg_pb";

interface IMsgService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    grant: IMsgService_IGrant;
    exec: IMsgService_IExec;
    revoke: IMsgService_IRevoke;
}

interface IMsgService_IGrant extends grpc.MethodDefinition<cosmos_authz_v1beta1_tx_pb.MsgGrant, cosmos_authz_v1beta1_tx_pb.MsgGrantResponse> {
    path: "/cosmos.authz.v1beta1.Msg/Grant";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgGrant>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgGrant>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgGrantResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgGrantResponse>;
}
interface IMsgService_IExec extends grpc.MethodDefinition<cosmos_authz_v1beta1_tx_pb.MsgExec, cosmos_authz_v1beta1_tx_pb.MsgExecResponse> {
    path: "/cosmos.authz.v1beta1.Msg/Exec";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgExec>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgExec>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgExecResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgExecResponse>;
}
interface IMsgService_IRevoke extends grpc.MethodDefinition<cosmos_authz_v1beta1_tx_pb.MsgRevoke, cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse> {
    path: "/cosmos.authz.v1beta1.Msg/Revoke";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgRevoke>;
    requestDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgRevoke>;
    responseSerialize: grpc.serialize<cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse>;
    responseDeserialize: grpc.deserialize<cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse>;
}

export const MsgService: IMsgService;

export interface IMsgServer {
    grant: grpc.handleUnaryCall<cosmos_authz_v1beta1_tx_pb.MsgGrant, cosmos_authz_v1beta1_tx_pb.MsgGrantResponse>;
    exec: grpc.handleUnaryCall<cosmos_authz_v1beta1_tx_pb.MsgExec, cosmos_authz_v1beta1_tx_pb.MsgExecResponse>;
    revoke: grpc.handleUnaryCall<cosmos_authz_v1beta1_tx_pb.MsgRevoke, cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse>;
}

export interface IMsgClient {
    grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
    revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
    revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
}

export class MsgClient extends grpc.Client implements IMsgClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
    public grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    public grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    public grant(request: cosmos_authz_v1beta1_tx_pb.MsgGrant, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgGrantResponse) => void): grpc.ClientUnaryCall;
    public exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    public exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    public exec(request: cosmos_authz_v1beta1_tx_pb.MsgExec, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgExecResponse) => void): grpc.ClientUnaryCall;
    public revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
    public revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
    public revoke(request: cosmos_authz_v1beta1_tx_pb.MsgRevoke, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_authz_v1beta1_tx_pb.MsgRevokeResponse) => void): grpc.ClientUnaryCall;
}
