/** * Task Manager - CRUD operations for scheduled tasks and timing groups * Uses simple JSON file storage at ~/.ncp/scheduler/schedule.json */ import { ScheduledTask, TimingGroup } from '../../types/scheduler.js'; export declare class TaskManager { private scheduleFile; private initialized; private static STORAGE_VERSION; private customSchedulerDir?; constructor(customSchedulerDir?: string); /** * Initialize paths and directories on first use */ private ensureInitialized; /** * Load all tasks and timings from storage */ private loadStorage; /** * Save tasks and timings to storage */ private saveStorage; /** * Get or create a timing group for the given cron expression * Returns the timing ID */ getOrCreateTimingGroup(cronExpression: string, timezone?: string): string; /** * Get a timing group by ID */ getTimingGroup(timingId: string): TimingGroup | null; /** * Get all timing groups */ getAllTimingGroups(): TimingGroup[]; /** * Add a task to a timing group */ addTaskToTiming(taskId: string, timingId: string): void; /** * Remove a task from a timing group * If this was the last task, delete the timing group */ removeTaskFromTiming(taskId: string, timingId: string): boolean; /** * Get all tasks for a timing group */ getTasksForTiming(timingId: string): ScheduledTask[]; /** * Get all active tasks for a timing group */ getActiveTasksForTiming(timingId: string): ScheduledTask[]; /** * Create a new task */ createTask(task: ScheduledTask): void; /** * Get a task by ID */ getTask(taskId: string): ScheduledTask | null; /** * Get a task by name */ getTaskByName(name: string): ScheduledTask | null; /** * Get all tasks */ getAllTasks(): ScheduledTask[]; /** * Get tasks by status */ getTasksByStatus(status: ScheduledTask['status']): ScheduledTask[]; /** * Update a task */ updateTask(taskId: string, updates: Partial): void; /** * Delete a task */ deleteTask(taskId: string): boolean; /** * Increment execution count and update last execution metadata */ recordExecution(taskId: string, executionId: string, executionTime: string): void; /** * Mark a task as errored */ markTaskAsErrored(taskId: string, errorMessage: string): void; /** * Get task statistics */ getStatistics(): { totalTasks: number; activeTasks: number; pausedTasks: number; completedTasks: number; errorTasks: number; totalTimings: number; }; } //# sourceMappingURL=task-manager.d.ts.map