/**
* Command/narration event emitter for the coordination layer.
*
* `writeSessionEvent` records command spans in the canonical V3 ledger.
*/
/** Event types accepted by `writeSessionEvent`. */
export type SessionEventType = "command.started" | "command.output_observed" | "command.completed";
/**
* Resolved path of the ndjson sidecar file. Lives inside `.harnery/` so a
* containerized reader can pick it up through a single bind mount.
*/
export declare function coordinationRootPath(): string;
/** Random 8-char hex id for grouping output lines under a single command. */
export declare function newCmdId(): string;
/**
* Read the model's most recent `...` declaration from the
* intent-stamp file written by the PreToolUse hook. Returns null when the
* file is missing, empty, or contains the explicit `(no intent)` sentinel.
* Callers fall back to whatever default they want in that case.
*
* Path: `.harnery/.last-intent.` next to the agent's heartbeat.
*/
export declare function readLastIntent(instanceId?: string): string | null;
/**
* Record a command event in V3. Best-effort, never throws into the caller;
* telemetry must not break or slow a command.
*/
export declare function writeSessionEvent(type: SessionEventType, fields?: Record): void;
/** Trim long values to keep individual events small. */
export declare function clampField(v: string, max?: number): string;
//# sourceMappingURL=session-events.d.ts.map