import { ethers, Networkish } from "ethers"; import { PoolTemplate } from "./pools/index.js"; declare function init(providerType: 'JsonRpc' | 'Web3' | 'Infura' | 'Alchemy', providerSettings: { url?: string; privateKey?: string; batchMaxCount?: number; } | { externalProvider: ethers.Eip1193Provider; } | { network?: Networkish; apiKey?: string; }, options?: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; chainId?: number; }): Promise; declare function setCustomFeeData(customFeeData: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; }): void; declare const curve: { init: typeof init; chainId: number; signerAddress: string; setCustomFeeData: typeof setCustomFeeData; getPoolList: () => string[]; getMainPoolList: () => string[]; getUserPoolListByLiquidity: (address?: string) => Promise; getUserPoolListByClaimable: (address?: string) => Promise; getUserPoolList: (address?: string, useApi?: boolean) => Promise; getUserLiquidityUSD: (pools: string[], address?: string) => Promise; getUserClaimable: (pools: string[], address?: string) => Promise<{ token: string; symbol: string; amount: string; price: number; }[][]>; PoolTemplate: typeof PoolTemplate; getPool: (poolId: string) => PoolTemplate; getUsdRate: (coin: string) => Promise; getGasPriceFromL1: () => Promise; getGasPriceFromL2: () => Promise; getTVL: (network?: import("./interfaces.js").INetworkName | import("./interfaces.js").IChainId) => Promise; getBalances: (coins: string[], ...addresses: string[] | 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) => Promise; getCoinsData: (...coins: string[] | string[][]) => Promise<{ name: string; symbol: string; decimals: number; }[]>; getVolume: (network?: import("./interfaces.js").INetworkName | import("./interfaces.js").IChainId) => Promise<{ totalVolume: number; cryptoVolume: number; cryptoShare: number; }>; hasDepositAndStake: () => boolean; hasRouter: () => boolean; factory: { fetchPools: (useApi?: 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, oracleAddress?: string, methodName?: string) => Promise; setOracle: (poolAddress: string, oracleAddress?: string, methodName?: string) => 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, oracleAddress?: string, methodName?: string) => Promise; setOracle: (poolAddress: string, oracleAddress?: string, methodName?: string) => 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) => Promise; getPoolList: () => string[]; }; EYWAFactory: { fetchPools: (useApi?: boolean) => Promise; getPoolList: () => string[]; }; stableNgFactory: { fetchPools: (useApi?: 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) => 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: (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; }; }; tricryptoFactory: { fetchPools: (useApi?: 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) => Promise; }; boosting: { getCrv: (...addresses: string[] | string[][]) => Promise>; getLockedAmountAndUnlockTime: (...addresses: string[] | string[][]) => Promise | { lockedAmount: string; unlockTime: number; }>; getVeCrv: (...addresses: string[] | string[][]) => Promise>; getVeCrvPct: (...addresses: 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) => Promise; claimFees: (address?: string) => Promise; 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) => Promise; }; sidechain: { lastEthBlock: () => Promise; getAnycallBalance: () => Promise; topUpAnycall: (amount?: string | number) => Promise; lastBlockSent: (chainId: import("./interfaces.js").IChainId) => Promise; blockToSend: () => Promise; sendBlockhash: (block: number, chainId: import("./interfaces.js").IChainId) => Promise; submitProof: (block: number, address?: string) => Promise; estimateGas: { topUpAnycall: (amount?: string | number) => Promise; sendBlockhash: (block: number, chainId: import("./interfaces.js").IChainId) => Promise; submitProof: (block: number, address?: string) => 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[]; }; 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; swap: (inputCoin: string, outputCoin: string, amount: string | number, slippage?: number) => Promise; getSwappedAmount: (tx: ethers.ContractTransactionResponse, outputCoin: string) => Promise; estimateGas: { approve: (inputCoin: string, amount: string | number) => Promise; swap: (inputCoin: string, outputCoin: string, amount: string | number) => Promise; }; }; dao: { crvSupplyStats: () => Promise<{ circulating: string; locked: string; total: string; veCrv: string; averageLockTime: string; }>; userCrv: (address?: string) => Promise; userVeCrv: (address?: string) => Promise<{ veCrv: string; veCrvPct: string; lockedCrv: string; unlockTime: number; }>; crvLockIsApproved: (amount: string | number) => Promise; calcCrvUnlockTime: (days: string | number, start?: string | number) => number; claimableFees: (address?: string) => 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) => Promise; getVotingGaugeList: () => Promise; userGaugeVotes: (address?: string) => 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) => Promise; voteForProposal: (type: "PARAMETER" | "OWNERSHIP", id: number, support: boolean) => 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) => Promise; voteForGauge: (gauge: string, power: string | number) => Promise; voteForProposal: (type: "PARAMETER" | "OWNERSHIP", id: number, support: boolean) => Promise; }; }; }; export default curve;