import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common/interfaces'; import * as Bull from 'bullmq'; import { BullQueueProcessor } from '../bull.types'; export interface BullModuleOptions extends Bull.QueueOptions { name?: string; disableScheduler?: boolean; configKey?: string; processors?: BullQueueProcessor[]; defaultWorkerOptions?: Bull.WorkerOptions; } export interface BullOptionsFactory { createBullOptions(): Promise | BullModuleOptions; } export interface BullModuleAsyncOptions extends Pick { name?: string; configKey?: string; useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | BullModuleOptions; inject?: FactoryProvider['inject']; }