import { ethers } from "ethers"; import { PoolTemplate } from "./pools/index.js"; import { getSupportedNetworks } from "./bridge.js"; import { deployCryptoPoolEstimateGas, deployTwocryptoPoolEstimateGas } from './factory/deploy.js'; export declare const createCurve: () => { init: (this: ReturnType, providerType: "JsonRpc" | "Web3" | "Infura" | "Alchemy" | "NoRPC", providerSettings: "NoRPC" | { url?: string; privateKey?: string; batchMaxCount?: number; } | { externalProvider: ethers.Eip1193Provider; } | { network?: ethers.Networkish; apiKey?: string; }, options?: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; gasStrategy?: import("./interfaces.js").IGasStrategy; chainId?: number; poolsData?: Record; } | undefined) => Promise; chainId: number; signerAddress: string; setCustomFeeData: (customFeeData: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; }) => void; setGasStrategy: (strategy: import("./interfaces.js").IGasStrategy) => void; getPoolList: () => string[]; getMainPoolList: () => string[]; getUserPoolListByLiquidity: (address?: string | undefined) => Promise; getUserPoolListByClaimable: (address?: string | undefined) => Promise; getUserPoolList: (address?: string | undefined, useApi?: boolean | undefined) => Promise; getUserLiquidityUSD: (pools: string[], address?: string | undefined) => Promise; getUserClaimable: (pools: string[], address?: string | undefined) => Promise<{ token: string; symbol: string; amount: string; price: number; }[][]>; PoolTemplate: typeof PoolTemplate; getBasePools: () => Promise; getPool: (poolIdOrAddress: string) => PoolTemplate; getUsdRate: (coin: string) => Promise; getGasPriceFromL1: () => Promise; getGasPriceFromL2: () => Promise; getGasInfoForL2: () => Promise>; getGasPrice: () => Promise; getTVL: (chainId?: number | undefined) => Promise; getBalances: (...args: [coins: string[], ...addresses: string[]] | [coins: string[], ...addresses: string[][]]) => Promise>; getAllowance: (coins: string[], address: string, spender: string) => Promise; hasAllowance: (coins: string[], amounts: (string | number)[], address: string, spender: string) => Promise; ensureAllowance: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined) => Promise; populateApprove: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined, userAddress?: string | undefined) => Promise[]>; getCoinsData: (...args: string[] | string[][]) => Promise<{ name: string; symbol: string; decimals: number; }[]>; getVolume: (chainId?: number | undefined) => Promise<{ totalVolume: number; cryptoVolume: number; cryptoShare: number; }>; getPoolVolumes: () => Promise>; hasDepositAndStake: () => boolean; hasRouter: () => boolean; getCurveLiteNetworks: () => Promise; getNetworkConstants: () => import("./interfaces.js").INetworkConstants; getIsLiteChain: () => boolean; isNoRPC: boolean; factory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, assetType: 0 | 1 | 2 | 3, implementationIdx: 0 | 1 | 2 | 3 | 4 | 5, emaTime?: number | undefined, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; setOracle: (poolAddress: string, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, implementationIdx: 0 | 1) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPlainPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedMetaPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, assetType: 0 | 1 | 2 | 3, implementationIdx: 0 | 1 | 2 | 3 | 4 | 5, emaTime?: number | undefined, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; setOracle: (poolAddress: string, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, implementationIdx: 0 | 1) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; crvUSDFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; getPoolList: () => string[]; }; stableNgFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetTypes: (0 | 1 | 2 | 3)[], implementationIdx: 0, emaTime: number, oracleAddresses: string[], methodNames: string[]) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, offpegFeeMultiplier: string | number, emaTime: number, implementationIdx: 0, assetType: 0 | 1 | 2 | 3, methodName: string, oracleAddress: string) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPlainPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedMetaPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; estimateGas: { deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetTypes: (0 | 1 | 2 | 3)[], implementationIdx: 0, emaTime: number, oracleAddresses: string[], methodNames: string[]) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetType: 0 | 1 | 2 | 3, emaTime: number, implementationIdx: 0, methodName: string, oracleAddress: string) => Promise; }; }; cryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, maHalfTime: number, initialPrice: string | number) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPool: typeof deployCryptoPoolEstimateGas; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; twocryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, maHalfTime: number, initialPrice: string | number, implementationIdx?: import("./constants/twoCryptoImplementations.js").TwoCryptoImplementation | undefined) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; getImplementations: (uiOnly?: boolean) => import("./constants/twoCryptoImplementations.js").TwoCryptoImplementationInfo[]; estimateGas: { deployPool: typeof deployTwocryptoPoolEstimateGas; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; tricryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, emaTime: number, initialPrices: (string | number)[]) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, emaTime: number, initialPrices: (string | number)[]) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; estimateGas: { ensureAllowance: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined) => Promise; }; boosting: { getCrv: (...args: string[] | string[][]) => Promise>; getLockedAmountAndUnlockTime: (...args: string[] | string[][]) => Promise | { lockedAmount: string; unlockTime: number; }>; getVeCrv: (...args: string[] | string[][]) => Promise>; getVeCrvPct: (...args: string[] | string[][]) => Promise>; calcUnlockTime: (days: number, start?: number) => number; isApproved: (amount: string | number) => Promise; approve: (amount: string | number) => Promise; createLock: (amount: string | number, days: number) => Promise; increaseAmount: (amount: string | number) => Promise; increaseUnlockTime: (days: number) => Promise; withdrawLockedCrv: () => Promise; claimableFees: (address?: string | undefined) => Promise; claimFees: (address?: string | undefined) => Promise; claimableFeesCrvUSD: (address?: string | undefined) => Promise; claimFeesCrvUSD: (address?: string | undefined) => Promise; calculateVeCrv: (amount: number | string, unlockTimestamp: number) => number; estimateGas: { approve: (amount: string | number) => Promise; createLock: (amount: string | number, days: number) => Promise; increaseAmount: (amount: string | number) => Promise; increaseUnlockTime: (days: number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; claimFeesCrvUSD: (address?: string | undefined) => Promise; }; sidechain: { lastEthBlock: () => Promise; getAnycallBalance: () => Promise; topUpAnycall: (amount?: string | number | undefined) => Promise; lastBlockSent: (chainId: number) => Promise; blockToSend: () => Promise; sendBlockhash: (block: number, chainId: number) => Promise; submitProof: (block: number, address?: string | undefined) => Promise; estimateGas: { topUpAnycall: (amount?: string | number | undefined) => Promise; sendBlockhash: (block: number, chainId: number) => Promise; submitProof: (block: number, address?: string | undefined) => Promise; }; }; }; router: { getBestRouteAndOutput: (inputCoin: string, outputCoin: string, amount: string | number) => Promise<{ route: import("./interfaces.js").IRoute; output: string; }>; getArgs: (route: import("./interfaces.js").IRoute) => { _route: string[]; _swapParams: number[][]; _pools?: string[]; _basePools?: string[]; _baseTokens?: string[]; _secondBasePools?: string[]; _secondBaseTokens?: string[]; }; setBlacklist: (blacklist: string[]) => void; expected: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; required: (inputCoin: string, outputCoin: string, outAmount: string | number) => Promise; priceImpact: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; isApproved: (inputCoin: string, amount: string | number) => Promise; approve: (inputCoin: string, amount: string | number) => Promise; populateApprove: (inputCoin: string, amount: string | number, isMax: boolean | undefined, userAddress: string) => Promise[]>; swap: (inputCoin: string, outputCoin: string, amount: string | number, slippage?: number | undefined) => Promise; populateSwap: (inputCoin: string, outputCoin: string, amount: string | number, slippage?: number | undefined) => Promise>; getSwappedAmount: (tx: ethers.ContractTransactionResponse, outputCoin: string) => Promise; approveFromCalldata: (tx: ethers.TransactionRequest) => Promise; swapFromCalldata: (tx: ethers.TransactionRequest) => Promise; estimateGas: { approve: (inputCoin: string, amount: string | number) => Promise; swap: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; approveFromCalldata: (tx: ethers.TransactionRequest) => Promise; swapFromCalldata: (tx: ethers.TransactionRequest) => Promise; }; }; fastBridge: { assertIsSupported: () => void; isSupported: () => boolean; getSupportedNetworks: typeof getSupportedNetworks; allowedToBridge: () => Promise<{ min: number; max: number; }>; bridgeCost: () => Promise; isApproved: (amount: string | number) => Promise; approve: (amount: string | number) => Promise; bridge: (amount: string | number, address?: string | undefined) => Promise; estimateGas: { approve: (amount: string | number) => Promise; bridge: (amount: string | number, address?: string | undefined) => Promise; }; }; dao: { crvSupplyStats: () => Promise<{ circulating: string; locked: string; total: string; veCrv: string; averageLockTime: string; }>; userCrv: (address?: string | undefined) => Promise; userVeCrv: (address?: string | undefined) => Promise<{ veCrv: string; veCrvPct: string; lockedCrv: string; unlockTime: number; }>; crvLockIsApproved: (amount: string | number) => Promise; calcCrvUnlockTime: (days: number | string, start?: number | string) => number; claimableFees: (address?: string | undefined) => Promise; crvLockApprove: (amount: string | number) => Promise; createCrvLock: (amount: string | number, days: string | number) => Promise; increaseCrvLockedAmount: (amount: string | number) => Promise; increaseCrvUnlockTime: (days: string | number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; getVotingGaugeList: () => Promise; userGaugeVotes: (address?: string | undefined) => Promise<{ gauges: import("./interfaces.js").IGaugeUserVote[]; powerUsed: string; veCrvUsed: string; }>; voteForGaugeNextTime: (gauge: string) => Promise; voteForGauge: (gauge: string, power: string | number) => Promise; getProposalList: () => Promise; getProposal: (type: "PARAMETER" | "OWNERSHIP", id: number) => Promise; userProposalVotes: (address?: string | undefined) => Promise; voteForProposal: (type: import("./interfaces.js").TVoteType, id: number, support: boolean) => Promise; executeVote: (type: import("./interfaces.js").TVoteType, id: number) => Promise; isCanVoteExecute: (type: import("./interfaces.js").TVoteType, id: number) => Promise; estimateGas: { crvLockApprove: (amount: string | number) => Promise; createCrvLock: (amount: string | number, days: string | number) => Promise; increaseCrvLockedAmount: (amount: string | number) => Promise; increaseCrvUnlockTime: (days: string | number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; voteForGauge: (gauge: string, power: string | number) => Promise; voteForProposal: (type: import("./interfaces.js").TVoteType, id: number, support: boolean) => Promise; executeVote: (type: import("./interfaces.js").TVoteType, id: number) => Promise; }; }; }; declare const _default: { init: (this: ReturnType, providerType: "JsonRpc" | "Web3" | "Infura" | "Alchemy" | "NoRPC", providerSettings: "NoRPC" | { url?: string; privateKey?: string; batchMaxCount?: number; } | { externalProvider: ethers.Eip1193Provider; } | { network?: ethers.Networkish; apiKey?: string; }, options?: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; gasStrategy?: import("./interfaces.js").IGasStrategy; chainId?: number; poolsData?: Record; } | undefined) => Promise; chainId: number; signerAddress: string; setCustomFeeData: (customFeeData: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; }) => void; setGasStrategy: (strategy: import("./interfaces.js").IGasStrategy) => void; getPoolList: () => string[]; getMainPoolList: () => string[]; getUserPoolListByLiquidity: (address?: string | undefined) => Promise; getUserPoolListByClaimable: (address?: string | undefined) => Promise; getUserPoolList: (address?: string | undefined, useApi?: boolean | undefined) => Promise; getUserLiquidityUSD: (pools: string[], address?: string | undefined) => Promise; getUserClaimable: (pools: string[], address?: string | undefined) => Promise<{ token: string; symbol: string; amount: string; price: number; }[][]>; PoolTemplate: typeof PoolTemplate; getBasePools: () => Promise; getPool: (poolIdOrAddress: string) => PoolTemplate; getUsdRate: (coin: string) => Promise; getGasPriceFromL1: () => Promise; getGasPriceFromL2: () => Promise; getGasInfoForL2: () => Promise>; getGasPrice: () => Promise; getTVL: (chainId?: number | undefined) => Promise; getBalances: (...args: [coins: string[], ...addresses: string[]] | [coins: string[], ...addresses: string[][]]) => Promise>; getAllowance: (coins: string[], address: string, spender: string) => Promise; hasAllowance: (coins: string[], amounts: (string | number)[], address: string, spender: string) => Promise; ensureAllowance: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined) => Promise; populateApprove: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined, userAddress?: string | undefined) => Promise[]>; getCoinsData: (...args: string[] | string[][]) => Promise<{ name: string; symbol: string; decimals: number; }[]>; getVolume: (chainId?: number | undefined) => Promise<{ totalVolume: number; cryptoVolume: number; cryptoShare: number; }>; getPoolVolumes: () => Promise>; hasDepositAndStake: () => boolean; hasRouter: () => boolean; getCurveLiteNetworks: () => Promise; getNetworkConstants: () => import("./interfaces.js").INetworkConstants; getIsLiteChain: () => boolean; isNoRPC: boolean; factory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, assetType: 0 | 1 | 2 | 3, implementationIdx: 0 | 1 | 2 | 3 | 4 | 5, emaTime?: number | undefined, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; setOracle: (poolAddress: string, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, implementationIdx: 0 | 1) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPlainPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedMetaPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, assetType: 0 | 1 | 2 | 3, implementationIdx: 0 | 1 | 2 | 3 | 4 | 5, emaTime?: number | undefined, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; setOracle: (poolAddress: string, oracleAddress?: string | undefined, methodName?: string | undefined) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, implementationIdx: 0 | 1) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; crvUSDFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; getPoolList: () => string[]; }; stableNgFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetTypes: (0 | 1 | 2 | 3)[], implementationIdx: 0, emaTime: number, oracleAddresses: string[], methodNames: string[]) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, offpegFeeMultiplier: string | number, emaTime: number, implementationIdx: 0, assetType: 0 | 1 | 2 | 3, methodName: string, oracleAddress: string) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPlainPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedMetaPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; estimateGas: { deployPlainPool: (name: string, symbol: string, coins: string[], A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetTypes: (0 | 1 | 2 | 3)[], implementationIdx: 0, emaTime: number, oracleAddresses: string[], methodNames: string[]) => Promise; deployMetaPool: (basePool: string, name: string, symbol: string, coin: string, A: string | number, fee: string | number, offpegFeeMultiplier: string | number, assetType: 0 | 1 | 2 | 3, emaTime: number, implementationIdx: 0, methodName: string, oracleAddress: string) => Promise; }; }; cryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, maHalfTime: number, initialPrice: string | number) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPool: typeof deployCryptoPoolEstimateGas; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; twocryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, maHalfTime: number, initialPrice: string | number, implementationIdx?: import("./constants/twoCryptoImplementations.js").TwoCryptoImplementation | undefined) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; getImplementations: (uiOnly?: boolean) => import("./constants/twoCryptoImplementations.js").TwoCryptoImplementationInfo[]; estimateGas: { deployPool: typeof deployTwocryptoPoolEstimateGas; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; tricryptoFactory: { fetchPools: (useApi?: boolean, isFiltered?: boolean) => Promise; fetchNewPools: () => Promise; getPoolList: () => string[]; deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, emaTime: number, initialPrices: (string | number)[]) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; getDeployedPoolAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeAddress: (tx: ethers.ContractTransactionResponse) => Promise; getDeployedGaugeMirrorAddress: (chainId: number) => Promise; getDeployedGaugeMirrorAddressByTx: (tx: ethers.ContractTransactionResponse) => Promise; fetchRecentlyDeployedPool: (poolAddress: string) => Promise; gaugeImplementation: () => string; estimateGas: { deployPool: (name: string, symbol: string, coins: string[], A: string | number, gamma: string | number, midFee: string | number, outFee: string | number, allowedExtraProfit: string | number, feeGamma: string | number, adjustmentStep: string | number, emaTime: number, initialPrices: (string | number)[]) => Promise; deployGauge: (poolAddress: string) => Promise; deployGaugeSidechain: (poolAddress: string, salt: string) => Promise; deployGaugeMirror: (chainId: number, salt: string) => Promise; }; }; estimateGas: { ensureAllowance: (coins: string[], amounts: (string | number)[], spender: string, isMax?: boolean | undefined) => Promise; }; boosting: { getCrv: (...args: string[] | string[][]) => Promise>; getLockedAmountAndUnlockTime: (...args: string[] | string[][]) => Promise | { lockedAmount: string; unlockTime: number; }>; getVeCrv: (...args: string[] | string[][]) => Promise>; getVeCrvPct: (...args: string[] | string[][]) => Promise>; calcUnlockTime: (days: number, start?: number) => number; isApproved: (amount: string | number) => Promise; approve: (amount: string | number) => Promise; createLock: (amount: string | number, days: number) => Promise; increaseAmount: (amount: string | number) => Promise; increaseUnlockTime: (days: number) => Promise; withdrawLockedCrv: () => Promise; claimableFees: (address?: string | undefined) => Promise; claimFees: (address?: string | undefined) => Promise; claimableFeesCrvUSD: (address?: string | undefined) => Promise; claimFeesCrvUSD: (address?: string | undefined) => Promise; calculateVeCrv: (amount: number | string, unlockTimestamp: number) => number; estimateGas: { approve: (amount: string | number) => Promise; createLock: (amount: string | number, days: number) => Promise; increaseAmount: (amount: string | number) => Promise; increaseUnlockTime: (days: number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; claimFeesCrvUSD: (address?: string | undefined) => Promise; }; sidechain: { lastEthBlock: () => Promise; getAnycallBalance: () => Promise; topUpAnycall: (amount?: string | number | undefined) => Promise; lastBlockSent: (chainId: number) => Promise; blockToSend: () => Promise; sendBlockhash: (block: number, chainId: number) => Promise; submitProof: (block: number, address?: string | undefined) => Promise; estimateGas: { topUpAnycall: (amount?: string | number | undefined) => Promise; sendBlockhash: (block: number, chainId: number) => Promise; submitProof: (block: number, address?: string | undefined) => Promise; }; }; }; router: { getBestRouteAndOutput: (inputCoin: string, outputCoin: string, amount: string | number) => Promise<{ route: import("./interfaces.js").IRoute; output: string; }>; getArgs: (route: import("./interfaces.js").IRoute) => { _route: string[]; _swapParams: number[][]; _pools?: string[]; _basePools?: string[]; _baseTokens?: string[]; _secondBasePools?: string[]; _secondBaseTokens?: string[]; }; setBlacklist: (blacklist: string[]) => void; expected: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; required: (inputCoin: string, outputCoin: string, outAmount: string | number) => Promise; priceImpact: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; isApproved: (inputCoin: string, amount: string | number) => Promise; approve: (inputCoin: string, amount: string | number) => Promise; populateApprove: (inputCoin: string, amount: string | number, isMax: boolean | undefined, userAddress: string) => Promise[]>; swap: (inputCoin: string, outputCoin: string, amount: string | number, slippage?: number | undefined) => Promise; populateSwap: (inputCoin: string, outputCoin: string, amount: string | number, slippage?: number | undefined) => Promise>; getSwappedAmount: (tx: ethers.ContractTransactionResponse, outputCoin: string) => Promise; approveFromCalldata: (tx: ethers.TransactionRequest) => Promise; swapFromCalldata: (tx: ethers.TransactionRequest) => Promise; estimateGas: { approve: (inputCoin: string, amount: string | number) => Promise; swap: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; approveFromCalldata: (tx: ethers.TransactionRequest) => Promise; swapFromCalldata: (tx: ethers.TransactionRequest) => Promise; }; }; fastBridge: { assertIsSupported: () => void; isSupported: () => boolean; getSupportedNetworks: typeof getSupportedNetworks; allowedToBridge: () => Promise<{ min: number; max: number; }>; bridgeCost: () => Promise; isApproved: (amount: string | number) => Promise; approve: (amount: string | number) => Promise; bridge: (amount: string | number, address?: string | undefined) => Promise; estimateGas: { approve: (amount: string | number) => Promise; bridge: (amount: string | number, address?: string | undefined) => Promise; }; }; dao: { crvSupplyStats: () => Promise<{ circulating: string; locked: string; total: string; veCrv: string; averageLockTime: string; }>; userCrv: (address?: string | undefined) => Promise; userVeCrv: (address?: string | undefined) => Promise<{ veCrv: string; veCrvPct: string; lockedCrv: string; unlockTime: number; }>; crvLockIsApproved: (amount: string | number) => Promise; calcCrvUnlockTime: (days: number | string, start?: number | string) => number; claimableFees: (address?: string | undefined) => Promise; crvLockApprove: (amount: string | number) => Promise; createCrvLock: (amount: string | number, days: string | number) => Promise; increaseCrvLockedAmount: (amount: string | number) => Promise; increaseCrvUnlockTime: (days: string | number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; getVotingGaugeList: () => Promise; userGaugeVotes: (address?: string | undefined) => Promise<{ gauges: import("./interfaces.js").IGaugeUserVote[]; powerUsed: string; veCrvUsed: string; }>; voteForGaugeNextTime: (gauge: string) => Promise; voteForGauge: (gauge: string, power: string | number) => Promise; getProposalList: () => Promise; getProposal: (type: "PARAMETER" | "OWNERSHIP", id: number) => Promise; userProposalVotes: (address?: string | undefined) => Promise; voteForProposal: (type: import("./interfaces.js").TVoteType, id: number, support: boolean) => Promise; executeVote: (type: import("./interfaces.js").TVoteType, id: number) => Promise; isCanVoteExecute: (type: import("./interfaces.js").TVoteType, id: number) => Promise; estimateGas: { crvLockApprove: (amount: string | number) => Promise; createCrvLock: (amount: string | number, days: string | number) => Promise; increaseCrvLockedAmount: (amount: string | number) => Promise; increaseCrvUnlockTime: (days: string | number) => Promise; withdrawLockedCrv: () => Promise; claimFees: (address?: string | undefined) => Promise; voteForGauge: (gauge: string, power: string | number) => Promise; voteForProposal: (type: import("./interfaces.js").TVoteType, id: number, support: boolean) => Promise; executeVote: (type: import("./interfaces.js").TVoteType, id: number) => Promise; }; }; }; export default _default; export type { IGasStrategy } from "./interfaces.js";