import type { Address } from "@morpho-org/blue-sdk"; import { type ERC20ApprovalAction, type Transaction } from "../../types"; /** * Get token "requirement" for approval. * * Verify if the allowance is enough on the spender contract. * => If not, approve the token to the spender contract with classic approval transaction on the required amount. * => If the allowance is enough, return an empty array. * * Handle logic for reset approval before approving (if needed). * * @param params - Destructured object with: * @param params.address - ERC20 token address. * @param params.chainId - Chain/network id. * @param params.args - Object with: * @param params.args.spendAmount - Spend amount required for the action. * @param params.args.approvalAmount - Approval amount to be approved. * @param params.args.spender - Spender contract address. * @param params.allowances - Allowance for the spender contract. * @returns An array of requirement transaction object. */ export declare const getRequirementsApproval: (params: { address: Address; chainId: number; args: { approvalAmount: bigint; spendAmount: bigint; spender: Address; }; allowances: bigint; }) => Readonly>[];