/**
 * pipeline/discovery-report.ts
 *
 * Generates an agent discoverability report from agentic mode retrieval
 * metrics. Reads score-summary.json (which contains `retrievalMetrics`
 * from agentic evaluation) and produces a markdown report showing:
 *
 *   - Retrieval summary (recall, precision, F1)
 *   - Per-area retrieval breakdown
 *   - Invisible documents (never retrieved by any task)
 *   - Recommendations for improving discoverability
 *
 * All functions accept rootDir as a parameter — no module-level constants.
 * No process.argv parsing. No env var fallbacks.
 *
 * Phase 5c of the Scenario Matrix implementation (Scenarios 4.1 and 4.2).
 *
 * @see docs/design-docs/retrieval-metrics.md
 */
import type { AreaRetrievalMetrics, RetrievalMetrics, ScoreSummary } from "./types.js";
export interface DiscoveryReport {
    /** All areas included in the report (after filtering) */
    areas: AreaRetrievalMetrics[];
    /** Base URL from the score summary source config */
    baseUrl: string | undefined;
    /** Document slugs that were never retrieved by any task */
    invisibleDocs: InvisibleDoc[];
    /** Overall retrieval metrics */
    overall: RetrievalMetrics["overall"];
    /** Actionable recommendations */
    recommendations: string[];
    /** ISO timestamp of the source evaluation */
    timestamp: string;
    /** Total canonical docs across included areas */
    totalCanonicalDocs: number;
    /** Total hits (canonical docs successfully retrieved) */
    totalHits: number;
}
export interface InvisibleDoc {
    /** Tasks that reference this document via canonical_docs */
    referencedBy: string[];
    /** The document slug */
    slug: string;
}
/**
 * Format a discovery report as markdown.
 */
export declare function formatDiscoveryMarkdown(report: DiscoveryReport): string;
/**
 * Generate a structured discovery report from a score summary.
 *
 * @param summary - Parsed score-summary.json
 * @param areaFilter - Optional area names to include (all if empty)
 */
export declare function generateDiscoveryReport(summary: ScoreSummary, areaFilter?: string[]): DiscoveryReport;
