import { AsyncOrSync } from 'ts-essentials'; import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, PoolLiquidity, Logger, OptimalSwapExchange, PreprocessTransactionOptions, ExchangeTxInfo, NumberAsString, DexExchangeParam } from '../../types'; import { SwapSide, Network } from '../../constants'; import { IDex } from '../../dex/idex'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { BebopData, BebopLevel, BebopPair, BebopPricingResponse, RoutingInstruction, TokenDataMap } from './types'; import { SimpleExchangeWithRestrictions } from '../simple-exchange-with-restrictions'; import { Interface } from 'ethers/lib/utils'; import BigNumber from 'bignumber.js'; export declare class Bebop extends SimpleExchangeWithRestrictions implements IDex { readonly network: Network; readonly dexKey: string; readonly dexHelper: IDexHelper; readonly settlementAddress: string; protected settlementInterface: Interface; readonly hasConstantPriceLargeAmounts = false; readonly needWrapNative = true; readonly isFeeOnTransferSupported = false; readonly isStatePollingDex = true; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; private rateFetcher; private tokensMap; private pricesCacheKey; private tokensCacheKey; private tokensAddrCacheKey; private bebopAuthToken; private bebopAuthName; logger: Logger; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, settlementAddress?: string, settlementInterface?: Interface); initializePricing(blockNumber: number): Promise; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getPoolIdentifier(base: string, quote: string): string; invertLevels(levels: BebopLevel[]): BebopLevel[]; invertBook(book: BebopPair): BebopPair; calculateInstructions(srcToken: Token, destToken: Token, side: SwapSide): Promise; getPoolIdentifiers(_srcToken: Token, _destToken: Token, side: SwapSide, blockNumber: number): Promise; runInstruction(instruction: RoutingInstruction, amount: BigNumber): BigNumber; calculateOutput(instructions: RoutingInstruction[], srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide): bigint[]; getPricesVolume(_srcToken: Token, _destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BebopData, side: SwapSide): AdapterExchangeParam; updatePoolState(): Promise; setTokensMap(): Promise; getMaxLiquidity(levels: BebopLevel[]): number; getTopPoolsForToken(_tokenAddress: Address, limit: number): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: BebopData, side: SwapSide): DexExchangeParam; preProcessTransaction(optimalSwapExchange: OptimalSwapExchange, _srcToken: Token, _destToken: Token, side: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange, ExchangeTxInfo]>; getCachedPrices(): Promise; getCachedTokens(): Promise; releaseResources(): AsyncOrSync; }