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

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

import * as grpc from "grpc";
import * as cosmos_vesting_v1beta1_tx_pb from "../../../cosmos/vesting/v1beta1/tx_pb";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as cosmos_base_v1beta1_coin_pb from "../../../cosmos/base/v1beta1/coin_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";
import * as cosmos_vesting_v1beta1_vesting_pb from "../../../cosmos/vesting/v1beta1/vesting_pb";
import * as cosmos_msg_v1_msg_pb from "../../../cosmos/msg/v1/msg_pb";

interface IMsgService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    createVestingAccount: IMsgService_ICreateVestingAccount;
    createPermanentLockedAccount: IMsgService_ICreatePermanentLockedAccount;
    createPeriodicVestingAccount: IMsgService_ICreatePeriodicVestingAccount;
}

interface IMsgService_ICreateVestingAccount extends grpc.MethodDefinition<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse> {
    path: "/cosmos.vesting.v1beta1.Msg/CreateVestingAccount";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount>;
    requestDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount>;
    responseSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse>;
    responseDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse>;
}
interface IMsgService_ICreatePermanentLockedAccount extends grpc.MethodDefinition<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse> {
    path: "/cosmos.vesting.v1beta1.Msg/CreatePermanentLockedAccount";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount>;
    requestDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount>;
    responseSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse>;
    responseDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse>;
}
interface IMsgService_ICreatePeriodicVestingAccount extends grpc.MethodDefinition<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse> {
    path: "/cosmos.vesting.v1beta1.Msg/CreatePeriodicVestingAccount";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount>;
    requestDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount>;
    responseSerialize: grpc.serialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse>;
    responseDeserialize: grpc.deserialize<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse>;
}

export const MsgService: IMsgService;

export interface IMsgServer {
    createVestingAccount: grpc.handleUnaryCall<cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse>;
    createPermanentLockedAccount: grpc.handleUnaryCall<cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse>;
    createPeriodicVestingAccount: grpc.handleUnaryCall<cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse>;
}

export interface IMsgClient {
    createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
    createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
    createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
}

export class MsgClient extends grpc.Client implements IMsgClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
    public createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    public createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    public createVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreateVestingAccountResponse) => void): grpc.ClientUnaryCall;
    public createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    public createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    public createPermanentLockedAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePermanentLockedAccountResponse) => void): grpc.ClientUnaryCall;
    public createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
    public createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
    public createPeriodicVestingAccount(request: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccount, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_vesting_v1beta1_tx_pb.MsgCreatePeriodicVestingAccountResponse) => void): grpc.ClientUnaryCall;
}
