import type { ServiceList, Constructor } from "../Container/Items/Service"; import type { interfaces } from "inversify"; /** * Module configuration interface. */ export interface ModuleConfig { /** Command handler constructors */ commands?: Constructor[]; /** Query handler constructors */ queries?: Constructor[]; /** Service definitions - can be Map or object literal */ services: ServiceList; /** Nested module contexts */ modules?: ModuleContext[]; } export default class ModuleContext { readonly modules: ModuleContext[]; readonly config: ModuleConfig; private readonly normalizedServices; constructor(config: ModuleConfig); load(container: interfaces.Container): Promise; addFirstModuleContext(module: ModuleContext): void; private mergeModuleDependenciesConfig; private getServices; private static bindHandlers; }