using System.Threading; using System.Threading.Tasks; using FinlyticCore.Dtos.Fundamentals; using FinlyticCore.Dtos.Sentiment; using FinlyticCore.Dtos.Simulation; using FinlyticCore.Dtos.TechnicalAnalysis; using FinlyticCore.Dtos.Trading; using FinlyticEngine.Services.Scoring; namespace FinlyticEngine.Services.Ai; public interface IAiReasoningGateService { /// /// Validiert ein technisches Setup entweder über den konfigurierten KI-Webhook oder, falls das /// Gate deaktiviert ist bzw. der Webhook nicht verfügbar ist, über eine regelbasierte /// Ersatzentscheidung. Das Ergebnis kennzeichnet über /// eindeutig, welcher der beiden Fälle vorliegt. /// /// /// FinlyticSimulation's backtest-reliability verdict for this exact (Isin, StrategyKey) combination, if /// one has ever been computed (see QuantSimulationEngine) - forwarded onto the AI payload so the /// model sees the same win-rate/profit-factor evidence already /// used for its bonus/veto. when nobody has ever run a backtest for this /// combination yet (never fabricated, Rules.md §4). /// Task ValidateOpportunityAsync( StrategyResultDto setup, IsinSentimentSummaryDto? sentiment, AssetFundamentalsDto? fundamentals, ScoringResult score, StrategyAssetReliabilityDto? reliability = null, CancellationToken cancellationToken = default); }