import type { Rule, RuleSet, RuleMetric, RuleThresholds } from '../../shared/types/config.types.js'; import type { Severity } from '../../shared/types/detection.types.js'; export interface ValidationResult { valid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; } export interface ValidationError { ruleId?: string; field: string; message: string; } export interface ValidationWarning { ruleId?: string; field: string; message: string; } export interface RuleEvaluation { rule: Rule; value: number; violated: boolean; triggeredSeverity: Severity | null; message: string; } export interface MetricsData { p95_frame_time?: number; dropped_frames_pct?: number; reflow_cost_ms?: number; gpu_stall_ms?: number; long_task_ms?: number; } export interface RulesEvaluationResult { evaluations: RuleEvaluation[]; violations: RuleEvaluation[]; maxSeverity: Severity | null; passed: boolean; } export interface IRulesService { loadRules(path: string): Promise; validateRules(rules: RuleSet): ValidationResult; evaluateRule(rule: Rule, value: number): RuleEvaluation; evaluateAllRules(rules: RuleSet, metrics: MetricsData): RulesEvaluationResult; listRules(): Rule[]; getDefaultRules(): RuleSet; } export type { Rule, RuleSet, RuleMetric, RuleThresholds }; export type { Severity };