import type { RuleEvaluation, SatelliteManifest } from '../domain/satellite-manifest'; import type { EvaluationKind } from './contracts/evaluation-context'; import type { IEvaluationPipeline, PipelineExecutionPlan } from './ports/evaluation-pipeline.port'; export interface PipelineGateSpec { readonly gateId: string; readonly gateName: string; readonly phase: string; readonly kinds: readonly EvaluationKind[]; evaluate(manifest: SatelliteManifest): Promise; } export interface KindSelectivePipelineOptions { readonly resolveTopology?: (manifest: SatelliteManifest) => string | null; readonly now?: () => string; } export declare function selectGates(gates: readonly T[], plan?: PipelineExecutionPlan): { readonly selected: readonly T[]; readonly outOfScope: readonly T[]; }; export declare function createKindSelectivePipeline(gates: readonly PipelineGateSpec[], options?: KindSelectivePipelineOptions): IEvaluationPipeline;