import { SubaccountId, SubaccountIdSDKType } from "../subaccounts/subaccount";
import { NumShares, NumSharesSDKType } from "./share";
import { QuotingParams, QuotingParamsSDKType, OperatorParams, OperatorParamsSDKType, VaultParams, VaultParamsSDKType, Params, ParamsSDKType } from "./params";
import { VaultId, VaultIdSDKType } from "./vault";
import * as _m0 from "protobufjs/minimal";
import { DeepPartial } from "../../helpers";
/**
 * MsgDepositToMegavault deposits the specified asset from the subaccount to
 * megavault.
 */
export interface MsgDepositToMegavault {
    /** The subaccount to deposit from. */
    subaccountId?: SubaccountId;
    /** Number of quote quantums to deposit. */
    quoteQuantums: Uint8Array;
}
/**
 * MsgDepositToMegavault deposits the specified asset from the subaccount to
 * megavault.
 */
export interface MsgDepositToMegavaultSDKType {
    subaccount_id?: SubaccountIdSDKType;
    quote_quantums: Uint8Array;
}
/** MsgDepositToMegavaultResponse is the Msg/DepositToMegavault response type. */
export interface MsgDepositToMegavaultResponse {
    /** The number of shares minted from the deposit. */
    mintedShares?: NumShares;
}
/** MsgDepositToMegavaultResponse is the Msg/DepositToMegavault response type. */
export interface MsgDepositToMegavaultResponseSDKType {
    minted_shares?: NumSharesSDKType;
}
/**
 * MsgWithdrawFromMegavault withdraws the specified shares from megavault to
 * a subaccount.
 */
export interface MsgWithdrawFromMegavault {
    /** The subaccount to withdraw to. */
    subaccountId?: SubaccountId;
    /** Number of shares to withdraw. */
    shares?: NumShares;
    /**
     * The minimum number of quote quantums above shares should redeem, i.e.
     * transaction fails if above shares redeem less than min_quote_quantums.
     */
    minQuoteQuantums: Uint8Array;
}
/**
 * MsgWithdrawFromMegavault withdraws the specified shares from megavault to
 * a subaccount.
 */
export interface MsgWithdrawFromMegavaultSDKType {
    subaccount_id?: SubaccountIdSDKType;
    shares?: NumSharesSDKType;
    min_quote_quantums: Uint8Array;
}
/**
 * MsgWithdrawFromMegavaultResponse is the Msg/WithdrawFromMegavault response
 * type.
 */
export interface MsgWithdrawFromMegavaultResponse {
    /** The number of quote quantums redeemed from the withdrawal. */
    quoteQuantums: Uint8Array;
}
/**
 * MsgWithdrawFromMegavaultResponse is the Msg/WithdrawFromMegavault response
 * type.
 */
export interface MsgWithdrawFromMegavaultResponseSDKType {
    quote_quantums: Uint8Array;
}
/**
 * MsgUpdateDefaultQuotingParams is the Msg/UpdateDefaultQuotingParams request
 * type.
 */
export interface MsgUpdateDefaultQuotingParams {
    authority: string;
    /** The quoting parameters to update to. Every field must be set. */
    defaultQuotingParams?: QuotingParams;
}
/**
 * MsgUpdateDefaultQuotingParams is the Msg/UpdateDefaultQuotingParams request
 * type.
 */
export interface MsgUpdateDefaultQuotingParamsSDKType {
    authority: string;
    default_quoting_params?: QuotingParamsSDKType;
}
/**
 * MsgUpdateDefaultQuotingParamsResponse is the Msg/UpdateDefaultQuotingParams
 * response type.
 */
export interface MsgUpdateDefaultQuotingParamsResponse {
}
/**
 * MsgUpdateDefaultQuotingParamsResponse is the Msg/UpdateDefaultQuotingParams
 * response type.
 */
