/**
 * Claude Code message translation — maps the SDK's SDKMessage async stream to
 * the neutral {@link AgentEvent} union.
 *
 * Translation rules match the handling that previously lived inline in
 * `backend/src/services/claude.ts`, so behaviour is preserved:
 *   - `type: "result"` messages emit a `result` event with status derived from
 *     the SDK's subtype (error_max_turns / error_max_budget_usd /
 *     error_during_execution / success).
 *   - Messages carrying `session_id` emit a `session_started` event. The SDK
 *     can emit these repeatedly; callers that only care about the first
 *     arrival should dedupe locally.
 *   - Messages carrying `slash_commands` emit a `slash_commands` event.
 *   - system / compact_boundary messages emit `compaction_boundary`.
 *   - Per-turn content blocks are split into individual `text`, `thinking`,
 *     `tool_use`, and `tool_result` events.
 *
 * Anything the SDK emits that isn't in the core union is silently dropped at
 * this layer — callers don't need it today. If that changes, emit an
 * `adapter_specific` event instead of extending the core union.
 */
import type { AgentEvent } from "../../ports/events.js";
export declare function translateSdkMessages(source: AsyncIterable<unknown>): AsyncIterable<AgentEvent>;
//# sourceMappingURL=messageAdapter.d.ts.map