import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common/interfaces'; import * as Bull from 'bullmq'; export interface SharedBullConfigurationFactory { createSharedConfiguration(): Promise | Bull.QueueOptions; } export interface SharedBullAsyncConfiguration extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | Bull.QueueOptions; inject?: FactoryProvider['inject']; }