import { Address, Amount } from '@safeblock/blockchain-utils'; import { PriceStorageExtension } from '../extensions'; import { default as SdkCore } from './sdk-core'; import { default as SdkException } from './sdk-exception'; import { ExchangeQuota, ExchangeRequest, SimulatedRoute } from '../types'; export default abstract class ExchangeConverter { sdkInstance: SdkCore; protected constructor(sdkInstance: SdkCore); abstract fetchRoute(request: ExchangeRequest, taskId: symbol, signal?: AbortSignal): Promise; abstract createSingleChainTransaction(from: Address, request: ExchangeRequest, route: SimulatedRoute, taskId: symbol): Promise; abstract createMultiChainTransaction(from: Address, request: ExchangeRequest, taskId: symbol): Promise; abstract createSingleChainWrapUnwrapTransaction(request: ExchangeRequest): ExchangeQuota | SdkException; protected isCrossChain(request: ExchangeRequest): boolean; protected rerouteCrossChainRoutesFetch(request: ExchangeRequest, zeroAddress: Address, taskId: symbol): Promise; protected createMockRoute(request: ExchangeRequest, amountIn: Amount, amountsOut: Amount[], priceStorage: PriceStorageExtension): SimulatedRoute; }