import type Database from 'better-sqlite3'; import type { IReflexionWorker } from '../../../shared/interfaces/reflexion-worker.interface.js'; import type { BatchJobConfig } from '../batch-scheduler-types.js'; import type { HealthChecker } from '../health-checker.js'; import type { JobQueue } from '../job-queue.js'; import type { PerformanceMonitor } from '../../../domains/monitoring/services/performance-monitor.js'; import type { BatchSchedulerLogMethod } from '../handlers/batch-scheduler-run-context.js'; import type { BatchSchedulerRecurringContextSource } from './batch-scheduler-context.js'; export interface BatchSchedulerStartDeps { config: BatchJobConfig; jobQueue: JobQueue; healthChecker: HealthChecker; performanceMonitor: PerformanceMonitor; log: BatchSchedulerLogMethod; writeDiagnosticsEvent: (event: Record) => Promise; getRecurringContextSource: () => BatchSchedulerRecurringContextSource; startJobProcessor: () => void; setState: (state: { db: Database.Database; isRunning: boolean; startTime: Date; reflexionWorker?: IReflexionWorker; }) => void; } export declare function startBatchScheduler(deps: BatchSchedulerStartDeps, db: Database.Database, reflexionWorker?: IReflexionWorker): Promise; export interface BatchSchedulerStopDeps { intervals: Map>; jobQueue: JobQueue; startTime: Date | null; log: BatchSchedulerLogMethod; writeDiagnosticsEvent: (event: Record) => Promise; waitForRunningJobs: () => Promise; clearJobProcessorInterval: () => void; setIsRunning: (isRunning: boolean) => void; } export declare function stopBatchScheduler(deps: BatchSchedulerStopDeps): Promise; //# sourceMappingURL=batch-scheduler-lifecycle.d.ts.map