import { Transaction, TransactionResult } from '@mysten/sui/transactions'; import { BigintIsh, Coin, NETWORK, ObjectId, Percent } from '../../core'; import { Protocol } from '../constants'; import { OracleInfo } from '../types'; export interface WrappedRouterConfig { wrappedRouterPackageId: string; } export interface SwapConstructorOptions { network: NETWORK; pool: ObjectId; input: CInput; output: COutput; amountIn: BigintIsh; amountOut: BigintIsh; protocolConfig: ProtocolConfig; oracles?: OracleInfo[]; } export declare abstract class Swap> { readonly network: NETWORK; readonly pool: ObjectId; readonly input: CInput; readonly output: COutput; readonly amountIn: BigintIsh; readonly amountOut: BigintIsh; readonly protocolConfig: ProtocolConfig; readonly oracles?: OracleInfo[]; constructor(options: Options); abstract swap(routeObject: TransactionResult, slippage: Percent, pythMap?: Record | undefined): (tx: Transaction) => void; abstract protocol(): Protocol; }