import { BigNumber } from 'ethers'; export interface RoutePools { directPoolOptimal: RoutePoolData; routeTokens: string[]; tokenA: string; tokenB: string; timestamp: number; pools: RoutePoolsBlockchain; } export interface RoutePoolData { isAlpha?: boolean; vault?: string; pool: string; poolType: string; reserveA: BigNumber; reserveB: BigNumber; swapFeeAB: string; swapFeeBA: string; tokenA: string; tokenB: string; } export interface RoutePoolsBlockchain { poolsA: RoutePoolData[]; poolsB: RoutePoolData[]; poolsBase: RoutePoolData[]; poolsDirect: RoutePoolData[]; } export interface GroupAmounts { pathsWithAmounts: PathWithAmounts[]; amountOut: BigNumber; quoteOut: BigNumber; } export interface GetAmountParams { stable: boolean; amount: BigNumber; reserveIn: BigNumber; reserveOut: BigNumber; swapFee: BigNumber; tokenInPrecisionMultiplier?: BigNumber; tokenOutPrecisionMultiplier?: BigNumber; } export interface SwapRoute { tokenIn: string; tokenOut: string; found: boolean; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; paths: PathWithAmounts[]; priceImpact: BigNumber; gas: BigNumber; } export interface Step { pool: RoutePoolData; swapFee: string; tokenIn: string; } export type Path = Step[]; export interface StepWithAmount extends Step { amountIn: BigNumber; updatedStep: Step | null; } export declare const routeDirection: { readonly EXACT_IN: "EXACT_IN"; readonly EXACT_OUT: "EXACT_OUT"; }; export type RouteDirection = (typeof routeDirection)[keyof typeof routeDirection]; export interface PathWithAmounts { direction: RouteDirection; stepsWithAmount: StepWithAmount[]; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; } export type BestPathsWithAmounts = { found: boolean; direction: RouteDirection; pathsWithAmounts: PathWithAmounts[]; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; bestPriceImpact: BigNumber | null; gas: BigNumber; };