import { type TmuxRunner } from "./live.js"; export type WatchdogRestartOutcome = "restarted" | "skipped_no_sibling" | "respawn_failed" | "resume_failed" | "claude_timeout"; export interface WatchdogRestartEntry { sessionName: string; target: string; siblingDir: string | null; outcome: WatchdogRestartOutcome; claudeStarted: boolean; warning: string | null; } export interface WatchdogRestartResult { requestedSession: string | null; crashedFound: number; restarted: number; skipped: number; entries: WatchdogRestartEntry[]; } export interface WatchdogRestartOptions { tmuxBin?: string; runner?: TmuxRunner; sleep?: (milliseconds: number) => Promise; warn?: (message: string) => void; shellReadyDelayMs?: number; claudeStartTimeoutMs?: number; pollIntervalMs?: number; } /** Restart every crashed pane belonging to one exact tmux session name. */ export declare function sessionsWatchdogRestart(sessionName: string, options?: WatchdogRestartOptions): Promise; /** Restart every crashed pane visible to the local tmux server. */ export declare function sessionsWatchdogRestartAll(options?: WatchdogRestartOptions): Promise; /** * Session launchers commonly number siblings (worker-01/worker-02 or * account010/account011). Removing only that run suffix avoids treating every * broadly named open-* session as a sibling. */ export declare function watchdogSessionPrefix(sessionName: string): string; export type WatchdogStatus = "dead" | "crashed"; export interface WatchdogPaneRecord { sessionName: string; windowName: string; windowIndex: string; paneIndex: string; command: string; cwd: string | null; paneDead: boolean; } export interface WatchdogCandidate { session_name: string; window_target: string; status: WatchdogStatus; sibling_dir: string | null; } export interface WatchdogScanOptions { tmuxBin?: string; runner?: TmuxRunner; } export declare function parseWatchdogPaneLine(line: string): WatchdogPaneRecord | null; export declare function scanWatchdogFromTmuxOutput(listOutput: string): WatchdogCandidate[]; export declare function scanWatchdogSessions(options?: WatchdogScanOptions): WatchdogCandidate[]; //# sourceMappingURL=watchdog.d.ts.map