import { type RuntimeRecord } from "../domain/records.js"; import { type ClaudeProviderVersion } from "../hooks/provider.js"; import { type LinuxProcessIdentity } from "../runtime/process-identity.js"; declare const ACTIVITY_STORE: unique symbol; export declare const CONDUCTOR_ACTIVITIES: readonly ["idle", "working", "blocked", "done"]; export type ConductorActivity = (typeof CONDUCTOR_ACTIVITIES)[number]; export type ConductorHealth = "healthy" | "stalled" | "stopped"; export type ConductorHookEvent = "SessionStart" | "UserPromptSubmit" | "Stop" | "StopFailure" | "SessionEnd" | "NotificationWake" | "WatchdogFailure"; export type ConductorActivityPayload = Record & { conductor_session_id: string; launch_generation: number; pane_id: string; conductor_process: LinuxProcessIdentity; provider_version: ClaudeProviderVersion; health: ConductorHealth; last_hook_event: ConductorHookEvent; last_source_sha256: string; updated_at: string; }; export type ConductorActivityRecord = RuntimeRecord; export interface ObserveConductorActivityInput { readonly conductorSessionId: string; readonly launchGeneration: number; readonly paneId: string; readonly conductorProcess: LinuxProcessIdentity; readonly providerVersion: string; readonly hookEvent: ConductorHookEvent; readonly sourceSha256: string; readonly observedAt: string; } export interface ConductorActivityStore { readonly [ACTIVITY_STORE]: true; observe(input: ObserveConductorActivityInput): Readonly<{ status: "created" | "applied" | "replayed"; record: ConductorActivityRecord; }>; read(sessionId: string, launchGeneration: number): ConductorActivityRecord; readIfExists(sessionId: string, launchGeneration: number): ConductorActivityRecord | undefined; list(): readonly ConductorActivityRecord[]; } export declare function createConductorActivityStore(options: { recordsRoot: string; locksRoot: string; packageRoot: string; }): ConductorActivityStore; export declare function assertConductorActivityStore(value: unknown): asserts value is ConductorActivityStore; export {};