import type { RouterDataV3 as CetusQuote, AggregatorClient as CetusSdk } from "@cetusprotocol/aggregator-sdk"; import type { AggregatorQuoter as FlowXAggregatorQuoter, GetRoutesResult as FlowXGetRoutesResult } from "@flowx-finance/sdk"; import BigNumber from "bignumber.js"; import { Token } from "@suilend/sui-core"; export declare enum QuoteProvider { CETUS = "cetus", FLOWX = "flowx" } export declare const QUOTE_PROVIDER_NAME_MAP: { cetus: string; flowx: string; }; export type StandardizedRoutePath = { id: string; poolId?: string; routeIndex: number; provider: string; in: { coinType: string; amount: BigNumber; }; out: { coinType: string; amount: BigNumber; }; }; export type StandardizedPathWithToken = StandardizedRoutePath & { in: StandardizedRoutePath["in"] & { token: Token; }; out: StandardizedRoutePath["out"] & { token: Token; }; }; export type StandardizedQuote = { id: string; in: { coinType: string; amount: BigNumber; }; out: { coinType: string; amount: BigNumber; }; routes: { percent: BigNumber; path: StandardizedRoutePath[]; }[]; } & ({ provider: QuoteProvider.CETUS; quote: CetusQuote; } | { provider: QuoteProvider.FLOWX; quote: FlowXGetRoutesResult; }); export declare const getAggQuotes: (sdkMap: { [QuoteProvider.CETUS]: CetusSdk; [QuoteProvider.FLOWX]: FlowXAggregatorQuoter; }, activeProviders: QuoteProvider[], onGetAggQuote: (quote: StandardizedQuote | null) => void, tokenIn: Token, tokenOut: Token, amountIn: string) => Promise; export declare const getAggSortedQuotesAll: (sdkMap: { [QuoteProvider.CETUS]: CetusSdk; [QuoteProvider.FLOWX]: FlowXAggregatorQuoter; }, activeProviders: QuoteProvider[], tokenIn: Token, tokenOut: Token, amountIn: string) => Promise;