import { DynamicModule } from '../../interfaces'; import { DEFAULT_FACTORY_CLASS_METHOD_KEY, DEFAULT_METHOD_KEY } from '../constants'; import { ConfigurableModuleAsyncOptions } from './configurable-module-async-options.interface'; /** * Class that represents a blueprint/prototype for a configurable Nest module. * This class provides static methods for constructing dynamic modules. Their names * can be controlled through the "MethodKey" type argument. * * @publicApi */ export type ConfigurableModuleCls = { new (): any; } & Record<`${MethodKey}`, (options: ModuleOptions & Partial) => DynamicModule> & Record<`${MethodKey}Async`, (options: ConfigurableModuleAsyncOptions & Partial) => DynamicModule>;