/**
 * Schedule Service
 *
 * Manages scheduled update checks, tracking check history,
 * and generating external scheduler commands.
 *
 * @since v1.24.0
 */
import { type ScheduleCheckRecord, type ScheduleCommand, type ScheduleConfig, type ScheduleState, type ScheduledCheckResult } from './schedule-types.js';
/**
 * Schedule service for managing update scheduling
 */
export declare class ScheduleService {
    private config;
    private state;
    private statePath;
    constructor(statePath: string, config?: Partial<ScheduleConfig>);
    /**
     * Load state from disk
     */
    load(): Promise<void>;
    /**
     * Save state to disk
     */
    save(): Promise<void>;
    /**
     * Check if a scheduled check is due
     */
    isDue(): boolean;
    /**
     * Check if currently in quiet hours
     */
    isQuietHours(): boolean;
    /**
     * Get the next scheduled check time
     */
    getNextScheduledTime(): Date;
    /**
     * Record a check
     */
    recordCheck(result: ScheduledCheckResult): Promise<void>;
    /**
     * Record a download
     */
    recordDownload(): Promise<void>;
    /**
     * Get check history
     */
    getHistory(): ScheduleCheckRecord[];
    /**
     * Get current state
     */
    getState(): ScheduleState;
    /**
     * Get current config
     */
    getConfig(): ScheduleConfig;
    /**
     * Update configuration
     */
    updateConfig(updates: Partial<ScheduleConfig>): void;
    /**
     * Generate cron expression for the schedule
     */
    generateCronExpression(): string;
    /**
     * Generate schedule commands for external schedulers
     */
    generateScheduleCommands(pluginatorPath: string): ScheduleCommand[];
    /**
     * Generate Windows Task Scheduler command
     */
    private generateWindowsTaskCommand;
    /**
     * Generate macOS launchd plist
     */
    private generateLaunchdPlist;
    /**
     * Clear history
     */
    clearHistory(): Promise<void>;
}
/**
 * Get the singleton schedule service instance
 */
export declare function getScheduleService(statePath?: string): ScheduleService;
/**
 * Reset the singleton (for testing)
 */
export declare function resetScheduleService(): void;
//# sourceMappingURL=schedule-service.d.ts.map