export interface JobExecutionContext { jobId: string; triggeredAt: Date; } export interface SchedulerJobDefinition { id: string; cronExpression: string; run: (context: JobExecutionContext) => Promise | void; timezone?: string; waitForCompletion?: boolean; } export interface SchedulerJobState { activeRunCount: number; totalRuns: number; skippedRuns: number; lastStartedAt: number | null; lastFinishedAt: number | null; lastError: string | null; } export declare class CronScheduler { private readonly jobs; private running; registerJob(definition: SchedulerJobDefinition): void; upsertJob(definition: SchedulerJobDefinition): void; removeJob(jobId: string): boolean; hasJob(jobId: string): boolean; getJobDefinition(jobId: string): SchedulerJobDefinition | null; getAllJobDefinitions(): SchedulerJobDefinition[]; private validateAndNormalizeDefinition; private createScheduledTask; getRegisteredJobIds(): string[]; getJobState(jobId: string): SchedulerJobState; isRunning(): boolean; start(): void; stop(): Promise; private executeJob; } //# sourceMappingURL=scheduler.d.ts.map