import { BaseDatabase } from '../../database'; import { WorkerQueueRegistry } from './queue'; import type { QueuedWorkerJob, WorkerJobRecord } from './types'; /** * Records terminal worker jobs. For BullMQ queues, a leader-owned QueueEvents observer writes * the durable record before removing the terminal job from Redis. */ export declare class WorkerRecorderService { private readonly db?; private readonly records; private readonly observers; private readonly terminalJobTasks; private tableReady?; private readonly logger; constructor(db?: BaseDatabase | undefined); getRecords(): WorkerJobRecord[]; ensureTableExists(): Promise; start(queueName: string, queueRegistry: WorkerQueueRegistry): Promise; stop(queueName?: string): Promise; recordCompleted(job: QueuedWorkerJob, result: unknown, options?: { recordToDatabase?: boolean; }): Promise; recordFailed(job: QueuedWorkerJob, result: unknown, options?: { recordToDatabase?: boolean; }): Promise; private createOrUpdateTable; private drainTerminalBullMqJobs; private queueTerminalBullMqJob; private recordTerminalBullMqJob; private shouldRecordBullMqJob; private toQueuedWorkerJob; private record; private insertRecord; } //# sourceMappingURL=recorder.d.ts.map