/** * Pipeline 5 — Observation-based auto-capture. * * Converts shield findings into lint rules by extracting the offending * source line, converting it to a regex pattern, and wrapping it in a * CompiledRule. A deduplication pass merges rules with identical patterns. */ import type { CompiledRule } from './compiler-schema.js'; /** Describes a single shield observation that should be turned into a rule. */ export interface ObservationInput { /** File path where the finding was reported. */ file: string; /** 1-based line number of the finding. */ line: number; /** Shield finding message. */ message: string; /** Full content of the file. */ fileContent: string; } /** * Generate a CompiledRule from a shield observation. * * Returns `null` when the target line is out of range, empty, or produces * an empty pattern. * * **Invariant (ADR-058):** severity is always `'warning'`, never `'error'`. */ export declare function generateObservationRule(input: ObservationInput): CompiledRule | null; /** * Merge rules that share the same `lessonHash` (i.e., identical pattern). * * For duplicates the unique messages are joined with ` | ` and * fileGlobs are merged so the rule covers all observed file types. */ export declare function deduplicateObservations(rules: CompiledRule[]): CompiledRule[]; //# sourceMappingURL=pipeline-observation.d.ts.map