/**
 * emit-eval-results.ts — decompose the promptfoo results file into the
 * per-entry descriptors that W0049's registry expects.
 *
 * Replaces the Phase-B-stopgap "route the aggregated JSON through the
 * deprecated `evalResults` bulk descriptor" path. For each test in the
 * promptfoo output we emit:
 *
 *   - `rawResults`      per (run, mode, task, model)           — the full result
 *   - `renderedPrompts` per (run, mode, task, model)           — prompt the model saw
 *   - `graderPrompts`   per (run, mode, task, model, grader)   — rubric text
 *   - `graderJudgments` per (run, mode, task, model, grader)   — {score, reason, pass}
 *
 * `testOutputs` is still emitted separately by `calculate-scores-step`
 * via `uploadTestOutputs()` (carried forward from W0048 for byte-
 * equivalence with the original rollout).
 *
 * `traces` (D0088) IS produced here for modes that register a
 * `TraceAdapter`. Slice 1 wired MCP; slice 2 wires literacy (the `agentic`
 * variant); slice 3 wires agent-harness (`claude-agent-sdk`'s
 * `metadata.toolCalls`). The mode's native output is normalized through the
 * mode-agnostic collector into a per-(task, model) `EvalTrace`, redacted,
 * and emitted as a per-entry JSON `traces` artifact (one object per
 * run × mode × task × model × trial). Modes without an adapter (the
 * non-`agentic` literacy variants) emit no traces.
 *
 * The "grader" axis value is the rubric dimension string produced by
 * `classifyRubric` (e.g. "task-completion", "code-correctness"). Non-
 * LLM-rubric component assertions (javascript, contains, etc.) don't
 * have a natural grader identifier and are skipped — their outcomes
 * still live inside the full `rawResults` object.
 */
import { type ArtifactWriter, type RunId } from "../_vendor/ailf-core/index.d.ts";
/**
 * Parse a promptfoo results file and emit the per-entry artifacts.
 *
 * Non-blocking: any individual emit failure warns but does not halt.
 * File read/parse errors are caught and logged; the caller keeps going.
 */
export declare function emitPerEntryEvalResults(writer: ArtifactWriter, ctx: {
    runId: RunId;
}, mode: string, resultsPath: string): Promise<void>;
