import { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions'; import { Exchange, QuoteQueryParams } from '../types'; export type NormalizedQuote = { exchange: Exchange; raw: T; amountOut: bigint; }; export type QuoteResult = { exchange: Exchange; amountIn: string; tokenIn: string; route: T; }; export interface ExchangeAdapter { name(): string; init?(): Promise; getRoutes(params: QuoteQueryParams): Promise | null>; buildTx(tx: Transaction, quote: QuoteResult, sender: string, slippage: number, coinIn?: TransactionObjectArgument): Promise<{ coinOut: TransactionObjectArgument; tx: Transaction; }>; }