import { Interface } from '@ethersproject/abi'; import { AsyncOrSync } from 'ts-essentials'; import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, TransferFeeParams } from '../../types'; import { SwapSide, Network } from '../../constants'; import { Context, IDex } from '../../dex/idex'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { OSwapData, OSwapPool, OSwapPoolState } from './types'; import { SimpleExchange } from '../simple-exchange'; import { OSwapEventPool } from './oswap-pool'; export declare class OSwap extends SimpleExchange implements IDex { readonly network: Network; readonly dexKey: string; readonly dexHelper: IDexHelper; protected adapters: import("../../types").AdapterMappings; readonly eventPools: { [id: string]: OSwapEventPool; }; readonly hasConstantPriceLargeAmounts = false; readonly needWrapNative = true; readonly isFeeOnTransferSupported = true; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; logger: Logger; readonly iOSwap: Interface; readonly pools: OSwapPool[]; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings); getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getPoolByTokenPair(srcToken: Token, destToken: Token): OSwapPool | null; getPoolById(id: string): OSwapPool | null; getPoolsByTokenAddress(tokenAddress: Address): OSwapPool[]; getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise; convertAmount(pool: OSwapPool, from: Address, amount: bigint, state: OSwapPoolState): bigint; private calcPrice; hasEnoughLiquidity(pool: OSwapPool, state: OSwapPoolState, from: Token, amount: bigint, needed: bigint, side: SwapSide): boolean; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams): Promise>; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OSwapData, side: SwapSide): AdapterExchangeParam; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: OSwapData, side: SwapSide, _: Context, executorAddress: Address): DexExchangeParam; updatePoolState(): Promise; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; releaseResources(): AsyncOrSync; }