export type StrategySubscription = 'CANDLE_CLOSE' | 'TRADE' | 'ORDERBOOK';
export type StrategyConditionOperator = '>' | '<' | '>=' | '<=' | '==';
export interface StrategyComparisonCondition {
    type: 'comparison';
    field: string;
    operator: StrategyConditionOperator;
    value: number;
    left?: never;
    right?: never;
}
export interface StrategyLogicalCondition {
    type: 'and' | 'or';
    left: StrategyConditionNode;
    right: StrategyConditionNode;
    field?: never;
    operator?: never;
    value?: never;
}
export type StrategyConditionNode = StrategyComparisonCondition | StrategyLogicalCondition;
export type StrategyCondition = StrategyConditionNode;
export type StrategyAiPolicy = 'disabled' | 'assist' | 'dominant';
export interface StrategySpec {
    schemaVersion: string;
    name: string;
    description: string;
    timeframe: string;
    subscriptions: StrategySubscription[];
    features: string[];
    entry: {
        long?: StrategyCondition;
        short?: StrategyCondition;
    };
    exit?: {
        stopLossATR?: number;
        takeProfitATR?: number;
        maxHoldCandles?: number;
    };
    risk: {
        maxPositions: number;
        cooldownCandles?: number;
    };
    aiPolicy?: StrategyAiPolicy;
}
//# sourceMappingURL=strategy-spec.interface.d.ts.map