import { AsyncOrSync, DeepReadonly } from 'ts-essentials'; import { Interface } from '@ethersproject/abi'; import { NumberAsString, SwapSide } from '@paraswap/core'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, Logger, PoolLiquidity, PoolPrices, SimpleExchangeParam, Token } from '../../types'; import { Network } from '../../constants'; import { IDex } from '../idex'; import { IDexHelper } from '../../dex-helper'; import { DexParams, PoolState, WombatData } from './types'; import { SimpleExchange } from '../simple-exchange'; import { WombatBmw } from './wombat-bmw'; import { WombatPool } from './wombat-pool'; import { StatePollingManager } from '../../lib/stateful-rpc-poller/state-polling-manager'; export declare class Wombat extends SimpleExchange implements IDex { readonly network: Network; readonly dexKey: string; readonly dexHelper: IDexHelper; protected adapters: import("../../types").AdapterMappings; static readonly erc20Interface: Interface; static readonly poolInterface: Interface; static readonly assetInterface: Interface; protected pollingManager: StatePollingManager; protected config: DexParams; protected poolLiquidityUSD?: { [poolAddress: string]: number; }; bmw: WombatBmw; pools: { [poolAddress: string]: WombatPool; }; readonly isStatePollingDex = true; readonly hasConstantPriceLargeAmounts = false; readonly needWrapNative = true; readonly isFeeOnTransferSupported = false; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; logger: Logger; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings); init(blockNumber: number): Promise; initializePricing(blockNumber: number): Promise; onAssetAdded: (pool: Address, blockNumber: number) => Promise; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise; protected getPoolIdentifier(poolAddress: Address): string; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; protected computePrices(srcTokenAddress: Address, destTokenAddress: Address, amounts: bigint[], side: SwapSide, state: DeepReadonly): bigint[]; protected findPools(srcTokenAddress: Address, destTokenAddress: Address, blockNumber: number): Promise; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: WombatData, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: WombatData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: WombatData, side: SwapSide): DexExchangeParam; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; releaseResources(): AsyncOrSync; }