import { GateVerdict } from './gate-evidence'; export interface EvaluationFacts { readonly context?: Readonly>; readonly gate?: { readonly phase?: number; readonly mandatoryEvidence?: readonly { readonly artifact: string; }[]; readonly blockingCriteria?: readonly { readonly criterion: string; }[]; }; readonly evidence?: readonly { readonly artifact: string; readonly status?: string; }[]; readonly waiver?: readonly { readonly criterion: string; readonly status: string; readonly expirationDate?: string; }[]; readonly satellite?: Readonly>; readonly tenantId?: string; readonly evaluationDate?: string; readonly qualityEvidence?: readonly { readonly source?: string; readonly dimension?: string; readonly determinism?: string; readonly calibration?: { readonly truePositiveRate?: number; readonly trueNegativeRate?: number; readonly measuredAt?: string; readonly sampleSize?: number; readonly method?: string; readonly labelledBy?: string; }; }[]; readonly qualityAdmissibilityPolicy?: { readonly minTruePositiveRate?: number; readonly minTrueNegativeRate?: number; readonly maxCalibrationAgeDays?: number; }; } export interface SatelliteManifest { satellitePath: string; corePath?: string; topology?: string; topologies?: readonly string[]; phase?: string; facts?: EvaluationFacts; } export type EvaluationSeverity = 'error' | 'warning' | 'info'; export interface RuleEvaluation { ruleId: string; rulePath: string; artifact: string; passed: boolean; message: string; severity: EvaluationSeverity; remediation: string; gateRef: string; } export interface PipelineGateResult { gateId: string; gateName: string; phase: string; verdict: GateVerdict; artifactEvaluations: RuleEvaluation[]; } export interface EvaluationVerdict { passed: boolean; resolvedTopology: string | null; gates: PipelineGateResult[]; summary: { totalGates: number; passedGates: number; failedGates: number; totalRules: number; passedRules: number; failedRules: number; }; evaluatedAt: string; outputEnvelope?: import('./gate-evidence').SuccessEnvelope<{ topology: string | null; gates: PipelineGateResult[]; summary: EvaluationVerdict['summary']; }>; }