export interface MsgUpdateDefaultQuotingParamsResponseSDKType {
}
/** MsgSetVaultParams is the Msg/SetVaultParams request type. */
export interface MsgSetVaultParams {
    authority: string;
    /** The vault to set params of. */
    vaultId?: VaultId;
    /** The parameters to set. */
    vaultParams?: VaultParams;
}
/** MsgSetVaultParams is the Msg/SetVaultParams request type. */
export interface MsgSetVaultParamsSDKType {
    authority: string;
    vault_id?: VaultIdSDKType;
    vault_params?: VaultParamsSDKType;
}
/** MsgSetVaultParamsResponse is the Msg/SetVaultParams response type. */
export interface MsgSetVaultParamsResponse {
}
/** MsgSetVaultParamsResponse is the Msg/SetVaultParams response type. */
export interface MsgSetVaultParamsResponseSDKType {
}
/** MsgUnlockShares is the Msg/UnlockShares request type. */
export interface MsgUnlockShares {
    authority: string;
    /** Address of the owner to unlock shares of. */
    ownerAddress: string;
}
/** MsgUnlockShares is the Msg/UnlockShares request type. */
export interface MsgUnlockSharesSDKType {
    authority: string;
    owner_address: string;
}
/** MsgUnlockSharesResponse is the Msg/UnlockShares response type. */
export interface MsgUnlockSharesResponse {
    /** The number of shares unlocked. */
    unlockedShares?: NumShares;
}
/** MsgUnlockSharesResponse is the Msg/UnlockShares response type. */
export interface MsgUnlockSharesResponseSDKType {
    unlocked_shares?: NumSharesSDKType;
}
/** MsgUpdateOperatorParams is the Msg/UpdateOperatorParams request type. */
export interface MsgUpdateOperatorParams {
    authority: string;
    /** Operator parameters to set. */
    params?: OperatorParams;
}
/** MsgUpdateOperatorParams is the Msg/UpdateOperatorParams request type. */
export interface MsgUpdateOperatorParamsSDKType {
    authority: string;
    params?: OperatorParamsSDKType;
}
/** MsgUpdateVaultParamsResponse is the Msg/UpdateOperatorParams response type. */
export interface MsgUpdateOperatorParamsResponse {
}
/** MsgUpdateVaultParamsResponse is the Msg/UpdateOperatorParams response type. */
export interface MsgUpdateOperatorParamsResponseSDKType {
}
/** MsgAllocateToVault is the Msg/AllocateToVault request type. */
export interface MsgAllocateToVault {
    authority: string;
    /** The vault to allocate to. */
    vaultId?: VaultId;
    /** Number of quote quantums to allocate. */
    quoteQuantums: Uint8Array;
}
/** MsgAllocateToVault is the Msg/AllocateToVault request type. */
export interface MsgAllocateToVaultSDKType {
    authority: string;
    vault_id?: VaultIdSDKType;
    quote_quantums: Uint8Array;
}
/** MsgAllocateToVaultResponse is the Msg/AllocateToVault response type. */
export interface MsgAllocateToVaultResponse {
}
/** MsgAllocateToVaultResponse is the Msg/AllocateToVault response type. */
export interface MsgAllocateToVaultResponseSDKType {
}
/** MsgRetrieveFromVault is the Msg/RetrieveFromVault request type. */
export interface MsgRetrieveFromVault {
    authority: string;
    /** The vault to retrieve from. */
    vaultId?: VaultId;
    /** Number of quote quantums to retrieve. */
    quoteQuantums: Uint8Array;
}
/** MsgRetrieveFromVault is the Msg/RetrieveFromVault request type. */
export interface MsgRetrieveFromVaultSDKType {
    authority: string;
    vault_id?: VaultIdSDKType;
    quote_quantums: Uint8Array;
}
/** MsgRetrieveFromVaultResponse is the Msg/RetrieveFromVault response type. */
export interface MsgRetrieveFromVaultResponse {
}
/** MsgRetrieveFromVaultResponse is the Msg/RetrieveFromVault response type. */
export interface MsgRetrieveFromVaultResponseSDKType {
}
/**
 * MsgUpdateParams is the Msg/UpdateParams request type.
 * Deprecated since v6.x as is replaced by MsgUpdateDefaultQuotingParams.
 */
/** @deprecated */
export interface MsgUpdateParams {
    authority: string;
    /** The parameters to update. Each field must be set. */
    params?: Params;
}
/**
 * MsgUpdateParams is the Msg/UpdateParams request type.
 * Deprecated since v6.x as is replaced by MsgUpdateDefaultQuotingParams.
 */
/** @deprecated */
export interface MsgUpdateParamsSDKType {
    authority: string;
    params?: ParamsSDKType;
}
/**
 * MsgSetVaultQuotingParams is the Msg/SetVaultQuotingParams request type.
 * Deprecated since v6.x as is replaced by MsgSetVaultParams.
 */
/** @deprecated */
export interface MsgSetVaultQuotingParams {
    authority: string;
    /** The vault to set quoting params of. */
    vaultId?: VaultId;
    /** The quoting parameters to set. Each field must be set. */
    quotingParams?: QuotingParams;
}
/**
 * MsgSetVaultQuotingParams is the Msg/SetVaultQuotingParams request type.
 * Deprecated since v6.x as is replaced by MsgSetVaultParams.
 */
