import { Position } from './api'; /** * Parameters for swap calculation */ export interface SwapCalculationParams { // Vault information vaultAddress: string; beaconName: string; token0: string; token1: string; // Position data newPositions: Position[]; // Balance data bal0: bigint; bal1: bigint; // Pool information poolAddress: string; poolFee: number; sqrtPriceX96: bigint; // Configuration slippage: number; maxIterations?: number; // Optional context isMultiPosition?: boolean; isUpgradedVault?: boolean; currentSlot?: any; vaultCurrentMultiPositions?: any; vaultCurrentSinglePosition?: any; // Execution result (for extracting positions) executionResult?: any; } /** * Result of swap calculation */ export interface SwapCalculationResult { // Swap amount (can be positive or negative) amount: bigint; // Square root price after swap sqrtPrice: bigint; // Whether swap router failed isSwapRouterFailed: boolean; // Reset position data (if applicable) resetPosition: any; } /** * Early return result for skip/specify swap cases */ export interface EarlyReturnResult { shouldReturn: boolean; result?: SwapCalculationResult; }