// ----------------------------------------------------------------------------- // IScanMetricsCollector.cs // Sprint: SPRINT_20260106_003_002_SCANNER_vex_gate_service // Task: T017 // Description: Interface for scan metrics collection. // ----------------------------------------------------------------------------- namespace StellaOps.Scanner.Worker.Metrics; /// /// Interface for collecting scan metrics during execution. /// public interface IScanMetricsCollector { /// /// Gets the metrics ID for this scan. /// Guid MetricsId { get; } /// /// Start tracking a phase. /// IDisposable StartPhase(string phaseName); /// /// Complete a phase with success. /// void CompletePhase(string phaseName, Dictionary? metrics = null); /// /// Complete a phase with failure. /// void FailPhase(string phaseName, string errorCode, string? errorMessage = null); /// /// Set artifact counts. /// void SetCounts(int? packageCount = null, int? findingCount = null, int? vexDecisionCount = null); /// /// Records VEX gate metrics. /// void RecordVexGateMetrics( int totalFindings, int passedCount, int warnedCount, int blockedCount, TimeSpan elapsed); }