/** @deprecated */
export interface MsgSetVaultQuotingParamsSDKType {
    authority: string;
    vault_id?: VaultIdSDKType;
    quoting_params?: QuotingParamsSDKType;
}
export declare const MsgDepositToMegavault: {
    encode(message: MsgDepositToMegavault, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositToMegavault;
    fromPartial(object: DeepPartial<MsgDepositToMegavault>): MsgDepositToMegavault;
};
export declare const MsgDepositToMegavaultResponse: {
    encode(message: MsgDepositToMegavaultResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositToMegavaultResponse;
    fromPartial(object: DeepPartial<MsgDepositToMegavaultResponse>): MsgDepositToMegavaultResponse;
};
export declare const MsgWithdrawFromMegavault: {
    encode(message: MsgWithdrawFromMegavault, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawFromMegavault;
    fromPartial(object: DeepPartial<MsgWithdrawFromMegavault>): MsgWithdrawFromMegavault;
};
export declare const MsgWithdrawFromMegavaultResponse: {
    encode(message: MsgWithdrawFromMegavaultResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgWithdrawFromMegavaultResponse;
    fromPartial(object: DeepPartial<MsgWithdrawFromMegavaultResponse>): MsgWithdrawFromMegavaultResponse;
};
export declare const MsgUpdateDefaultQuotingParams: {
    encode(message: MsgUpdateDefaultQuotingParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateDefaultQuotingParams;
    fromPartial(object: DeepPartial<MsgUpdateDefaultQuotingParams>): MsgUpdateDefaultQuotingParams;
};
export declare const MsgUpdateDefaultQuotingParamsResponse: {
    encode(_: MsgUpdateDefaultQuotingParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateDefaultQuotingParamsResponse;
    fromPartial(_: DeepPartial<MsgUpdateDefaultQuotingParamsResponse>): MsgUpdateDefaultQuotingParamsResponse;
};
export declare const MsgSetVaultParams: {
    encode(message: MsgSetVaultParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetVaultParams;
    fromPartial(object: DeepPartial<MsgSetVaultParams>): MsgSetVaultParams;
};
export declare const MsgSetVaultParamsResponse: {
    encode(_: MsgSetVaultParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetVaultParamsResponse;
    fromPartial(_: DeepPartial<MsgSetVaultParamsResponse>): MsgSetVaultParamsResponse;
};
export declare const MsgUnlockShares: {
    encode(message: MsgUnlockShares, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnlockShares;
    fromPartial(object: DeepPartial<MsgUnlockShares>): MsgUnlockShares;
};
export declare const MsgUnlockSharesResponse: {
    encode(message: MsgUnlockSharesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnlockSharesResponse;
    fromPartial(object: DeepPartial<MsgUnlockSharesResponse>): MsgUnlockSharesResponse;
};
export declare const MsgUpdateOperatorParams: {
    encode(message: MsgUpdateOperatorParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateOperatorParams;
    fromPartial(object: DeepPartial<MsgUpdateOperatorParams>): MsgUpdateOperatorParams;
};
export declare const MsgUpdateOperatorParamsResponse: {
    encode(_: MsgUpdateOperatorParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateOperatorParamsResponse;
    fromPartial(_: DeepPartial<MsgUpdateOperatorParamsResponse>): MsgUpdateOperatorParamsResponse;
};
export declare const MsgAllocateToVault: {
    encode(message: MsgAllocateToVault, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgAllocateToVault;
    fromPartial(object: DeepPartial<MsgAllocateToVault>): MsgAllocateToVault;
};
export declare const MsgAllocateToVaultResponse: {
    encode(_: MsgAllocateToVaultResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgAllocateToVaultResponse;
    fromPartial(_: DeepPartial<MsgAllocateToVaultResponse>): MsgAllocateToVaultResponse;
};
export declare const MsgRetrieveFromVault: {
    encode(message: MsgRetrieveFromVault, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgRetrieveFromVault;
    fromPartial(object: DeepPartial<MsgRetrieveFromVault>): MsgRetrieveFromVault;
};
export declare const MsgRetrieveFromVaultResponse: {
    encode(_: MsgRetrieveFromVaultResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgRetrieveFromVaultResponse;
    fromPartial(_: DeepPartial<MsgRetrieveFromVaultResponse>): MsgRetrieveFromVaultResponse;
};
export declare const MsgUpdateParams: {
    encode(message: MsgUpdateParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateParams;
    fromPartial(object: DeepPartial<MsgUpdateParams>): MsgUpdateParams;
};
export declare const MsgSetVaultQuotingParams: {
    encode(message: MsgSetVaultQuotingParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetVaultQuotingParams;
    fromPartial(object: DeepPartial<MsgSetVaultQuotingParams>): MsgSetVaultQuotingParams;
};
//# sourceMappingURL=tx.d.ts.map