import type { BacktestColumnSpec, Bar, CreateTradingEnvOptions, FilledOrder, MaValues, ParamsValidationResult, ParamValue, Strategy, TradingEnv } from "./types"; export interface TypedTradingEnv> extends TradingEnv { getParam(key: K, defaultValue: TParams[K]): TParams[K]; getParam(key: string, defaultValue: T): T; } export interface StrategySpec> { name: string; version: string; params: TParams; allowedResolutions?: string[]; requiredTimeframes?: Record; backtestColumns?: BacktestColumnSpec[]; validateParams?(parsed: unknown): ParamsValidationResult; createTradingEnv?(innerEnv: TradingEnv, options: CreateTradingEnvOptions): TradingEnv; init?(env: TypedTradingEnv): void; onBar(bar: Bar, maValues: MaValues, env: TypedTradingEnv): void; onOrderFill?(order: FilledOrder, env: TypedTradingEnv): void; onEnd?(env: TypedTradingEnv): void; } export declare function defineStrategy>(spec: StrategySpec): Strategy; //# sourceMappingURL=define-strategy.d.ts.map