import { Job, WorkerListener, QueueEventsListener } from 'bullmq'; import { BullQueueAdvancedProcessor, BullQueueAdvancedSeparateProcessor } from './interfaces/bull.interfaces'; export declare type RequireOnlyOne = Pick> & { [K in Keys]-?: Required> & Partial, undefined>>; }[Keys]; export declare type BullQueueProcessor = BullQueueProcessorCallback | BullQueueAdvancedProcessor | BullQueueSeparateProcessor | BullQueueAdvancedSeparateProcessor; export declare type BullQueueProcessorCallback = (job: Job) => Promise; export declare type BullQueueSeparateProcessor = string; export declare type BullQueueEvent = keyof WorkerListener | keyof QueueEventsListener; export declare type BullQueueEventOptions = RequireOnlyOne<{ eventName: BullQueueEvent; name?: string; id?: string; }, 'id' | 'name'>; export declare type QueueEventDecoratorOptions = RequireOnlyOne<{ id?: string; name?: string; }, 'id' | 'name'>;