import { UniswapV2 } from '../uniswap-v2/uniswap-v2'; import { Network } from '../../constants'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, PoolLiquidity, Token, TransferFeeParams } from '../../types'; import { IDexHelper } from '../../dex-helper'; import { NumberAsString, SwapSide } from '@paraswap/core'; import { PoolState, InfusionData, InfusionPair, InfusionPoolOrderedParams } from './types'; export declare enum InfusionRouterFunctions { sellExactEth = "swapExactETHForTokens", sellExactToken = "swapExactTokensForETH", swapExactIn = "swapExactTokensForTokens" } export declare class Infusion extends UniswapV2 { protected network: Network; protected dexHelper: IDexHelper; pairs: { [key: string]: InfusionPair; }; stableFee?: number; volatileFee?: number; readonly isFeeOnTransferSupported: boolean; readonly SRC_TOKEN_DEX_TRANSFERS = 1; readonly DEST_TOKEN_DEX_TRANSFERS = 1; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, isDynamicFees?: boolean, factoryAddress?: Address, subgraphURL?: string, initCode?: string, feeCode?: number, poolGasCost?: number, routerAddress?: Address); findInfusionPairs(from: Token, to: Token): Promise; batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number): Promise; getManyPoolReserves(pairs: InfusionPair[], blockNumber: number): Promise; getSellPrice(priceParams: InfusionPoolOrderedParams, srcAmount: bigint): bigint; getPricesVolume(_from: Token, _to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise | null>; getTopPoolsForToken(tokenAddress: Address, count: number): Promise; getInfusionPairOrderedParams(from: Token, to: Token, blockNumber: number, tokenDexTransferFee: number): Promise>; getPoolIdentifiers(_from: Token, _to: Token, side: SwapSide, blockNumber: number): Promise; poolPostfix(stable: boolean): "S" | "V"; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getAdapterParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, toAmount: NumberAsString, // required for buy case data: InfusionData, side: SwapSide): AdapterExchangeParam; getDexParam(src: Address, dest: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: InfusionData, side: SwapSide): DexExchangeParam; protected getFeesMultiCallData(pair: InfusionPair): { callEntry: { target: string; callData: string; }; callDecoder: (values: any[]) => number; }; }