import { type ICronOptions, type IScheduledJob, type CronExpression, type ITimeoutOptions, type ISchedulerConfig, type IIntervalOptions, type IJobFilterOptions, type ISchedulerMetrics, type IJobExecutionResult, type IJobExecutionContext } from './scheduler.interfaces.js'; import type { SchedulerRegistry } from './scheduler.registry.js'; import type { SchedulerExecutor } from './scheduler.executor.js'; import type { SchedulerDiscovery } from './scheduler.discovery.js'; import type { SchedulerMetricsService } from './scheduler.metrics.js'; import type { SchedulerPersistence } from './scheduler.persistence.js'; import type { ILifecycle } from '@omnitron-dev/titan/types'; export declare class SchedulerService implements ILifecycle { private readonly registry; private readonly executor; private readonly config?; private readonly persistence?; private readonly metrics?; private readonly discovery?; private isStarted; private intervalHandles; private timeoutHandles; private cronJobs; constructor(registry: SchedulerRegistry, executor: SchedulerExecutor, config?: ISchedulerConfig | undefined, persistence?: SchedulerPersistence | undefined, metrics?: SchedulerMetricsService | undefined, discovery?: SchedulerDiscovery | undefined); onInit(): Promise; onStart(): Promise; onStop(): Promise; private scheduleJob; private scheduleCronJob; private scheduleIntervalJob; private scheduleTimeoutJob; private executeJob; private updateNextExecution; addCronJob(name: string, expression: CronExpression, handler: (context: IJobExecutionContext) => void | Promise, options?: ICronOptions): IScheduledJob; addInterval(name: string, milliseconds: number, handler: (context: IJobExecutionContext) => void | Promise, options?: IIntervalOptions): IScheduledJob; addTimeout(name: string, milliseconds: number, handler: (context: IJobExecutionContext) => void | Promise, options?: ITimeoutOptions): IScheduledJob; deleteJob(name: string): boolean; stopJob(name: string): void; startJob(name: string): void; getAllJobs(): IScheduledJob[]; getJob(name: string): IScheduledJob | undefined; findJobs(filter: IJobFilterOptions): IScheduledJob[]; getMetrics(): ISchedulerMetrics | null; private waitForJobsCompletion; onDestroy(): Promise; isRunning(): boolean; triggerJob(name: string): Promise; } //# sourceMappingURL=scheduler.service.d.ts.map