import { ethers, Contract, Networkish, BigNumberish, Numeric } from "ethers"; import { Provider as MulticallProvider, Contract as MulticallContract } from 'ethcall'; import { IPoolData, IDict, ICurve, INetworkName, IChainId, IFactoryPoolType } from "./interfaces"; export declare const NATIVE_TOKENS: { [index: number]: { symbol: string; wrappedSymbol: string; address: string; wrappedAddress: string; }; }; export declare const NETWORK_CONSTANTS: { [index: number]: any; }; declare class Curve implements ICurve { provider: ethers.BrowserProvider | ethers.JsonRpcProvider; multicallProvider: MulticallProvider; signer: ethers.Signer | null; signerAddress: string; chainId: IChainId; contracts: { [index: string]: { contract: Contract; multicallContract: MulticallContract; }; }; feeData: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; }; constantOptions: { gasLimit: number; }; options: { gasPrice?: number | bigint; maxFeePerGas?: number | bigint; maxPriorityFeePerGas?: number | bigint; }; constants: { NATIVE_TOKEN: { symbol: string; wrappedSymbol: string; address: string; wrappedAddress: string; }; NETWORK_NAME: INetworkName; ALIASES: IDict; POOLS_DATA: IDict; FACTORY_POOLS_DATA: IDict; CRVUSD_FACTORY_POOLS_DATA: IDict; EYWA_FACTORY_POOLS_DATA: IDict; CRYPTO_FACTORY_POOLS_DATA: IDict; TRICRYPTO_FACTORY_POOLS_DATA: IDict; STABLE_NG_FACTORY_POOLS_DATA: IDict; LLAMMAS_DATA: IDict; COINS: IDict; DECIMALS: IDict; GAUGES: string[]; FACTORY_GAUGE_IMPLEMENTATIONS: IDict; ZERO_ADDRESS: string; }; constructor(); 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; setContract(address: string, abi: any): void; _filterHiddenPools(pools: IDict): Promise>; _updateDecimalsAndGauges(pools: IDict): void; fetchFactoryPools: (useApi?: boolean) => Promise; fetchCrvusdFactoryPools: (useApi?: boolean) => Promise; fetchEywaFactoryPools: (useApi?: boolean) => Promise; fetchCryptoFactoryPools: (useApi?: boolean) => Promise; fetchTricryptoFactoryPools: (useApi?: boolean) => Promise; fetchStableNgFactoryPools: (useApi?: boolean) => Promise; fetchNewFactoryPools: () => Promise; fetchNewStableNgFactoryPools: () => Promise; fetchNewCryptoFactoryPools: () => Promise; fetchNewTricryptoFactoryPools: () => Promise; fetchRecentlyDeployedFactoryPool: (poolAddress: string) => Promise; fetchRecentlyDeployedStableNgFactoryPool: (poolAddress: string) => Promise; fetchRecentlyDeployedCryptoFactoryPool: (poolAddress: string) => Promise; fetchRecentlyDeployedTricryptoFactoryPool: (poolAddress: string) => Promise; getMainPoolList: () => string[]; getFactoryPoolList: () => string[]; getCrvusdFactoryPoolList: () => string[]; getEywaFactoryPoolList: () => string[]; getCryptoFactoryPoolList: () => string[]; getTricryptoFactoryPoolList: () => string[]; getStableNgFactoryPoolList: () => string[]; getPoolList: () => string[]; getPoolsData: () => IDict; getGaugeImplementation: (factoryType: IFactoryPoolType) => string; setCustomFeeData(customFeeData: { gasPrice?: number; maxFeePerGas?: number; maxPriorityFeePerGas?: number; }): void; formatUnits(value: BigNumberish, unit?: string | Numeric): string; parseUnits(value: string, unit?: string | Numeric): bigint; updateFeeData(): Promise; } export declare const curve: Curve; export {};