import type { ManagedSessionRow } from "../../db/repositories/managed-sessions.repository"; /** Only a recent restart is eligible for unattended recovery. */ export declare const AUTO_RESUME_WINDOW_MS: number; /** Hard ceiling for unattended agent starts during one boot. */ export declare const AUTO_RESUME_MAX = 5; /** At most two provider processes may be starting at once. */ export declare const AUTO_RESUME_CONCURRENCY = 2; /** Keep successive starts from landing on the host in the same instant. */ export declare const AUTO_RESUME_STAGGER_MS = 500; export type AutoResumeSkipReason = "not_shutdown" | "not_interrupted" | "too_old" | "project_missing" | "resume_identity_missing" | "history_missing"; export interface AutoResumeOptions { now: number; projectExists: (projectPath: string) => boolean; historyExists: (row: ManagedSessionRow) => boolean; } /** Why a persisted row must remain a user-driven resume, or null when eligible. */ export declare function autoResumeSkipReason(row: ManagedSessionRow, opts: AutoResumeOptions): AutoResumeSkipReason | null; export interface AutoResumePlan { attempts: ManagedSessionRow[]; skipped: Array<{ row: ManagedSessionRow; reason: AutoResumeSkipReason; }>; overflow: ManagedSessionRow[]; } /** Preserve repository order while applying eligibility and the per-boot ceiling. */ export declare function planAutoResume(rows: ManagedSessionRow[], opts: AutoResumeOptions): AutoResumePlan; //# sourceMappingURL=autoResumeOnBoot.d.ts.map