import type { ClassType } from '../types'; import type { Provider, Token } from './provider'; export interface ModuleDefinition { config?: ClassType; defaultConfig?: Partial; imports?: ModuleLike[]; exports?: Token[]; providers?: Provider[]; controllers?: ClassType[]; listeners?: ClassType[]; commands?: ClassType[]; } export type ModuleLike = ModuleDefinition | ClassType | ModuleInstance; export interface ModuleInstance { definition: ModuleDefinition; } export declare class AppModule { readonly definition: ModuleDefinition; constructor(definition?: ModuleDefinition); } export declare function createModule(definition: ModuleDefinition): AppModule; export declare function createModuleClass(definition: ModuleDefinition): { new (): { readonly definition: ModuleDefinition; }; readonly definition: ModuleDefinition; }; export declare function normalizeModule(moduleLike: ModuleLike): ModuleDefinition; //# sourceMappingURL=module.d.ts.map