/**
 * Schedule Types
 *
 * Type definitions for the update scheduling system.
 *
 * @since v1.24.0
 */
/**
 * Schedule interval type
 */
export type ScheduleInterval = 'hourly' | 'daily' | 'weekly' | 'custom';
/**
 * Schedule configuration
 */
export interface ScheduleConfig {
    /** Whether scheduling is enabled */
    enabled: boolean;
    /** Check interval */
    checkInterval: ScheduleInterval;
    /** Custom cron expression (when interval is 'custom') */
    cronExpression?: string;
    /** Automatically download updates */
    downloadAutomatically: boolean;
    /** Only notify, don't download */
    notifyOnly: boolean;
    /** Quiet hours start (0-23, e.g., 22 for 10pm) */
    quietHoursStart?: number;
    /** Quiet hours end (0-23, e.g., 6 for 6am) */
    quietHoursEnd?: number;
}
/**
 * Schedule state (persisted)
 */
export interface ScheduleState {
    /** Last check timestamp */
    lastCheck: string | null;
    /** Last download timestamp */
    lastDownload: string | null;
    /** Next scheduled check */
    nextScheduledCheck: string | null;
    /** Check history */
    checkHistory: ScheduleCheckRecord[];
}
/**
 * Record of a scheduled check
 */
export interface ScheduleCheckRecord {
    /** Check timestamp */
    timestamp: string;
    /** Number of updates found */
    updatesFound: number;
    /** Whether check was successful */
    success: boolean;
    /** Error message if failed */
    error?: string;
}
/**
 * Result of a scheduled check
 */
export interface ScheduledCheckResult {
    /** Check timestamp */
    timestamp: string;
    /** Number of updates available */
    updatesAvailable: number;
    /** Plugin update details */
    plugins: ScheduledPluginUpdate[];
    /** Errors encountered */
    errors: string[];
}
/**
 * Plugin update info for scheduled checks
 */
export interface ScheduledPluginUpdate {
    /** Plugin name */
    name: string;
    /** Current version */
    currentVersion: string;
    /** Latest available version */
    latestVersion: string;
    /** Plugin source type */
    source: string;
}
/**
 * Schedule command for external schedulers
 */
export interface ScheduleCommand {
    /** Platform identifier */
    platform: 'cron' | 'windows' | 'launchd';
    /** Command to run */
    command: string;
    /** Human-readable instructions */
    instructions: string;
}
/**
 * Default schedule configuration
 */
export declare const DEFAULT_SCHEDULE_CONFIG: ScheduleConfig;
/**
 * Interval durations in milliseconds
 */
export declare const INTERVAL_MS: Record<Exclude<ScheduleInterval, 'custom'>, number>;
//# sourceMappingURL=schedule-types.d.ts.map