import { Coin, NETWORK } from '../../core'; import { OracleInfo } from '../types'; import { IBatchQuoter } from './IBatchQuoter'; import { IQuoter } from './IQuoter'; import { BatchQuoteQueryParams, GetRoutesResult, SingleQuoteQueryParams } from './types'; interface AggregatorQuoterResult { tokenIn: string; tokenOut: string; amountIn: string; amountOut: string; amountInUsd: string; amountOutUsd: string; priceImpact: string; feeToken: string; feeAmount: string; paths: Path[][]; protocolConfig: Record; } interface Path { poolId: string; source: string; sourceType: string; tokenIn: string; tokenOut: string; amountIn: string; amountOut: string; extra: ExtraInfoDefault | UniswapV3Extra | AftermathExtra | FlowxV3Extra | FlowxPmmExtra | DeepbookExtra | DeepbookV3Extra | ObricExtra | OracleExtra; } interface ExtraInfoDefault { swapXToY: boolean; } interface OracleExtra extends ExtraInfoDefault { oracles: OracleInfo[]; } interface UniswapV3Extra extends ExtraInfoDefault { nextStateSqrtRatioX64: string; nextStateLiquidity: string; nextStateTickCurrent: string; minSqrtPriceHasLiquidity: string; maxSqrtPriceHasLiquidity: string; } interface AftermathExtra extends ExtraInfoDefault { lpCoinType: string; } interface FlowxV3Extra extends ExtraInfoDefault, UniswapV3Extra { fee: number; } interface FlowxPmmExtra extends ExtraInfoDefault { swapTimestampMs: number; amountInUnused: number; signatures: string[]; } interface DeepbookExtra extends ExtraInfoDefault { lotSize: string; } interface DeepbookV3Extra extends ExtraInfoDefault { deepFee: string; } interface ObricExtra extends ExtraInfoDefault, OracleExtra { xPriceId: string; yPriceId: string; } export declare class AggregatorQuoter implements IQuoter, IBatchQuoter { readonly network: NETWORK; readonly apiKey?: string | undefined; constructor(network: NETWORK, apiKey?: string | undefined); private buildPath; fromRawQuote(rawQuote: AggregatorQuoterResult): GetRoutesResult & { rawQuote?: AggregatorQuoterResult; }; getRoutes(params: SingleQuoteQueryParams): Promise & { rawQuote?: AggregatorQuoterResult; }>; batchQuote(params: BatchQuoteQueryParams): Promise>; getMultipleRoutes(params: SingleQuoteQueryParams[], externalSignal?: AbortSignal): Promise[]>; } export {};