// package: cosmwasm.wasm.v1
// file: cosmwasm/wasm/v1/tx.proto

import * as cosmwasm_wasm_v1_tx_pb from "../../../cosmwasm/wasm/v1/tx_pb";
import {grpc} from "@improbable-eng/grpc-web";

type MsgStoreCode = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreCode;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreCodeResponse;
};

type MsgInstantiateContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgInstantiateContractResponse;
};

type MsgInstantiateContract2 = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2Response;
};

type MsgExecuteContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgExecuteContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgExecuteContractResponse;
};

type MsgMigrateContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgMigrateContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgMigrateContractResponse;
};

type MsgUpdateAdmin = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateAdmin;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateAdminResponse;
};

type MsgClearAdmin = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgClearAdmin;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgClearAdminResponse;
};

type MsgUpdateInstantiateConfig = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfig;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfigResponse;
};

type MsgUpdateParams = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateParams;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateParamsResponse;
};

type MsgSudoContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgSudoContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgSudoContractResponse;
};

type MsgPinCodes = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgPinCodes;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgPinCodesResponse;
};

type MsgUnpinCodes = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgUnpinCodes;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgUnpinCodesResponse;
};

type MsgStoreAndInstantiateContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContractResponse;
};

type MsgRemoveCodeUploadParamsAddresses = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddresses;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddressesResponse;
};

type MsgAddCodeUploadParamsAddresses = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddresses;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddressesResponse;
};

type MsgStoreAndMigrateContract = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContract;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContractResponse;
};

type MsgUpdateContractLabel = {
  readonly methodName: string;
  readonly service: typeof Msg;
  readonly requestStream: false;
  readonly responseStream: false;
  readonly requestType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabel;
  readonly responseType: typeof cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabelResponse;
};

export class Msg {
  static readonly serviceName: string;
  static readonly StoreCode: MsgStoreCode;
  static readonly InstantiateContract: MsgInstantiateContract;
  static readonly InstantiateContract2: MsgInstantiateContract2;
  static readonly ExecuteContract: MsgExecuteContract;
  static readonly MigrateContract: MsgMigrateContract;
  static readonly UpdateAdmin: MsgUpdateAdmin;
  static readonly ClearAdmin: MsgClearAdmin;
  static readonly UpdateInstantiateConfig: MsgUpdateInstantiateConfig;
  static readonly UpdateParams: MsgUpdateParams;
  static readonly SudoContract: MsgSudoContract;
  static readonly PinCodes: MsgPinCodes;
  static readonly UnpinCodes: MsgUnpinCodes;
  static readonly StoreAndInstantiateContract: MsgStoreAndInstantiateContract;
  static readonly RemoveCodeUploadParamsAddresses: MsgRemoveCodeUploadParamsAddresses;
  static readonly AddCodeUploadParamsAddresses: MsgAddCodeUploadParamsAddresses;
  static readonly StoreAndMigrateContract: MsgStoreAndMigrateContract;
  static readonly UpdateContractLabel: MsgUpdateContractLabel;
}

export type ServiceError = { message: string, code: number; metadata: grpc.Metadata }
export type Status = { details: string, code: number; metadata: grpc.Metadata }

interface UnaryResponse {
  cancel(): void;
}
interface ResponseStream<T> {
  cancel(): void;
  on(type: 'data', handler: (message: T) => void): ResponseStream<T>;
  on(type: 'end', handler: (status?: Status) => void): ResponseStream<T>;
  on(type: 'status', handler: (status: Status) => void): ResponseStream<T>;
}
interface RequestStream<T> {
  write(message: T): RequestStream<T>;
  end(): void;
  cancel(): void;
  on(type: 'end', handler: (status?: Status) => void): RequestStream<T>;
  on(type: 'status', handler: (status: Status) => void): RequestStream<T>;
}
interface BidirectionalStream<ReqT, ResT> {
  write(message: ReqT): BidirectionalStream<ReqT, ResT>;
  end(): void;
  cancel(): void;
  on(type: 'data', handler: (message: ResT) => void): BidirectionalStream<ReqT, ResT>;
  on(type: 'end', handler: (status?: Status) => void): BidirectionalStream<ReqT, ResT>;
  on(type: 'status', handler: (status: Status) => void): BidirectionalStream<ReqT, ResT>;
}

