/**
 * Deterministic prompt-builder helpers for the 5 LLM diagnosis cards.
 *
 * Each function takes typed inputs and returns `{ system, user }` strings
 * (+ a `deltas` side-channel for regression-vs-baseline). The same inputs
 * always produce the same output — no randomness, no side effects.
 *
 * Per AI-SPEC §4: input tokens are bounded by truncation; the user message
 * projects only the fields each card needs.
 *
 * @see .planning/phases/05-diagnosis-engine-cli-llm-cards/05-AI-SPEC.md §4
 * @see .planning/phases/05-diagnosis-engine-cli-llm-cards/05-AI-SPEC.md §3 lines 603-664
 */
import type { JudgmentAttribution } from "../../types/attribution.js";
import type { Report } from "../../types/index.js";
/**
 * Build the allow-list of doc slugs for a report. This is the union of:
 * - report.summary.documentManifest[].slug
 * - per-score documents[].slug
 *
 * Only slugs (not documentIds) appear in the allow-list because the cards
 * reference human-readable slugs. DocumentId-only entries are skipped.
 */
export declare function buildDocSlugAllowList(report: Report): Set<string>;
/**
 * Projects the 3 weakest areas + top failure modes + doc-slug allow-list
 * into the user message (~2500 input tokens).
 */
export declare function buildTopRecommendationsPrompt(report: Report, allowList: Set<string>): {
    system: string;
    user: string;
};
/**
 * Projects the single weakest area + full failure-mode breakdown.
 */
export declare function buildWeakestAreaPrompt(report: Report): {
    system: string;
    user: string;
};
/**
 * Filters to low-confidence entries (or top-N if none low), produces a table
 * for the LLM (~2000 input tokens).
 *
 * Caller short-circuits on empty `judgmentAttributions` BEFORE calling this.
 */
export declare function buildLowConfidenceAttributionPrompt(report: Report, judgmentAttributions: JudgmentAttribution[]): {
    system: string;
    user: string;
};
/**
 * Aggregates attributions by documentId, picks top-5 by aggregate score,
 * emits a table for the LLM.
 *
 * Caller short-circuits on empty `judgmentAttributions` BEFORE calling this.
 */
export declare function buildDocAttributionSpotlightPrompt(report: Report, judgmentAttributions: JudgmentAttribution[]): {
    system: string;
    user: string;
};
/**
 * Computes per-area deltas in JS (failure-mode #1 mitigation), then builds
 * the user message. Returns `deltas` as a side-channel for the per-call
 * schema `.refine()`.
 */
export declare function buildRegressionVsBaselinePrompt(report: Report, baseline: Report): {
    system: string;
    user: string;
    deltas: {
        area: string;
        pointsDelta: number;
    }[];
};
