/**
 * 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