import type { ScheduleJob } from "../types.js"; export declare function launchdLabel(id: string): string; export declare function launchdPlistPath(id: string): string; export interface LaunchdSchedule { startInterval?: number; startCalendarInterval?: { Minute?: number; Hour?: number; Weekday?: number; }; } /** * Translate a simple 5-field cron to a launchd schedule. Returns null for * patterns launchd's StartCalendarInterval cannot cleanly express (lists, * ranges, multi-step) — the caller then falls back to crontab. */ export declare function cronToLaunchdInterval(cron: string): LaunchdSchedule | null; /** Generate the LaunchAgent plist XML. Deliberately omits KeepAlive (timer jobs must not auto-restart). */ export declare function generatePlist(job: ScheduleJob, sched: LaunchdSchedule, logsDir: string, stateRoot: string): string; export declare function installLaunchd(job: ScheduleJob, sched: LaunchdSchedule, logsDir: string, stateRoot: string): void; export declare function uninstallLaunchd(id: string): void; export declare function statusLaunchd(id: string): boolean;