// package: cosmos.gov.v1
// file: cosmos/gov/v1/tx.proto

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

import * as grpc from "grpc";
import * as cosmos_gov_v1_tx_pb from "../../../cosmos/gov/v1/tx_pb";
import * as cosmos_base_v1beta1_coin_pb from "../../../cosmos/base/v1beta1/coin_pb";
import * as cosmos_gov_v1_gov_pb from "../../../cosmos/gov/v1/gov_pb";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";
import * as cosmos_msg_v1_msg_pb from "../../../cosmos/msg/v1/msg_pb";

interface IMsgService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    submitProposal: IMsgService_ISubmitProposal;
    execLegacyContent: IMsgService_IExecLegacyContent;
    vote: IMsgService_IVote;
    voteWeighted: IMsgService_IVoteWeighted;
    deposit: IMsgService_IDeposit;
}

interface IMsgService_ISubmitProposal extends grpc.MethodDefinition<cosmos_gov_v1_tx_pb.MsgSubmitProposal, cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse> {
    path: "/cosmos.gov.v1.Msg/SubmitProposal";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgSubmitProposal>;
    requestDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgSubmitProposal>;
    responseSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse>;
    responseDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse>;
}
interface IMsgService_IExecLegacyContent extends grpc.MethodDefinition<cosmos_gov_v1_tx_pb.MsgExecLegacyContent, cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse> {
    path: "/cosmos.gov.v1.Msg/ExecLegacyContent";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgExecLegacyContent>;
    requestDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgExecLegacyContent>;
    responseSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse>;
    responseDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse>;
}
interface IMsgService_IVote extends grpc.MethodDefinition<cosmos_gov_v1_tx_pb.MsgVote, cosmos_gov_v1_tx_pb.MsgVoteResponse> {
    path: "/cosmos.gov.v1.Msg/Vote";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgVote>;
    requestDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgVote>;
    responseSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgVoteResponse>;
    responseDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgVoteResponse>;
}
interface IMsgService_IVoteWeighted extends grpc.MethodDefinition<cosmos_gov_v1_tx_pb.MsgVoteWeighted, cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse> {
    path: "/cosmos.gov.v1.Msg/VoteWeighted";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgVoteWeighted>;
    requestDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgVoteWeighted>;
    responseSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse>;
    responseDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse>;
}
interface IMsgService_IDeposit extends grpc.MethodDefinition<cosmos_gov_v1_tx_pb.MsgDeposit, cosmos_gov_v1_tx_pb.MsgDepositResponse> {
    path: "/cosmos.gov.v1.Msg/Deposit";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgDeposit>;
    requestDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgDeposit>;
    responseSerialize: grpc.serialize<cosmos_gov_v1_tx_pb.MsgDepositResponse>;
    responseDeserialize: grpc.deserialize<cosmos_gov_v1_tx_pb.MsgDepositResponse>;
}

export const MsgService: IMsgService;

export interface IMsgServer {
    submitProposal: grpc.handleUnaryCall<cosmos_gov_v1_tx_pb.MsgSubmitProposal, cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse>;
    execLegacyContent: grpc.handleUnaryCall<cosmos_gov_v1_tx_pb.MsgExecLegacyContent, cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse>;
    vote: grpc.handleUnaryCall<cosmos_gov_v1_tx_pb.MsgVote, cosmos_gov_v1_tx_pb.MsgVoteResponse>;
    voteWeighted: grpc.handleUnaryCall<cosmos_gov_v1_tx_pb.MsgVoteWeighted, cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse>;
    deposit: grpc.handleUnaryCall<cosmos_gov_v1_tx_pb.MsgDeposit, cosmos_gov_v1_tx_pb.MsgDepositResponse>;
}

export interface IMsgClient {
    submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    vote(request: cosmos_gov_v1_tx_pb.MsgVote, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    vote(request: cosmos_gov_v1_tx_pb.MsgVote, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    vote(request: cosmos_gov_v1_tx_pb.MsgVote, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
    deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
    deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
}

export class MsgClient extends grpc.Client implements IMsgClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
    public submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    public submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    public submitProposal(request: cosmos_gov_v1_tx_pb.MsgSubmitProposal, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgSubmitProposalResponse) => void): grpc.ClientUnaryCall;
    public execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    public execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    public execLegacyContent(request: cosmos_gov_v1_tx_pb.MsgExecLegacyContent, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgExecLegacyContentResponse) => void): grpc.ClientUnaryCall;
    public vote(request: cosmos_gov_v1_tx_pb.MsgVote, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    public vote(request: cosmos_gov_v1_tx_pb.MsgVote, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    public vote(request: cosmos_gov_v1_tx_pb.MsgVote, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteResponse) => void): grpc.ClientUnaryCall;
    public voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    public voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    public voteWeighted(request: cosmos_gov_v1_tx_pb.MsgVoteWeighted, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgVoteWeightedResponse) => void): grpc.ClientUnaryCall;
    public deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
    public deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
    public deposit(request: cosmos_gov_v1_tx_pb.MsgDeposit, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: cosmos_gov_v1_tx_pb.MsgDepositResponse) => void): grpc.ClientUnaryCall;
}
