/**
 * The wire runner — a line-delimited JSON protocol over stdio.
 *
 * This is the machine-facing runner behind `--json` (a.k.a. `--rpc`/`--wire`):
 * a host process speaks to the agent by writing one JSON request per line and
 * reads back one JSON event per line. It is the integration seam for editors,
 * orchestrators, and test harnesses that want structured access to the run
 * rather than rendered prose.
 *
 * Protocol (every message is a single line of JSON, newline-terminated):
 *
 *   Requests (host → runner):
 *     { "type": "submit", "input": "<prompt text>" }
 *
 *   Responses (runner → host):
 *     { "type": "event",  "event": <RunEvent> }   — one per live run event
 *     { "type": "result", "snapshot": <RunSnapshot> } — once per settled submit
 *     { "type": "error",  "message": "<why>" }    — a protocol/parse failure
 *
 * The reader is robust to partial lines: bytes are accumulated into a buffer and
 * only complete `\n`-delimited lines are parsed, so a request split across two
 * chunks is handled correctly. Blank lines are ignored; a line that is not valid
 * JSON, or not a recognised request, yields an `error` response and the loop
 * continues rather than tearing down the connection.
 *
 * The runner resolves its exit code when the input stream ends (EOF): 0 in the
 * normal case.
 */
import type { Runner } from "./contract";
/**
 * The line-delimited JSON runner. Accepts the `wire` mode the parser derives
 * from `--json`/`--rpc`/`--wire`.
 */
export declare const WireRunner: Runner;
