import { z } from 'zod'; /** * The kinds the engine emits — every one of them, and nothing else. * * This list held thirteen names for a long time, and eight of them had no emitter anywhere: * `server_started`, `server_stopped`, `request_received`, `request_spilled`, `project_evicted`, * `stall_watchdog_armed`, `stall_watchdog_fired`, `server_error`. Two things kept them alive. * The manifest golden listed all thirteen, and the tests that "covered" the list asserted its * LENGTH — a count passes just as happily over eight names nothing produces. And the * observability contract test emitted `request_received` and `stall_watchdog_armed` itself, * then checked the entries it had just built were valid, which made the dead names look used. * * `plain-log-emitter-reachability.test.ts` now requires every name here to appear as an emitted * literal in production source, so a kind cannot outlive the code that emitted it again. */ export declare const PlainLogKindEnum: z.ZodEnum<{ batch_created: "batch_created"; batch_completed: "batch_completed"; batch_failed: "batch_failed"; batch_cancelled: "batch_cancelled"; provider_event: "provider_event"; }>; export declare const PlainLogEntrySchema: z.ZodObject<{ ts: z.ZodString; kind: z.ZodEnum<{ batch_created: "batch_created"; batch_completed: "batch_completed"; batch_failed: "batch_failed"; batch_cancelled: "batch_cancelled"; provider_event: "provider_event"; }>; fields: z.ZodRecord>; }, z.core.$strict>; export type PlainLogEntry = z.infer; export declare const PROVIDER_EVENT_NAMES: readonly ["claude_session_starting", "claude_turn_started", "claude_error", "claude_turn_completed", "claude_text_emission", "claude_tool_call", "claude_session_closed", "claude_compaction", "codex_subprocess_starting", "codex_spawn_failed", "codex_subprocess_started", "codex_subprocess_exited", "codex_thread_started", "codex_turn_started", "codex_command_started", "codex_command_completed", "codex_turn_completed", "codex_turn_failed", "codex_error", "codex_agent_message", "codex_file_change"]; type ProviderEventName = (typeof PROVIDER_EVENT_NAMES)[number]; /** Per-event field shapes are NOT pre-declared — `mapProviderEventToPlainEntry` * passes through all primitive fields from the raw event payload (object-valued * fields become `_json`). The names list above is the closed schema; field * shapes are discovered from the provider files at migration time (T11) and * asserted by tests/events/provider-event-mapping.test.ts. */ export declare function mapProviderEventToPlainEntry(provider: 'claude' | 'codex', event: ProviderEventName, rawFields: Record): PlainLogEntry; export {}; //# sourceMappingURL=plain-log-entry.d.ts.map