import type { App } from '../../app'; import { ScopedLogger } from '../logger'; import { WorkerQueueRegistry } from './queue'; import { WorkerRecorderService } from './recorder'; import { type IJobOptions, type QueuedWorkerJob } from './types'; export interface WorkerExecutionResult { job: QueuedWorkerJob; result: O; } export declare class WorkerRunnerService { private readonly app; private readonly queueRegistry; private readonly recorder; private readonly logger; private running; private readonly timers; private readonly executing; private readonly bullWorkers; private readonly bullWorkerRedisLifecycleCleanup; private readonly recorderLeaders; private bullWorkerRedisMonitor?; constructor(app: App, queueRegistry: WorkerQueueRegistry, recorder: WorkerRecorderService, logger: ScopedLogger); start(): Promise; shutdown(): Promise; removeStaleBullMqCronJobs(): Promise; schedule(job: QueuedWorkerJob): void; drainReadyJobs(queue?: string): Promise; executeQueuedJob(job: QueuedWorkerJob, options?: IJobOptions): Promise>; private executeJob; private scheduleCronJobs; private rescheduleCronJob; private runScheduledJob; private resolveJob; private isRegisteredJob; private hasQueuedRepeatJob; private startBullMqWorkers; private startBullMqRecorders; private scheduleBullMqCronJobs; private executeBullMqJob; private findRegisteredJobClass; private getRegisteredQueueNames; private getRegisteredJobs; } //# sourceMappingURL=runner.d.ts.map