import { Injector } from '#di'; import { SystemLogMediator } from '#logger/system-log-mediator.js'; import { NormalizedModuleMetadata } from './types/normalized-module-metadata.js'; import { AppOptions } from './types/app-options.js'; import { ExtensionsContext } from './services/extensions-context.js'; import { ExtensionsManager } from './services/extensions-manager.js'; import { ModuleManager } from './services/module-manager.js'; import { PerAppService } from './services/per-app.service.js'; import { PreRouter } from './services/pre-router.js'; import { MetadataPerMod1 } from './types/metadata-per-mod.js'; import { ModuleType, Provider } from './types/mix.js'; import { ModuleWithParams } from './types/module-metadata.js'; import { ExtensionCounters } from '#types/extension-types.js'; import { RequestListener } from './types/server-options.js'; import { NodeServer } from '#types/server-options.js'; export declare class AppInitializer { protected appOptions: AppOptions; protected moduleManager: ModuleManager; systemLogMediator: SystemLogMediator; protected perAppService: PerAppService; protected preRouter: PreRouter; protected meta: NormalizedModuleMetadata; protected unfinishedScanModules: Set; protected server: NodeServer; constructor(appOptions: AppOptions, moduleManager: ModuleManager, systemLogMediator: SystemLogMediator); /** * _Note:_ after call this method, you need call `this.systemLogMediator.flush()`. */ bootstrapProvidersPerApp(): void; protected setServer(server: NodeServer): void; /** * 1. checks collisions for non-root exported providers per app; * 2. merges these providers with providers that declared on the root module; * 3. merges resolved providers per app. */ protected prepareProvidersPerApp(): void; /** * Recursively collects per app providers from non-root modules. */ protected collectProvidersPerApp(meta1: NormalizedModuleMetadata): Provider[]; protected findModulesCausedCollisions(collisions: any[]): string[]; protected getResolvedCollisionsPerApp(): Provider[]; bootstrapModulesAndExtensions(): Promise>; reinit(autocommit?: boolean): Promise; protected handleReinitError(err: unknown): Promise; protected addDefaultProvidersPerApp(): void; /** * Creates injector per the application and sets log. */ protected createInjectorAndSetLogMediator(): void; protected bootstrapModuleFactory(moduleManager: ModuleManager): Map; protected handleExtensions(aMetadataPerMod1: MetadataPerMod1[], extensionCounters: ExtensionCounters): Promise; protected getInjectorForExtensions(metadataPerMod1: MetadataPerMod1, extensionCounters: ExtensionCounters, extensionsContext: ExtensionsContext, injectorPerMod: Injector): Injector; protected handleExtensionsPerMod(metadataPerMod1: MetadataPerMod1, extensionsManager: ExtensionsManager): Promise; /** * This method is needed to be able to forcibly change the metadata (for example, during testing). * * See `TestAppInitializer` in `@ditsmod/testing` for more info. */ protected prepareMetadataPerMod1(metadataPerMod1: MetadataPerMod1): MetadataPerMod1; protected decreaseExtensionsCounters(extensionCounters: ExtensionCounters, providers: Provider[]): void; protected logExtensionsStatistic(injectorPerApp: Injector, systemLogMediator: SystemLogMediator): void; requestListener: RequestListener; } //# sourceMappingURL=app-initializer.d.ts.map