import { DummyAddonDependency } from '../accessory/base.js'; import { Timeout } from './timeout.js'; import { strings as i18n } from '../i18n/i18n.js'; import { TimeUnits } from '../model/enums.js'; import { ScheduleConfig } from '../model/types.js'; export declare class Schedule extends Timeout { private readonly config; private readonly strings; private readonly timeoutKey; private readonly callback; static new(dependency: DummyAddonDependency, config: ScheduleConfig | undefined, strings: typeof i18n.schedule, timeoutKey: string, callback: () => Promise): Schedule | undefined; private cronjob?; private timeoutExpiration?; private constructor(); setTimeout(rawTime: number, units: TimeUnits): void; startTimeout(force?: boolean): number | undefined; private get delay(); private getTimeoutDelay; private getSunDelay; private getSunEventDate; private startCron; private saveTimeoutExpiration; cancel(): void; teardown(): void; reset(): void; }