import { createBullBoard } from '@bull-board/api'; import type { BoardOptions, IServerAdapter, QueueAdapterOptions } from '@bull-board/api/typings/app'; import type { BaseAdapter } from '@bull-board/api/baseAdapter'; import type { InjectionToken, ModuleMetadata, OptionalFactoryDependency } from '@nestjs/common'; export type BullBoardInstance = ReturnType; export type BullBoardModuleOptions = { route: string; adapter: { new (): BullBoardServerAdapter; }; boardOptions?: BoardOptions; middleware?: any; }; export type BullBoardModuleAsyncOptions = { useFactory: (...args: any[]) => BullBoardModuleOptions | Promise; imports?: ModuleMetadata['imports']; inject?: Array; }; export type BullBoardQueueOptions = { name: string; adapter: { new (queue: any, options?: Partial): BaseAdapter; }; options?: Partial; }; export type BullBoardServerAdapter = IServerAdapter & { setBasePath(path: string): any; }; export type BullBoardFastifyAdapter = BullBoardServerAdapter & { registerPlugin(): any; }; export type BullBoardExpressAdapter = BullBoardServerAdapter & { getRouter(): any; };