/** * Cross-chain margin monitoring and dynamic auto-sizing. * * Provides: * - Per-exchange margin status checking * - Auto-size computation based on orderbook depth and margin limits */ import type { ExchangeAdapter } from "./exchanges/index.js"; export interface ChainMarginStatus { exchange: string; chain: string; equity: number; usedMargin: number; freeMargin: number; marginRatio: number; belowThreshold: boolean; } /** * Check margin status across all configured exchanges. * * @param adapters - Map of exchange name to adapter * @param minMarginPct - Warn when free margin / equity falls below this (default: 30%) * @returns Per-exchange margin status array */ export declare function checkChainMargins(adapters: Map, minMarginPct?: number): Promise; /** * Check if a specific exchange has critically low margin (below 15%). */ export declare function isCriticalMargin(status: ChainMarginStatus): boolean; /** * Check if a specific exchange should block new entries (below threshold). */ export declare function shouldBlockEntries(status: ChainMarginStatus, minMarginPct?: number): boolean; /** * Compute the optimal position size automatically based on: * 1. Orderbook depth on both sides * 2. Free margin constraints (max 50% per trade) * 3. Risk config maxPositionUsd * * @param longAdapter - Adapter for the long side exchange * @param shortAdapter - Adapter for the short side exchange * @param symbol - Trading symbol * @param maxSlippagePct - Max acceptable slippage (default: 0.3%) * @returns USD size per leg, or 0 if not viable */ export declare function computeAutoSize(longAdapter: ExchangeAdapter, shortAdapter: ExchangeAdapter, symbol: string, maxSlippagePct?: number): Promise;