/**
 * TraceAdapter — the per-mode seam onto the mode-agnostic trace model (D0088).
 *
 * Each evaluation mode supplies a thin `TraceAdapter` that normalizes its
 * native per-step output into the collector's `RawTraceInput`. The collector
 * (`collectTrace`), `mergeTraces`, and `redactTrace` stay mode-agnostic;
 * adding a future mode means adding an adapter here, not touching the
 * collector or storage.
 *
 *   native result ──adapter.toRawTrace──▶ RawTraceInput ──collectTrace──▶ EvalTrace
 *
 * @see docs/decisions/D0088-unified-agentic-trace-model.md
 * @see docs/design-docs/unified-agentic-trace-model.md
 */
import type { EvalMode, EvalTrace } from "../../../_vendor/ailf-core/index.d.ts";
import type { TraceNativeResult } from "./adapters/native-result.js";
import { type ProviderResponse } from "./trace-collector.js";
/**
 * What the collector consumes: `metadata.toolCalls` + token/latency +
 * per-mode access hints. Identical to the collector's `ProviderResponse`;
 * aliased to the design's vocabulary.
 */
export type RawTraceInput = ProviderResponse;
/**
 * Per-test identity threaded into the trace. Carries everything the
 * collector needs beyond the mode (which the adapter supplies).
 */
export interface TraceContext {
    runId: string;
    taskId: string;
    modelId: string;
    testCaseIndex: number;
}
/**
 * Normalizes a mode's native per-step output into `RawTraceInput`.
 *
 * @typeParam NativeResult - the mode-specific shape (e.g. a promptfoo result
 *   row for MCP, the `tool_use` transcript + HTTP log for literacy).
 */
export interface TraceAdapter<NativeResult> {
    /** The mode this adapter serves; stamped onto `EvalTrace.mode`. */
    readonly mode: EvalMode;
    /** Map the native result into the collector's input shape. */
    toRawTrace(native: NativeResult, ctx: TraceContext): RawTraceInput;
}
/**
 * Run a native result through its adapter and the mode-agnostic collector to
 * produce an `EvalTrace`. Redaction is applied separately, before any write
 * (`redactTrace`), per D0088.
 */
export declare function buildEvalTrace<NativeResult>(adapter: TraceAdapter<NativeResult>, native: NativeResult, ctx: TraceContext): EvalTrace;
/**
 * Resolve the trace adapter for the runtime mode string. Returns `undefined`
 * for any mode without a registered adapter — including the canonical
 * `literacy` (which never runs as a step), the non-`agentic` literacy
 * variants, and the per-variant `gold` / `baseline` artifact-axis values.
 */
export declare function traceAdapterForMode(mode: string): TraceAdapter<TraceNativeResult> | undefined;
