using System.Collections.Generic;
using FinlyticCore.Dtos.TechnicalAnalysis;
namespace FinlyticTechnicals.Strategies;
///
/// Strategy contract for evaluating technical context, indicators, and detected patterns to produce structured trading setups with an ExitPlan.
///
public interface ITechnicalStrategy
{
string StrategyKey { get; }
string StrategyName { get; }
int Priority { get; }
///
/// Checks if this strategy is applicable in the current market regime.
///
bool IsApplicable(MarketRegime regime);
///
/// Evaluates technical context and active patterns to generate a StrategyResultDto or null.
///
StrategyResultDto? Evaluate(TechnicalContext context, IReadOnlyList activePatterns);
}