export type ConditionType = "price_above" | "price_below" | "volatility_above" | "volatility_below" | "funding_rate_above" | "funding_rate_below" | "spread_above" | "rsi_above" | "rsi_below" | "balance_above" | "balance_below" | "time_after" | "max_drawdown" | "always"; export interface Condition { type: ConditionType; value: number | string; symbol?: string; exchange?: string; } export interface RiskConfig { max_position_usd: number; max_daily_loss: number; max_drawdown: number; pause_after_loss_sec: number; max_open_bots: number; } export interface GridStrategyParams { type: "grid"; grids: number; size: number; side: "long" | "short" | "neutral"; range_mode: "auto" | "fixed"; range_pct?: number; upper?: number; lower?: number; rebalance: boolean; rebalance_cooldown: number; leverage?: number; } export interface DCAStrategyParams { type: "dca"; amount: number; interval_sec: number; total_orders: number; price_limit?: number; side?: "buy" | "sell"; } export interface FundingArbStrategyParams { type: "funding-arb"; min_spread: number; close_spread: number; spot_perp_min_spread?: number; size_usd: number; max_positions: number; exchanges: string[]; leverage?: number; min_hold_hours?: number; } export interface GenericStrategyParams { type: string; [key: string]: unknown; } export type StrategyParams = GridStrategyParams | DCAStrategyParams | FundingArbStrategyParams | GenericStrategyParams; export interface BotConfig { name: string; exchange: string; symbol: string; strategy: StrategyParams; entry_conditions: Condition[]; exit_conditions: Condition[]; risk: RiskConfig; monitor_interval_sec: number; } export declare function loadBotConfig(pathOrInline: string): BotConfig; export declare function parseStrategy(type: string, raw: Record): StrategyParams; export declare function quickGridConfig(opts: { exchange: string; symbol: string; rangePct: number; grids: number; size: number; side: string; maxDrawdown: number; maxRuntime?: number; leverage?: number; }): BotConfig; export declare function quickDCAConfig(opts: { exchange: string; symbol: string; side: string; amount: number; intervalSec: number; orders: number; triggerDrop?: number; priceLimit?: number; maxDrawdown: number; }): BotConfig;