/** * Agent Scheduler - Cron-like scheduling for agent tasks */ export interface ScheduleConfig { id?: string; name: string; cron?: string; interval?: number; task: () => Promise; enabled?: boolean; maxRuns?: number; onComplete?: (result: any) => void; onError?: (error: Error) => void; } export interface ScheduledTask { id: string; name: string; cron?: string; interval?: number; enabled: boolean; lastRun?: Date; nextRun?: Date; runCount: number; maxRuns?: number; status: 'idle' | 'running' | 'completed' | 'error'; lastError?: string; } export interface SchedulerStats { totalTasks: number; activeTasks: number; totalRuns: number; errors: number; } /** * Scheduler class */ export declare class Scheduler { private tasks; private running; private stats; /** * Add a scheduled task */ add(config: ScheduleConfig): string; /** * Remove a task */ remove(id: string): boolean; /** * Enable a task */ enable(id: string): boolean; /** * Disable a task */ disable(id: string): boolean; /** * Start the scheduler */ start(): void; /** * Stop the scheduler */ stop(): void; /** * Schedule a task's next run */ private scheduleTask; /** * Run a task */ private runTask; /** * Run a task immediately */ runNow(id: string): Promise; /** * Get task info */ getTask(id: string): ScheduledTask | undefined; /** * Get all tasks */ getAllTasks(): ScheduledTask[]; /** * Get scheduler stats */ getStats(): SchedulerStats; /** * Check if scheduler is running */ isRunning(): boolean; } /** * Create a scheduler instance */ export declare function createScheduler(): Scheduler; /** * Helper to create common cron expressions */ export declare const cronExpressions: { everyMinute: string; every5Minutes: string; every15Minutes: string; everyHour: string; everyDay: string; everyWeek: string; everyMonth: string; weekdays: string; weekends: string; };