/**
 * Agent-harness TraceAdapter (D0088 slice 3).
 *
 * Agent-harness runs promptfoo's `anthropic:claude-agent-sdk` provider, which
 * (post the promptfoo `toolCalls` bump) returns the agent's full tool
 * transcript as `response.metadata.toolCalls`. Each entry has the shape
 * `{ id, name, input, output, is_error, parentToolUseId }` — close to MCP's
 * `ToolCallEntry`, so this adapter near-clones `mcp-trace-adapter.ts` and maps
 * onto the collector's `RawToolCall` with `provider-metadata` provenance,
 * tagged `mode: "agent-harness"`.
 *
 * The one shape difference from MCP is the error channel: MCP hands us a string
 * `error`; `claude-agent-sdk` hands us a boolean `is_error` plus the error text
 * folded into `output` (it is the failed `tool_result` content). We normalize
 * `is_error` → `error` by deriving an error string from `output` so a failed
 * call carries the same truthy `error` signal the collector and downstream UI
 * expect. The redactor scrubs both `output` and `error` before persistence.
 *
 * v1 captures the call sequence (name/input/output/error) only. The SDK's
 * `id` / `parentToolUseId` (sub-agent nesting) and `skillCalls` have no slot in
 * the mode-agnostic `RawToolCall` / `ToolCallRecord` model and no consumer yet,
 * so they are intentionally dropped here — a later slice can widen the model if
 * sub-agent nesting becomes useful.
 *
 * @see packages/eval/src/pipeline/compiler/mode-handlers/agent-harness/compiler.ts
 * @see docs/design-docs/agent-harness-traces-and-fixtures.md
 */
import type { TraceAdapter } from "../trace-adapter.js";
import type { TraceNativeResult } from "./native-result.js";
export declare const agentHarnessTraceAdapter: TraceAdapter<TraceNativeResult>;
