import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common'; import { WorkerOptions } from '@temporalio/worker'; export interface SharedWorkerConfigurationFactory { createSharedConfiguration(): Promise | WorkerOptions; } export interface SharedWorkerAsyncConfiguration extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: unknown[]) => Promise | WorkerOptions; useValue?: WorkerOptions; inject?: FactoryProvider['inject']; }