import { MarketMakersResponse, PriceLevelsResponse } from '@hashflow/taker-js/dist/types/rest'; import BigNumber from 'bignumber.js'; import { Interface } from 'ethers/lib/utils'; import { Network, SwapSide } from '../../constants'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { IDex } from '../../dex/idex'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, Logger, NumberAsString, OptimalSwapExchange, PoolLiquidity, PoolPrices, PreprocessTransactionOptions, SimpleExchangeParam, Token } from '../../types'; import { SimpleExchangeWithRestrictions } from '../simple-exchange-with-restrictions'; import { ErrorCode, HashflowData, PriceLevel } from './types'; export declare class Hashflow extends SimpleExchangeWithRestrictions implements IDex { readonly network: Network; readonly dexKey: string; readonly dexHelper: IDexHelper; protected adapters: import("../../types").AdapterMappings; readonly routerAddress: string; protected routerInterface: Interface; readonly isStatePollingDex = true; readonly hasConstantPriceLargeAmounts = false; readonly needWrapNative = true; readonly needsSequentialPreprocessing = true; readonly isFeeOnTransferSupported = false; private api; private rateFetcher; private hashFlowAuthToken; private disabledMMs; private runtimeMMsRestrictHashMapKey; private runtimeMMsRestrictHashMapErrorCodesKey; private pricesCacheKey; private marketMakersCacheKey; static dexKeysWithNetwork: { key: string; networks: Network[]; }[]; logger: Logger; constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings, routerAddress?: string, routerInterface?: Interface); initializePricing(blockNumber: number): Promise; getAdapters(side: SwapSide): { name: string; index: number; }[] | null; getPairName: (srcAddress: Address, destAddress: Address) => string; getIdentifierPrefix(srcAddress: Address, destAddress: Address): string; getPoolIdentifier(srcAddress: Address, destAddress: Address, mm: string): string; getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise; private getFilteredMarketMakers; parseCacheRestrictionAndExpiryIfNeeded(cachedValues: Record): Set; computePricesFromLevels(amounts: BigNumber[], levels: PriceLevel[], srcToken: Token, destToken: Token, side: SwapSide): bigint[]; toPriceLevelsBN: (priceLevels: PriceLevel[]) => { level: BigNumber; price: BigNumber; }[]; computeLevelsQuote(priceLevels: PriceLevel[], reqBaseAmount?: BigNumber, reqQuoteAmount?: BigNumber): BigNumber | undefined; getCachedMarketMakers(): Promise; getCachedLevels(): Promise; getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise>; preProcessTransaction(optimalSwapExchange: OptimalSwapExchange, srcToken: Token, destToken: Token, side: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange, ExchangeTxInfo]>; restrictMM(mm: string, errorCode: ErrorCode): Promise; getCalldataGasCost(poolPrices: PoolPrices): number | number[]; getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: HashflowData, side: SwapSide): AdapterExchangeParam; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: HashflowData, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: HashflowData, side: SwapSide): DexExchangeParam; extractQuoteToken: (pair: { baseToken: string; baseTokenName: string; quoteToken: string; quoteTokenName: string; baseTokenDecimals: number; quoteTokenDecimals: number; }) => Token; computeMaxLiquidity: (levels: PriceLevel[], baseTokenPriceUsd: number) => number; getTopPoolsForToken(tokenAddress: Address, limit: number): Promise; releaseResources(): void; }