import { ValidatedStrategyRegistryEntry } from '@tradejs/strategy-kit/config'; import { StrategyConfig, Interval, BacktestPriceMode, Direction, StrategyManifest, StrategyAiAdapter } from '@tradejs/types'; interface DoubleTapSideConfig { enable: boolean; direction: Direction; minRiskRatio: number; } type DoubleTapEntryMode = "breakout" | "close_acceptance" | "retest"; declare const config: { readonly ENV: "BACKTEST"; readonly INTERVAL: Interval; readonly MAKE_ORDERS: true; readonly CLOSE_OPPOSITE_POSITIONS: false; readonly BACKTEST_PRICE_MODE: "open"; readonly AI_ENABLED: false; readonly AI_MODE: "llm"; readonly ML_ENABLED: false; readonly ML_THRESHOLD: 0.1; readonly MIN_AI_QUALITY: 4; readonly RISK_FEE_RATE: 0.001; readonly RISK_SLIPPAGE_BPS: 0; readonly RISK_MARKET_IMPACT_BPS: 0; readonly MAX_LOSS_VALUE: 10; readonly MA_FAST: 14; readonly MA_MEDIUM: 49; readonly MA_SLOW: 50; readonly OBV_SMA: 10; readonly ATR: 14; readonly ATR_PCT_SHORT: 7; readonly ATR_PCT_LONG: 30; readonly BB: 20; readonly BB_STD: 2; readonly MACD_FAST: 12; readonly MACD_SLOW: 26; readonly MACD_SIGNAL: 9; readonly DOUBLETAP_PIVOT_LENGTH: 35; readonly DOUBLETAP_PIVOT_TOLERANCE_PCT: 12; readonly DOUBLETAP_TARGET_FIB_PCT: 180; readonly DOUBLETAP_STOP_FIB_PCT: 0; readonly DOUBLETAP_MIN_PATTERN_HEIGHT_PCT: 0.2; readonly DOUBLETAP_MIN_PATTERN_HEIGHT_ATR: 1; readonly DOUBLETAP_ATR_PERIOD: 14; readonly DOUBLETAP_MIN_TAP_SPACING_BARS: 3; readonly DOUBLETAP_MAX_PATTERN_AGE_BARS: 180; readonly DOUBLETAP_MIN_LEG_SYMMETRY_RATIO: 0.25; readonly DOUBLETAP_MIN_BREAKOUT_DISTANCE_ATR: 0.05; readonly DOUBLETAP_MAX_BREAKOUT_DISTANCE_HEIGHT_RATIO: 0.8; readonly DOUBLETAP_MAX_BREAKOUT_DISTANCE_PCT: 0.8; readonly DOUBLETAP_ENTRY_MODE: DoubleTapEntryMode; readonly DOUBLETAP_CONFIRMATION_MAX_BARS: 2; readonly DOUBLETAP_MAX_ENTRY_CONFIRMATION_BARS: 0; readonly DOUBLETAP_MAX_ENTRY_CONFIRMATION_BARS_LONG: 1; readonly DOUBLETAP_MAX_ENTRY_CONFIRMATION_BARS_SHORT: 0; readonly DOUBLETAP_MAX_BB_WIDTH_PCT: 0; readonly DOUBLETAP_MAX_BB_WIDTH_PCT_LONG: 0; readonly DOUBLETAP_MAX_BB_WIDTH_PCT_SHORT: 6; readonly DOUBLETAP_RETEST_MAX_BARS: 4; readonly DOUBLETAP_RETEST_TOLERANCE_ATR: 0.25; readonly DOUBLETAP_EXIT_ON_OPPOSITE_PATTERN: true; readonly LONG: { readonly enable: true; readonly direction: "LONG"; readonly minRiskRatio: 0.7; }; readonly SHORT: { readonly enable: true; readonly direction: "SHORT"; readonly minRiskRatio: 0.7; }; }; type DoubleTapConfig = StrategyConfig & Omit & { BACKTEST_PRICE_MODE: BacktestPriceMode; MIN_AI_QUALITY: number; DOUBLETAP_ENTRY_MODE: DoubleTapEntryMode; LONG: DoubleTapSideConfig; SHORT: DoubleTapSideConfig; }; declare const DoubleTapStrategyDefinition: ValidatedStrategyRegistryEntry; declare const doubleTapManifest: StrategyManifest; declare const doubleTapAiAdapter: StrategyAiAdapter; declare const strategyEntries: ValidatedStrategyRegistryEntry[]; declare const getBuiltInStrategyDefaultConfig: (strategyName: string) => StrategyConfig | undefined; declare const _default: { strategyEntries: ValidatedStrategyRegistryEntry[]; }; export { DoubleTapStrategyDefinition, _default as default, doubleTapAiAdapter, config as doubleTapDefaultConfig, doubleTapManifest, getBuiltInStrategyDefaultConfig, strategyEntries };