/** * The worker stamps a heartbeat file from a steady timer. The stamp proves only * that the event loop is turning — it is INTENTIONALLY independent of command * workload, so a long or quiet command never looks "stuck". The supervisor reads * this file and force-restarts the worker only when the stamp goes stale, which * means a genuinely wedged loop (no benign explanation) → zero false positives. */ /** Default heartbeat path. Prefers the systemd RuntimeDirectory (tmpfs). */ export declare function defaultHeartbeatPath(configDir?: string): string; /** Begin stamping `file` every `intervalMs`. Idempotent. */ export declare function startHeartbeat(file: string, intervalMs?: number): void; export declare function stopHeartbeat(): void; /** Read the last heartbeat epoch-ms, or null if missing/unreadable. */ export declare function readHeartbeat(file: string): number | null;