import { NormalizedRule } from '../../../domain/models/normalized-rule'; import type { EvaluationFacts } from '../../../domain/satellite-manifest'; import type { RuleEvaluability } from '../rule-evaluability'; export interface WorkspaceEvaluationContext { satellitePath: string; corePath: string; facts?: EvaluationFacts; } export type RuleEvaluationOutcome = 'passed' | 'failed' | 'skipped' | 'errored'; export interface RuleEvaluationResult { rule: NormalizedRule; result: RuleEvaluationOutcome; message?: string; evidencePath?: string; evaluability?: RuleEvaluability; } export interface IRuleEvaluatorStrategy { evaluateAll(rules: NormalizedRule[], context: WorkspaceEvaluationContext): Promise; }