import { type Address } from "viem"; import { type Metadata, type Transaction, type VaultV1WithdrawAction } from "../../types"; export interface VaultV1WithdrawParams { vault: { address: Address; }; args: { amount: bigint; recipient: Address; onBehalf: Address; }; metadata?: Metadata; } /** * Prepares a withdraw transaction for a VaultV1 (MetaMorpho) contract. * * Direct vault call — no bundler needed. Withdraw has no inflation attack surface. * * @param {Object} params - The withdraw parameters. * @param {Object} params.vault - The vault identifiers. * @param {Address} params.vault.address - The vault address. * @param {Object} params.args - The withdraw arguments. * @param {bigint} params.args.amount - Amount of assets to withdraw. * @param {Address} params.args.recipient - Receives the withdrawn assets. * @param {Address} params.args.onBehalf - Address whose shares are burned. * @param {Metadata} [params.metadata] - Optional analytics metadata. * @returns {Readonly>} The prepared withdraw transaction. */ export declare const vaultV1Withdraw: ({ vault: { address: vaultAddress }, args: { amount, recipient, onBehalf }, metadata, }: VaultV1WithdrawParams) => Readonly>;