import type { Hex } from 'viem'; /** * Protocol Action Catalog — shared ABI metadata for encode/decode. * Single source of truth: ABIs live here, decoders import from here. */ export declare const erc20ApproveAbi: { readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }; export declare const erc20TransferAbi: { readonly name: "transfer"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "to"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }; export declare const erc20BalanceOfAbi: { readonly name: "balanceOf"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }; export declare const uniswapV3ExactInputSingleAbi: { readonly name: "exactInputSingle"; readonly type: "function"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "params"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "tokenIn"; readonly type: "address"; }, { readonly name: "tokenOut"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amountIn"; readonly type: "uint256"; }, { readonly name: "amountOutMinimum"; readonly type: "uint256"; }, { readonly name: "sqrtPriceLimitX96"; readonly type: "uint160"; }]; }]; readonly outputs: readonly [{ readonly name: "amountOut"; readonly type: "uint256"; }]; }; export declare const erc20Abi: readonly [{ readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly name: "transfer"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "to"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }]; export declare const uniswapV3SwapRouterAbi: readonly [{ readonly name: "exactInputSingle"; readonly type: "function"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "params"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "tokenIn"; readonly type: "address"; }, { readonly name: "tokenOut"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amountIn"; readonly type: "uint256"; }, { readonly name: "amountOutMinimum"; readonly type: "uint256"; }, { readonly name: "sqrtPriceLimitX96"; readonly type: "uint160"; }]; }]; readonly outputs: readonly [{ readonly name: "amountOut"; readonly type: "uint256"; }]; }]; export declare const aaveV3SupplyAbi: { readonly name: "supply"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly name: "referralCode"; readonly type: "uint16"; }]; readonly outputs: readonly []; }; export declare const aaveV3BorrowAbi: { readonly name: "borrow"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly name: "referralCode"; readonly type: "uint16"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly outputs: readonly []; }; export declare const aaveV3RepayAbi: { readonly name: "repay"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }; export declare const aaveV3WithdrawAbi: { readonly name: "withdraw"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "to"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }; export declare const aaveV3PoolAbi: readonly [{ readonly name: "supply"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }, { readonly name: "referralCode"; readonly type: "uint16"; }]; readonly outputs: readonly []; }, { readonly name: "borrow"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly name: "referralCode"; readonly type: "uint16"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly name: "repay"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "interestRateMode"; readonly type: "uint256"; }, { readonly name: "onBehalfOf"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly name: "withdraw"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "asset"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "to"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }]; export interface ProtocolAction { readonly protocol: string; readonly action: string; readonly selector: Hex; readonly abi: readonly [typeof erc20ApproveAbi | typeof erc20TransferAbi | typeof uniswapV3ExactInputSingleAbi | typeof aaveV3SupplyAbi | typeof aaveV3BorrowAbi | typeof aaveV3RepayAbi | typeof aaveV3WithdrawAbi]; readonly paramNames: readonly string[]; readonly paramTypes: readonly string[]; } export declare const ACTION_CATALOG: Readonly>; /** List all available action keys for help/error messages */ export declare function listActions(): string[];