export type FirmwareStatus = 'Idle' | 'Downloading' | 'Downloaded' | 'Installing' | 'Installed' | 'DownloadFailed' | 'InstallationFailed'; export type FirmwareFailureStage = 'download' | 'install' | null; export type FirmwareSchedule = { downloadMs: number; installMs: number; }; export type FirmwareJob = { location: string; retrieveDate: Date; schedule?: Partial; failStage?: FirmwareFailureStage; version?: string; retries?: number; retryIntervalMs?: number; }; export type FirmwareManagerOptions = { schedule: FirmwareSchedule; onStatus: (status: Exclude) => Promise | void; onInstalled: (version: string) => void; onVersionResolve: (location: string) => string; }; export declare class FirmwareManager { private readonly options; private state; private busy; private timers; private schedule; constructor(options: FirmwareManagerOptions); getState(): FirmwareStatus; setSchedule(overrides: Partial): void; start(job: FirmwareJob): boolean; private scheduleTransition; private clearTimers; }