import { Interface } from '@ethersproject/abi'; import { SimpleExchange } from '../simple-exchange'; import { IDex } from '../idex'; import { Network, SwapSide } from '../../constants'; import { KyberDmmPair } from './pool'; import { AdapterExchangeParam, ExchangePrices, PoolPrices, PoolLiquidity, SimpleExchangeParam, Token, NumberAsString, Address, DexExchangeParam } from '../../types'; import { KyberDmmData, KyberDmmParam } from './types'; import { IDexHelper } from '../../dex-helper'; import { Logger } from 'log4js'; import { Contract } from 'web3-eth-contract'; export declare class KyberDmm extends SimpleExchange implements IDex { protected network: Network; protected dexHelper: IDexHelper; protected config: import("./types").DexParams; protected adapters: { name: string; index: number; }[]; pairs: { [key: string]: KyberDmmPair; }; needWrapNative: boolean; factory: Contract; logger: Logger; exchangeRouterInterface: Interface; readonly hasConstantPriceLargeAmounts = false; readonly isFeeOnTransferSupported = false; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, config?: import("./types").DexParams, adapters?: { name: string; index: number; }[]); getPoolIdentifiers(from: Token, to: Token, side: SwapSide, blockNumber: number): Promise; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getTopPoolsForToken(tokenAddress: string, count: number): Promise; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: KyberDmmData, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: KyberDmmData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: KyberDmmData, side: SwapSide): DexExchangeParam; private addPool; getPricesVolume(from: Token, to: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise | null>; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; private getPoolPrice; private getManyPoolReserves; private catchUpPair; private getPairOrderedParams; private findPair; private getBuyPrice; private getSellPrice; }