/**
 * interpret command — generate a Diagnosis for a Report.
 *
 * Wraps `getDiagnosisRunner(ctx)` from the composition root in a Commander
 * command for consistent CLI integration. Closest analog: compare.ts.
 *
 * Entry points:
 *   ailf interpret <reportId>          — one-line-per-card summary
 *   ailf interpret <reportId> --json   — full Diagnosis JSON
 *   ailf interpret latest              — most recent report
 *   ailf interpret <id> --compare <ref>  — DIAG-05 regression comparison
 *   ailf interpret <id> --refresh      — bypass version-keyed cache
 *
 * @see packages/eval/src/commands/compare.ts — CLI factory analog
 * @see packages/eval/src/composition-root.ts — getDiagnosisRunner
 * @see .planning/phases/05-diagnosis-engine-cli-llm-cards/05-AI-SPEC.md §6
 */
import { Command } from "commander";
import { type DiagnosisCard, type DiagnosisRunner, type VersionedInputs } from "../_vendor/ailf-core/index.d.ts";
interface MinimalReportStore {
    read(id: string): Promise<unknown | null>;
    latest(): Promise<unknown | null>;
}
export interface InterpretCommandOptions {
    /**
     * Override the runner factory for tests. When omitted, the command
     * imports `getDiagnosisRunner` from the composition root at action time.
     */
    readonly runnerFactory?: (ctx: unknown) => DiagnosisRunner;
    /**
     * Override the store factory for tests. When omitted, the command
     * creates the app context and uses `ctx.reportStore` at action time.
     */
    readonly storeFactory?: () => MinimalReportStore | null;
    /**
     * Override the versions resolver for tests. Receives the stored report
     * record and returns the `VersionedInputs` needed by the runner.
     * When omitted, the command derives versions from the report's metadata.
     */
    readonly versionsFromReport?: (report: unknown) => VersionedInputs;
}
/**
 * Visual status markers — locked visual contract per plan Test 7:
 * ready: "✓", degraded: "⚠", missing: "—"
 *
 * Exported so Plan 06-04's post-run hook imports the SAME object and
 * D6-04's "single formatter, single visual contract" is physically
 * enforced — no copy/paste drift possible.
 */
export declare const STATUS_ICONS: Record<DiagnosisCard["status"], string>;
/**
 * Format a single card as a one-line summary string.
 *
 * Format: `<icon> <cardType>: <summary>`
 * Per AI-SPEC §6: distinct icons for ready / degraded / missing.
 *
 * Exported so Plan 06-04's post-run hook imports the SAME function and
 * D6-04's "single formatter, single visual contract" is physically
 * enforced — no copy/paste drift possible.
 */
export declare function formatCardSummaryLine(card: DiagnosisCard): string;
/**
 * Create the `ailf interpret <reportId>` Commander command.
 *
 * Accepts optional `InterpretCommandOptions` for testability — tests can
 * inject a fake runner factory and store factory without touching module
 * mocks (preferred per testing.md).
 */
export declare function createInterpretCommand(options?: InterpretCommandOptions): Command;
export {};
