import type { AutomationJob } from './jobs.js'; import type { AutomationRun } from './runs.js'; /** * Records a scheduled occurrence that never fired as a first-class `missed` run. * * A missed run is not a failure of execution, it is a run that never started * because the automation host was down or asleep when its planned time passed * the catch-up window. It is captured as a durable run record so it surfaces in * run history and flows the same delivery path as a failure, rather than being * silently swallowed by recomputing the next occurrence. */ export interface AutomationMissedRunContext { readonly runs: Map; readonly saveRuns: () => Promise; readonly syncRunToRuntime: (run: AutomationRun, source: string) => void; readonly deliverFailureNotice: (job: AutomationJob, run: AutomationRun) => void; readonly pruneRunHistory: (jobId?: string) => void; } /** * An honest, observable description of why a run was missed. The scheduler * cannot positively distinguish a stopped daemon from a sleeping host, so the * reason states the fact it can vouch for, the host was not running the job at * its planned time, and how far past due the occurrence is. */ export declare function describeMissedRunReason(plannedRunAt: number, now: number): string; export declare function recordAutomationMissedRun(context: AutomationMissedRunContext, job: AutomationJob, plannedRunAt: number): AutomationRun; //# sourceMappingURL=manager-runtime-missed.d.ts.map