import type { Context, MessageContext } from "@/types"; import type { CronTasksRepository } from "../../../storage/cronTasksRepository.js"; import type { CronTaskDbRecord } from "../../../storage/databaseTypes.js"; import type { ConfigModule } from "../../config/configModule.js"; import type { CronTaskContext, CronTaskDefinition } from "../cronTypes.js"; export type CronSchedulerOptions = { config: ConfigModule; repository: CronTasksRepository; onTask: (context: CronTaskContext, messageContext: MessageContext) => void | Promise; onError?: (error: unknown, taskId: string) => void | Promise; onTaskComplete?: (task: CronTaskDbRecord, runAt: Date) => void | Promise; }; /** * Schedules and executes cron tasks based on their cron expressions. */ export declare class CronScheduler { private config; private repository; private tasks; private started; private stopped; private onTask; private onError?; private onTaskComplete?; private tickTimer; private runningTasks; constructor(options: CronSchedulerOptions); start(): Promise; stop(): void; reload(): Promise; listTasks(): CronTaskDbRecord[]; addTask(ctx: Context, definition: Omit & { id?: string; }): Promise; deleteTask(ctx: Context, taskId: string): Promise; loadTask(taskId: string): Promise; getTaskContext(taskId: string): CronTaskContext | null; private generateTaskIdFromName; private scheduleTask; private executeTask; private executeTaskUnlocked; private reportError; private runTick; private runTickUnlocked; private scheduleNextTick; } //# sourceMappingURL=cronScheduler.d.ts.map