import { Class, BeforeToken, Injector } from '#di'; import { SystemLogMediator } from '#logger/system-log-mediator.js'; import { ExtensionsGroupToken, Extension, TotalInitMeta, ExtensionCounters, TotalInitMeta2 } from '#types/extension-types.js'; import { Counter } from './counter.js'; import { ExtensionsContext } from './extensions-context.js'; export declare class ExtensionsManager { protected injector: Injector; protected systemLogMediator: SystemLogMediator; protected counter: Counter; protected extensionsContext: ExtensionsContext; protected extensionCounters: ExtensionCounters; /** * Settings by AppInitializer. */ moduleName: string; /** * Settings by AppInitializer. */ beforeTokens: Set>; protected unfinishedInit: Set | ExtensionsGroupToken>; /** * The cache for the current module. */ protected cache: Map>; protected excludedExtensionPendingList: Map>>>; constructor(injector: Injector, systemLogMediator: SystemLogMediator, counter: Counter, extensionsContext: ExtensionsContext, extensionCounters: ExtensionCounters); init(groupToken: ExtensionsGroupToken, perApp?: false): Promise>; init(groupToken: ExtensionsGroupToken, perApp: true): Promise>; updateExtensionPendingList(): void; protected prepareTotalInitMetaPerApp(totalInitMeta: TotalInitMeta2, perApp?: boolean): TotalInitMeta; /** * Adds to the pending list of extensions that want to receive the initialization * result of `groupToken` from the whole application. */ protected addExtensionToPendingList(groupToken: ExtensionsGroupToken): void; protected excludeExtensionFromPendingList(groupToken: ExtensionsGroupToken): void; protected prepareAndInitGroup(groupToken: ExtensionsGroupToken): Promise>; protected setTotalInitMetaPerApp(groupToken: ExtensionsGroupToken, totalInitMeta: TotalInitMeta): void; protected initGroup(groupToken: ExtensionsGroupToken): Promise; protected updateGroupCounters(groupToken: ExtensionsGroupToken, totalInitMeta: TotalInitMeta): void; protected throwCircularDeps(item: Extension | ExtensionsGroupToken): void; protected getItemName(tokenOrExtension: Extension | ExtensionsGroupToken): string; } //# sourceMappingURL=extensions-manager.d.ts.map