import type { CoverageStatus } from "../../domain/coverageRelevance.js";
/**
 * One requirement row of the traceability matrix: refs + status, plus an optional short REDACTED
 * requirement excerpt (#790) so an auditor can read WHICH requirement a row traces without
 * cross-referencing atom ids. Absent on runs recorded before the excerpt existed.
 */
export interface QualityIntelligenceTraceabilityRow {
    readonly atomId: string;
    readonly status: CoverageStatus;
    readonly confidence: number;
    readonly coveringCandidateIds: readonly string[];
    readonly requirementExcerptRedacted?: string;
}
/** Optional display enrichment: candidate id -> already-redacted candidate title (#790). */
export interface QualityIntelligenceTraceabilityDisplayOptions {
    readonly candidateTitleById?: ReadonlyMap<string, string>;
}
/** CSV header row for the requirement -> tests direction. */
export declare const TRACEABILITY_HEADERS: readonly string[];
/** CSV header row for the test -> requirements (reverse) direction. */
export declare const TRACEABILITY_REVERSE_HEADERS: readonly string[];
/**
 * Render the coverage matrix as a spreadsheet-safe, BIDIRECTIONAL CSV traceability matrix: a
 * requirement->tests section followed by a blank line and a tests->requirements section. Each cell
 * is formula-injection-safe via the shared encoder.
 */
export declare function adaptToTraceabilityCsv(rows: readonly QualityIntelligenceTraceabilityRow[], display?: QualityIntelligenceTraceabilityDisplayOptions): string;
/**
 * Render the coverage matrix as a BIDIRECTIONAL Markdown traceability document: a Requirements ->
 * Tests table followed by a Tests -> Requirements table. Deterministic, pipe-escaped and
 * formula-lead-neutralised.
 */
export declare function adaptToTraceabilityMarkdown(rows: readonly QualityIntelligenceTraceabilityRow[], display?: QualityIntelligenceTraceabilityDisplayOptions): string;
//# sourceMappingURL=traceability.d.ts.map