import type { ExchangeAdapter } from "../exchanges/index.js"; /** * Calculate the exact same size for both legs of an arb position, * respecting both exchanges' minimum order and size precision constraints. * * @returns size string that works for both exchanges, or null if not viable */ export declare function computeMatchedSize(sizeUsd: number, price: number, longExchange: string, shortExchange: string, opts?: { longSizeDecimals?: number; shortSizeDecimals?: number; lotSize?: number; }): { size: string; notional: number; } | null; /** * Compute matched size for spot-perp arb. * Uses spot exchange's size decimals for the spot leg. */ export declare function computeSpotPerpMatchedSize(sizeUsd: number, price: number, spotExchange: string, perpExchange: string, spotSizeDecimals?: number, perpSizeDecimals?: number): { size: string; notional: number; } | null; /** * After both legs are submitted, verify actual fills match. * If there's a size mismatch, place a correction order on the larger side. * * @returns the corrected size, or null if already matched */ export declare function reconcileArbFills(longAdapter: ExchangeAdapter, shortAdapter: ExchangeAdapter, symbol: string, log?: (msg: string) => void): Promise<{ matched: boolean; longSize: number; shortSize: number; correction?: string; }>;