/**
 * Event translation: openrouter-agent-harness `AgentCoreEvent` →
 * callboard `AgentEvent`.
 *
 * The OR library yields a discriminated union of low-level run events; this
 * adapter projects them onto the callboard-neutral {@link AgentEvent} shape
 * that frontend code already consumes (text/thinking/tool_use/tool_result/
 * result etc.). `reasoning_delta` maps to `thinking` (live reasoning text —
 * same wire shape the Claude adapter produces for thinking deltas).
 * `turn_end` becomes an `adapter_specific` "turn_cost" beacon so the service
 * layer can surface live per-turn spend (see translateEvent). `turn_start`
 * and the bridge `error` event are dropped (their information is folded into
 * the eventual `stream_complete`/`result` payload).
 *
 * A synthetic `slash_commands` event is emitted at session start using a
 * {@link CommandLoader} so the frontend's slash-menu UI works without relying on
 * a wire-level event the OR library does not expose. The adapter passes a loader
 * pre-built with plugin command roots + skill convergence (see commandAdapter);
 * when none is supplied we fall back to a bare project/user `createCommandLoader`
 * so direct callers (and tests) keep working.
 *
 * @see plans/openrouter-adapter.md §3 (event translation table)
 */
import { type AgentCoreEvent, type CommandLoader, type OpenRouterAgentRun } from "@wolpertingerlabs/openrouter-agent-harness";
import type { AgentEvent } from "../../ports/events.js";
/**
 * Drives the OR run's async iteration and yields translated callboard
 * {@link AgentEvent}s. Single-shot — call once per run.
 */
export declare function translateOpenRouterEvents(run: OpenRouterAgentRun, cwd: string, commandLoader?: CommandLoader): AsyncIterable<AgentEvent>;
/**
 * Pure translation of a single {@link AgentCoreEvent} — exported for unit
 * tests that don't want to drive a full run iterator. Returns `null` for
 * variants that should be dropped (turn starts, bridge errors, zero-cost
 * turn ends). One variant fans out: `server_tool` carries both the invocation
 * and its result in a single event, so it translates to a `tool_use` +
 * `tool_result` PAIR (matching how the session/transcript parsers project
 * these onto history — see serverTools.ts).
 */
export declare function translateEvent(event: AgentCoreEvent): AgentEvent | AgentEvent[] | null;
//# sourceMappingURL=messageAdapter.d.ts.map