import { Interface } from '@ethersproject/abi'; import { Network, SwapSide } from '../../constants'; import { IDexHelper } from '../../dex-helper'; import { Token, TransferFeeParams, ExchangePrices, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../../types'; import { UniswapV2Data } from './types'; import { UniswapV2 } from './uniswap-v2'; import { FewWrappedToken, FewWrappedTokenEventPool } from './few-wrapped-token-event-pool'; export declare enum RingV2Functions { swapExactTokensForTokens = "swapExactTokensForTokens", swapExactETHForTokens = "swapExactETHForTokens", swapTokensForExactTokens = "swapTokensForExactTokens", swapTokensForExactETH = "swapTokensForExactETH", swapETHForExactTokens = "swapETHForExactTokens" } export declare function computeFWTokenAddress(originalAddress: string, dexKey: string, network: Network): string; export declare class RingV2 extends UniswapV2 { protected network: Network; protected dexHelper: IDexHelper; protected isDynamicFees: boolean; protected factoryAddress: Address; protected subgraphURL: string | undefined; protected initCode: string; protected feeCode: number; protected poolGasCost: number; protected decoderIface: Interface; protected router: string; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; private fwTokenPools; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, isDynamicFees?: boolean, factoryAddress?: Address, subgraphURL?: string | undefined, initCode?: string, feeCode?: number, poolGasCost?: number, decoderIface?: Interface, router?: string); getAdapters(): null; getFewWrappedTokens(_from: Token, _to: Token): [FewWrappedToken, FewWrappedToken]; getPoolIdentifiers(_from: Token, _to: Token, side: SwapSide, blockNumber: number): Promise; getFewWrappedTokenPool(token: FewWrappedToken, blockNumber: number): Promise; getPricesVolume(_from: Token, _to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise | null>; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: UniswapV2Data, side: SwapSide): DexExchangeParam; getSimpleParam(src: Address, dest: Address, srcAmount: NumberAsString, destAmount: NumberAsString, data: UniswapV2Data, side: SwapSide): Promise; }