export declare const BAMM_ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "bytes"; readonly name: "_encodedBammConstructorArgs"; readonly type: "bytes"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "target"; readonly type: "address"; }]; readonly name: "AddressEmptyCode"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "AddressInsufficientBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "CannotWithdrawToSelf"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "FailedInnerCall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncorrectAmountOutMinimum"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncorrectSwapTokens"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidRent"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidUtilityRate"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidVault"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoBAMMTokensMinted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotFactory"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotSolvent"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "OraclePriceDeviated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ReentrancyGuardReentrantCall"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "value"; readonly type: "int256"; }]; readonly name: "SafeCastOverflowedIntToUint"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "SafeCastOverflowedUintToInt"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "SafeERC20FailedOperation"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Solvent"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ZeroLiquidityMinted"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "lender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "lpIn"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "bammOut"; readonly type: "uint256"; }]; readonly name: "BAMMMinted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "lender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "bammIn"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "lpOut"; readonly type: "uint256"; }]; readonly name: "BAMMRedeemed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "sqrtRentedReal"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "sqrtBalance"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "rentedMultiplier"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "interestRate"; readonly type: "uint256"; }]; readonly name: "BAMMState"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }]; readonly name: "ExecuteAction"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "liquidator"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "token0Fee"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "token1Fee"; readonly type: "uint256"; }]; readonly name: "MicroLiquidate"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldMaxOracleDiff"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newMaxOracleDiff"; readonly type: "uint256"; }]; readonly name: "NewMaxOracleDiff"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousVariableInterestRate"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newVariableInterestRate"; readonly type: "address"; }]; readonly name: "NewVariableInterestRate"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "token0ToAddToLp"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "token1ToAddToLp"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "closePosition"; readonly type: "bool"; }]; readonly name: "RentRepaid"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token0Amount"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token1Amount"; readonly type: "int256"; }]; readonly name: "Renting"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }]; readonly name: "VaultSwap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }]; readonly name: "VaultUpdated"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "FEE_SHARE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "LIQUIDATION_FEE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_UTILITY_RATE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MINIMUM_LIQUIDITY"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "PRECISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "SOLVENCY_THRESHOLD_FULL_LIQUIDATION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "SOLVENCY_THRESHOLD_LIQUIDATION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "addInterest"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "reserve0"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserve1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_rentedMultiplier"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "int256"; readonly name: "token0Amount"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1Amount"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "token0AmountMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "token1AmountMin"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "closePosition"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "approveMax"; readonly type: "bool"; }, { readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct IBAMM.Action"; readonly name: "action"; readonly type: "tuple"; }]; readonly name: "executeActions"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rented"; readonly type: "int256"; }]; readonly internalType: "struct IBAMM.Vault"; readonly name: "vault"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "int256"; readonly name: "token0Amount"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1Amount"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rent"; readonly type: "int256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "token0AmountMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "token1AmountMin"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "closePosition"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "approveMax"; readonly type: "bool"; }, { readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct IBAMM.Action"; readonly name: "action"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "tokenIn"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenOut"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amountOutMinimum"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "approveMax"; readonly type: "bool"; }, { readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "route"; readonly type: "bytes"; }]; readonly internalType: "struct IFraxswapRouterMultihop.FraxswapParams"; readonly name: "swapParams"; readonly type: "tuple"; }]; readonly name: "executeActionsAndSwap"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rented"; readonly type: "int256"; }]; readonly internalType: "struct IBAMM.Vault"; readonly name: "vault"; readonly type: "tuple"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "factory"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "fraxswapOracle"; readonly outputs: readonly [{ readonly internalType: "contract IFraxswapOracle"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "fullUtilizationRate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "tokenIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveOut"; readonly type: "uint256"; }]; readonly name: "getMaxSell"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "maxSell"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getUserVault"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rented"; readonly type: "int256"; }]; readonly internalType: "struct IBAMM.Vault"; readonly name: "vault"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "iBammErc20"; readonly outputs: readonly [{ readonly internalType: "contract BAMMERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "isUser"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "maxOracleDiff"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "microLiquidate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "token0Fee"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "token1Fee"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lpIn"; readonly type: "uint256"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "bammOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pair"; readonly outputs: readonly [{ readonly internalType: "contract IFraxswapPair"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pairFactory"; readonly outputs: readonly [{ readonly internalType: "contract IFraxswapFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_utilization"; readonly type: "uint256"; }]; readonly name: "previewInterestRate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "newRatePerSec"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "bammIn"; readonly type: "uint256"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "lpOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "rentedMultiplier"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "routerMultihop"; readonly outputs: readonly [{ readonly internalType: "contract IFraxswapRouterMultihop"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newMaxDiff"; readonly type: "uint256"; }]; readonly name: "setMaxOracleDeviation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newVariableInterestRate"; readonly type: "address"; }]; readonly name: "setVariableInterestRate"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "sqrtRented"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "timeSinceLastInterestPayment"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "token0"; readonly outputs: readonly [{ readonly internalType: "contract IERC20Metadata"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "token1"; readonly outputs: readonly [{ readonly internalType: "contract IERC20Metadata"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "userVaults"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: "token0"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "token1"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "rented"; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "users"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "usersArray"; readonly outputs: readonly [{ readonly internalType: "address[]"; readonly name: ""; readonly type: "address[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "usersLength"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "variableInterestRate"; readonly outputs: readonly [{ readonly internalType: "contract IVariableInterestRate"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "version"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "_major"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_minor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_patch"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }];