import type { ListPendingWithdrawalsParams, ListPendingWithdrawalsResponse, TransactionResult, WithdrawalSource, WithdrawResult } from "@0xmonaco/types"; export interface UseVaultReturn { /** Approve the vault to spend tokens */ approve: (assetId: string, amount: bigint, autoWait?: boolean) => Promise; /** Deposit tokens into the vault */ deposit: (assetId: string, amount: bigint, autoWait?: boolean) => Promise; /** Initiate a withdrawal and submit the pre-signed calldata on-chain */ withdraw: (assetId: string, amount: bigint, autoWait?: boolean, source?: WithdrawalSource) => Promise; /** Retry a withdrawal whose on-chain submission never landed — does NOT create a new one */ retryWithdrawal: (withdrawalIndex: number, autoWait?: boolean) => Promise; /** List the caller's pending withdrawals (awaiting on-chain confirmation), newest first */ listPendingWithdrawals: (params?: ListPendingWithdrawalsParams) => Promise; /** Get the allowance for a token */ getAllowance: (assetId: string) => Promise; /** Check if a token needs approval for an amount */ needsApproval: (assetId: string, amount: bigint) => Promise; }