import { Address, Amount } from '@safeblock/blockchain-utils'; import { default as PriceStorageExtension } from '../extensions/price-storage-extension'; import { SdkConfig } from '.'; import { default as SdkException } from './sdk-exception'; import { SdkMixins } from './sdk-mixins'; import { BasicToken, ExchangeQuota, ExchangeRequest, SingleOutputSimulatedRoute } from '../types'; interface BasicRequest { tokenIn: BasicToken; tokensOut: BasicToken[]; } export declare class ExchangeUtils { static ZeroExchangeId: string; static computeArrivalGasData(request: ExchangeRequest, address: Address, config?: SdkConfig): Promise; static computeBridgeQuota(request: ExchangeRequest, address: Address, amountLD: string, destinationRouteSteps: number, destinationChainCallData: string | null, config?: SdkConfig): Promise<([bigint, bigint] & { valueToSend: bigint; dstAmount: bigint; }) | SdkException>; static getTokenTransferDetails(token: BasicToken, ownerAddress: Address, spendAmount: Amount, config?: SdkConfig): Promise<{ tokenContract: import('../abis/types').Token; approveWanted: boolean; approveAmount: Amount; resetRequired: boolean; }>; static isWrap(request: BasicRequest): boolean; static isUnwrap(request: BasicRequest): boolean; static isWrapUnwrap(request: BasicRequest): boolean; static computeQuotaExecutionGasUsage(quota: Omit, mixinBuilder: SdkMixins): { [x: string]: Amount; }; static computePriceImpact(request: ExchangeRequest, tokenOut: BasicToken, amountIn: Amount, amountOut: Amount, priceStorage: PriceStorageExtension): number; static updateRequest(request: ExchangeRequest, update: Partial): { tokenIn: BasicToken; tokensOut: BasicToken[]; amountIn: Amount; amountsOut: Amount[]; amountOutReadablePercentages: number[]; exactInput: boolean; slippageReadablePercent: number; destinationAddress?: Address; arrivalGasAmount?: Amount; smartRouting?: boolean; smartRoutingPrecision?: number; }; static filterRoutesByExpectedOutput(route: SingleOutputSimulatedRoute, priceStorage: PriceStorageExtension, maxDifference?: number, config?: SdkConfig): boolean; static autoUpdateDirection(request: ExchangeRequest): SdkException | ExchangeRequest; private static getTokenResetRequiredStatus; private static computeOnchainTradeGasUsage; } export {};