// @generated by protobuf-ts 2.11.1 with parameter add_pb_suffix
// @generated from protobuf file "injective/insurance/v1beta1/tx.proto" (package "injective.insurance.v1beta1", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { Msg } from "./tx_pb";
import type { MsgClaimVoucherResponse } from "./tx_pb";
import type { MsgClaimVoucher } from "./tx_pb";
import type { MsgUpdateParamsResponse } from "./tx_pb";
import type { MsgUpdateParams } from "./tx_pb";
import type { MsgRequestRedemptionResponse } from "./tx_pb";
import type { MsgRequestRedemption } from "./tx_pb";
import type { MsgUnderwriteResponse } from "./tx_pb";
import type { MsgUnderwrite } from "./tx_pb";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { MsgCreateInsuranceFundResponse } from "./tx_pb";
import type { MsgCreateInsuranceFund } from "./tx_pb";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * Msg defines the insurance Msg service.
 *
 * @generated from protobuf service injective.insurance.v1beta1.Msg
 */
export interface IMsgClient {
    /**
     * CreateInsuranceFund defines a method for creating an insurance fund
     *
     * @generated from protobuf rpc: CreateInsuranceFund
     */
    createInsuranceFund(input: MsgCreateInsuranceFund, options?: RpcOptions): UnaryCall<MsgCreateInsuranceFund, MsgCreateInsuranceFundResponse>;
    /**
     * Underwrite defines a method for depositing tokens to underwrite an
     * insurance fund
     *
     * @generated from protobuf rpc: Underwrite
     */
    underwrite(input: MsgUnderwrite, options?: RpcOptions): UnaryCall<MsgUnderwrite, MsgUnderwriteResponse>;
    /**
     * RequestRedemption defines a method for requesting a redemption of the
     * sender's insurance fund tokens
     *
     * @generated from protobuf rpc: RequestRedemption
     */
    requestRedemption(input: MsgRequestRedemption, options?: RpcOptions): UnaryCall<MsgRequestRedemption, MsgRequestRedemptionResponse>;
    /**
     * @generated from protobuf rpc: UpdateParams
     */
    updateParams(input: MsgUpdateParams, options?: RpcOptions): UnaryCall<MsgUpdateParams, MsgUpdateParamsResponse>;
    /**
     * ClaimVoucher defines a method for claiming an outstanding voucher
     *
     * @generated from protobuf rpc: ClaimVoucher
     */
    claimVoucher(input: MsgClaimVoucher, options?: RpcOptions): UnaryCall<MsgClaimVoucher, MsgClaimVoucherResponse>;
}
/**
 * Msg defines the insurance Msg service.
 *
 * @generated from protobuf service injective.insurance.v1beta1.Msg
 */
export class MsgClient implements IMsgClient, ServiceInfo {
    typeName = Msg.typeName;
    methods = Msg.methods;
    options = Msg.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * CreateInsuranceFund defines a method for creating an insurance fund
     *
     * @generated from protobuf rpc: CreateInsuranceFund
     */
    createInsuranceFund(input: MsgCreateInsuranceFund, options?: RpcOptions): UnaryCall<MsgCreateInsuranceFund, MsgCreateInsuranceFundResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgCreateInsuranceFund, MsgCreateInsuranceFundResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * Underwrite defines a method for depositing tokens to underwrite an
     * insurance fund
     *
     * @generated from protobuf rpc: Underwrite
     */
    underwrite(input: MsgUnderwrite, options?: RpcOptions): UnaryCall<MsgUnderwrite, MsgUnderwriteResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgUnderwrite, MsgUnderwriteResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * RequestRedemption defines a method for requesting a redemption of the
     * sender's insurance fund tokens
     *
     * @generated from protobuf rpc: RequestRedemption
     */
    requestRedemption(input: MsgRequestRedemption, options?: RpcOptions): UnaryCall<MsgRequestRedemption, MsgRequestRedemptionResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRequestRedemption, MsgRequestRedemptionResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: UpdateParams
     */
    updateParams(input: MsgUpdateParams, options?: RpcOptions): UnaryCall<MsgUpdateParams, MsgUpdateParamsResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgUpdateParams, MsgUpdateParamsResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * ClaimVoucher defines a method for claiming an outstanding voucher
     *
     * @generated from protobuf rpc: ClaimVoucher
     */
    claimVoucher(input: MsgClaimVoucher, options?: RpcOptions): UnaryCall<MsgClaimVoucher, MsgClaimVoucherResponse> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgClaimVoucher, MsgClaimVoucherResponse>("unary", this._transport, method, opt, input);
    }
}
