import { type Address } from "viem"; import { type Metadata, type Transaction, type VaultV2RedeemAction } from "../../types"; export interface VaultV2RedeemParams { vault: { address: Address; }; args: { shares: bigint; recipient: Address; onBehalf: Address; }; metadata?: Metadata; } /** * Prepares a redeem transaction for the VaultV2 contract. * * This function constructs the transaction data required to redeem a specified amount of shares from the vault. * * IMPORTANT FOR DEVELOPERS: * This flow is not routed through the bundler because the risks are negligible since these operations cannot be affected by attacks. This avoids unnecessary approvals and keeps the UX clean. * * @param {Object} params - The vault related parameters. * @param {Object} params.vault - The vault related parameters. * @param {Address} params.vault.address - The vault address. * @param {Object} params.args - The redeem related parameters. * @param {bigint} params.args.shares - The amount of shares to redeem. * @param {Address} params.args.recipient - The recipient address. * @param {Address} params.args.onBehalf - The address on behalf of which the redeem is made. * @param {Metadata} [params.metadata] - Optional the metadata. * @returns {Readonly>} The prepared redeem transaction. */ export declare const vaultV2Redeem: ({ vault: { address: vaultAddress }, args: { shares, recipient, onBehalf }, metadata, }: VaultV2RedeemParams) => Readonly>;