import { Connector, Interval, StrategyConfig, Signal, StrategyManifest, StrategyHookBarContext, StrategyDecision, StrategyHookAfterDecisionContext, TradejsRuntimeDeclaration, ConnectorPluginDefinition, IndicatorPluginDefinition, StrategyPluginDefinition } from '@tradejs/types'; type PluginModuleSpecifier = string; type StrategyManifestHooks = NonNullable; type HookOrHooks = THook | THook[]; type TradejsConfigAfterCoreDecisionHook = (params: StrategyHookAfterDecisionContext) => Promise | StrategyDecision | void; type TradejsConfigAfterBarDecisionHook = (params: StrategyHookAfterDecisionContext) => Promise | StrategyDecision | void; type TradejsConfigOnBarHook = (params: StrategyHookBarContext) => Promise | StrategyDecision | void; interface TradejsConfigSignalsRuntimeStrategy { strategyName: string; strategyConfig: StrategyConfig; } interface TradejsConfigSignalsHookContext { connector: Connector; connectorName: string; userName: string; interval: Interval; tickers: string[]; runtimeStrategies: TradejsConfigSignalsRuntimeStrategy[]; } interface TradejsConfigBeforeSignalsHookResult { abort?: boolean; reason?: string; } interface TradejsConfigAfterSignalsHookContext extends TradejsConfigSignalsHookContext { signals: Signal[]; status: 'completed' | 'failed'; durationMs: number; } type TradejsConfigBeforeSignalsHook = (params: TradejsConfigSignalsHookContext) => Promise | TradejsConfigBeforeSignalsHookResult | void; type TradejsConfigAfterSignalsHook = (params: TradejsConfigAfterSignalsHookContext) => Promise | void; interface TradejsConfigHooks { beforeSignals?: HookOrHooks; afterSignals?: HookOrHooks; onInit?: HookOrHooks>; onBar?: HookOrHooks; afterCoreDecision?: HookOrHooks; afterBarDecision?: HookOrHooks; onSkip?: HookOrHooks>; beforeClosePosition?: HookOrHooks>; afterEnrichMl?: HookOrHooks>; afterEnrichAi?: HookOrHooks>; beforeEntryGate?: HookOrHooks>; beforePlaceOrder?: HookOrHooks>; afterPlaceOrder?: HookOrHooks>; onRuntimeError?: HookOrHooks>; } interface TradejsConfig { strategies?: PluginModuleSpecifier[]; indicators?: PluginModuleSpecifier[]; connectors?: PluginModuleSpecifier[]; hooks?: TradejsConfigHooks; runtime?: TradejsRuntimeDeclaration; } declare const mergeTradejsConfigHooks: (...groups: Array) => TradejsConfigHooks | undefined; declare const normalizeTradejsConfigHooks: (hooks?: TradejsConfigHooks) => TradejsConfigHooks | undefined; declare function defineConfig(...configs: TradejsConfig[]): TradejsConfig; declare const defineStrategyPlugin: (plugin: T) => T; declare const defineIndicatorPlugin: (plugin: T) => T; declare const defineConnectorPlugin: (plugin: T) => T; export { type PluginModuleSpecifier, type TradejsConfig, type TradejsConfigAfterBarDecisionHook, type TradejsConfigAfterCoreDecisionHook, type TradejsConfigAfterSignalsHook, type TradejsConfigAfterSignalsHookContext, type TradejsConfigBeforeSignalsHook, type TradejsConfigBeforeSignalsHookResult, type TradejsConfigHooks, type TradejsConfigOnBarHook, type TradejsConfigSignalsHookContext, type TradejsConfigSignalsRuntimeStrategy, defineConfig, defineConnectorPlugin, defineIndicatorPlugin, defineStrategyPlugin, mergeTradejsConfigHooks, normalizeTradejsConfigHooks };