export class MsgClient {
  readonly serviceHost: string;

  constructor(serviceHost: string, options?: grpc.RpcOptions);
  storeCode(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreCode,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreCodeResponse|null) => void
  ): UnaryResponse;
  storeCode(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreCode,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreCodeResponse|null) => void
  ): UnaryResponse;
  instantiateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContractResponse|null) => void
  ): UnaryResponse;
  instantiateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContractResponse|null) => void
  ): UnaryResponse;
  instantiateContract2(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2Response|null) => void
  ): UnaryResponse;
  instantiateContract2(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgInstantiateContract2Response|null) => void
  ): UnaryResponse;
  executeContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgExecuteContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgExecuteContractResponse|null) => void
  ): UnaryResponse;
  executeContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgExecuteContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgExecuteContractResponse|null) => void
  ): UnaryResponse;
  migrateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgMigrateContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgMigrateContractResponse|null) => void
  ): UnaryResponse;
  migrateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgMigrateContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgMigrateContractResponse|null) => void
  ): UnaryResponse;
  updateAdmin(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateAdmin,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateAdminResponse|null) => void
  ): UnaryResponse;
  updateAdmin(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateAdmin,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateAdminResponse|null) => void
  ): UnaryResponse;
  clearAdmin(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgClearAdmin,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgClearAdminResponse|null) => void
  ): UnaryResponse;
  clearAdmin(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgClearAdmin,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgClearAdminResponse|null) => void
  ): UnaryResponse;
  updateInstantiateConfig(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfig,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfigResponse|null) => void
  ): UnaryResponse;
  updateInstantiateConfig(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfig,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateInstantiateConfigResponse|null) => void
  ): UnaryResponse;
  updateParams(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateParams,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateParamsResponse|null) => void
  ): UnaryResponse;
  updateParams(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateParams,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateParamsResponse|null) => void
  ): UnaryResponse;
  sudoContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgSudoContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgSudoContractResponse|null) => void
  ): UnaryResponse;
  sudoContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgSudoContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgSudoContractResponse|null) => void
  ): UnaryResponse;
  pinCodes(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgPinCodes,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgPinCodesResponse|null) => void
  ): UnaryResponse;
  pinCodes(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgPinCodes,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgPinCodesResponse|null) => void
  ): UnaryResponse;
  unpinCodes(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUnpinCodes,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUnpinCodesResponse|null) => void
  ): UnaryResponse;
  unpinCodes(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUnpinCodes,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUnpinCodesResponse|null) => void
  ): UnaryResponse;
  storeAndInstantiateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContractResponse|null) => void
  ): UnaryResponse;
  storeAndInstantiateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndInstantiateContractResponse|null) => void
  ): UnaryResponse;
  removeCodeUploadParamsAddresses(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddresses,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddressesResponse|null) => void
  ): UnaryResponse;
  removeCodeUploadParamsAddresses(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddresses,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgRemoveCodeUploadParamsAddressesResponse|null) => void
  ): UnaryResponse;
  addCodeUploadParamsAddresses(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddresses,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddressesResponse|null) => void
  ): UnaryResponse;
  addCodeUploadParamsAddresses(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddresses,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgAddCodeUploadParamsAddressesResponse|null) => void
  ): UnaryResponse;
  storeAndMigrateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContract,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContractResponse|null) => void
  ): UnaryResponse;
  storeAndMigrateContract(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContract,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgStoreAndMigrateContractResponse|null) => void
  ): UnaryResponse;
  updateContractLabel(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabel,
    metadata: grpc.Metadata,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabelResponse|null) => void
  ): UnaryResponse;
  updateContractLabel(
    requestMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabel,
    callback: (error: ServiceError|null, responseMessage: cosmwasm_wasm_v1_tx_pb.MsgUpdateContractLabelResponse|null) => void
  ): UnaryResponse;
}

