/**
 * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
 *
 *   - `mapRunToA2AEvent(event, contextId?)` is a one-way mapper: RunEvent →
 *     A2AStreamEvent | null. There is no reverse mapper (§2.7).
 *   - For events in MAPPING, the returned object is either a
 *     TaskStatusUpdateEvent (with a `status` field) or a
 *     TaskArtifactUpdateEvent (with an `artifact` field).
 *   - For events explicitly mapped to null (iteration_completed,
 *     tool_executing, sub-session lifecycle, etc.), the mapper returns
 *     null — this is NOT a bug, it is the "bridge does not surface this"
 *     contract. Asserting the null-set here pins the contract.
 *   - `run_started` / `run_completed` / `run_failed` / `iteration_started`
 *     / `run_paused` produce TaskStatusUpdateEvent with stable states:
 *     running / completed / failed / running / input-required.
 *   - `run_completed.final` is true; every non-terminal status event has
 *     `final: false`.
 *   - `llm_response` with null/empty `content` returns null; with content
 *     returns a running status event.
 *   - `tool_completed` produces an artifact event with `artifactId`
 *     containing a timestamp and `metadata.toolName`.
 *   - `tool_review_requested` and `plan_ready` attach data parts with
 *     domain-specific mime types: `application/x-namzu-review-request`
 *     and `application/x-namzu-plan`.
 *   - `contextId` threads through into the returned event when provided.
 *   - `mapSessionToA2AEvent` is a deprecated alias — identical behavior.
 */
export {};
//# sourceMappingURL=mapper.test.d.ts.map