import type { SatelliteManifest, EvaluationVerdict } from '../../domain/satellite-manifest'; import type { RuleEngine } from '../contracts/evaluation-result'; import type { EvaluationKind } from '../contracts/evaluation-context'; export interface PipelineRuleCoverage { readonly rulesChecked: number; readonly rulesSkipped: number; readonly rulesErrored: number; readonly rulesTotal: number; readonly skippedRuleIds: readonly string[]; readonly erroredRuleIds: readonly string[]; readonly outOfScopeGateIds?: readonly string[]; } export type PipelineVerdict = EvaluationVerdict & { readonly engine?: RuleEngine; readonly coverage?: PipelineRuleCoverage; }; export interface PipelineExecutionPlan { readonly requestedKinds: readonly EvaluationKind[]; readonly unrestricted: boolean; includesGate(gateKinds: readonly EvaluationKind[]): boolean; } export declare function createPipelineExecutionPlan(requestedKinds?: readonly EvaluationKind[]): PipelineExecutionPlan; export interface IEvaluationPipeline { evaluate(manifest: SatelliteManifest, plan?: PipelineExecutionPlan): Promise; }