import { Fraction } from '@uniswap/sdk-core'; export type Position = { lowerTick: number; upperTick: number; weight: number; }; export type SwapResult = { amountToSwap: bigint; zeroForOne: boolean; }; export type SearchMode = 'input' | 'output' | 'parallel'; export type GetSwapAmountOptions = { // eslint-disable-next-line @typescript-eslint/no-explicit-any pool: any; desiredPositions: Position[]; inputT0Bal: bigint; inputT1Bal: bigint; t0Address: string; t1Address: string; // Uniswap V3 only fee?: number; maxIterations: number; ratioErrorTolerance?: Fraction; // Price impact guard in basis points (e.g., 1000 = 10%) maxPriceImpactBps?: number; // Uniswap only: choose strategy searchMode?: SearchMode; // Engine-specific extras (tickSpacing, deployer, etc.) engineExtras?: Record; // Choose ratio calc variant: 'tick' matches legacy behavior clampMode?: 'price' | 'tick'; };