export type TerminalState = 'completed' | 'failed' | 'cancelled' | 'timeout'; export type TerminalReason = 'ok' | 'child_failure' | 'deadline' | 'deadline_exceeded' | 'cancelled' | 'containment_failure' | 'containment_failed' | 'missing_quiescent' | 'trajectory_write_failed' | 'rate_limited' | 'protocol_violation' | 'step_limit_exceeded' | 'cost_limit_exceeded'; export interface SupervisorEvidence { quiescent: boolean; descendants: number; } export interface TokenCounts { input: number | null; output: number | null; cache_read?: number | null; cache_creation?: number | null; } export interface StartedMarkerInput { trajectoryRoot: string; rootRunId: string; threadId: string | null; journalPath: string; now?: () => Date; } export interface TerminalManifestInput { trajectoryRoot: string; /** The pinned launcher already resolved this root and created its private subtree. */ canonicalTrajectoryRoot?: true; rootRunId: string; threadId: string | null; state: TerminalState; startedAt: string; endedAt: string; journalPath: string; journalSha256: string; eventCount: number; supervisor: SupervisorEvidence; steps: number | null; costUsd: number | null; tokens: TokenCounts; modelExecutionIdentityHash: string; roleToolSurfaceHash: string; bundleManifestHash: string; terminalReason: TerminalReason; } export declare const TERMINAL_IDENTITY_KEYS: readonly ["model_execution_identity_hash", "role_tool_surface_hash", "bundle_manifest_hash"]; export declare function terminalManifestProblem(value: unknown): string | null; export declare function recordedJournalPath(trajectoryRoot: string, journalPath: string): string; export declare function buildTerminalManifest(input: TerminalManifestInput): Record;