/** * Base Cleanup Scheduler * * Abstract base class for cleanup schedulers that provides common * lifecycle management (start/stop, schedule updates, timer handling). * Subclasses implement the specific cleanup logic. */ import { type Logger } from '../output/logger.js'; /** * Base schedule configuration */ export interface BaseCleanupSchedule { enabled: boolean; intervalHours: number; startDelayMinutes?: number; } /** * Abstract base class for cleanup schedulers */ export declare abstract class BaseCleanupScheduler { protected intervalId?: NodeJS.Timeout; protected isRunning: boolean; protected logger: Logger; protected schedule: TSchedule; protected readonly schedulerName: string; constructor(schedule: TSchedule, schedulerName: string); /** * Start the cleanup scheduler */ start(): void; /** * Stop the cleanup scheduler */ stop(): void; /** * Update cleanup schedule */ updateSchedule(schedule: Partial): void; /** * Get current cleanup schedule */ getSchedule(): TSchedule; /** * Check if scheduler is currently running */ isSchedulerRunning(): boolean; /** * Get next scheduled run time */ getNextRunTime(): Date | null; /** * Run cleanup - implemented by subclasses for their specific cleanup logic */ protected abstract runCleanup(): Promise; /** * Run cleanup immediately (manual trigger) */ abstract runNow(): Promise; } //# sourceMappingURL=base-cleanup-scheduler.d.ts.map