import { InjectableScope } from "../../enums/injectable-scope.enum.mjs"; import { InjectableType } from "../../enums/injectable-type.enum.mjs"; import { InstanceHolder } from "./instance-holder.mjs"; import { HolderGetResult, IHolderStorage } from "./holder-storage.interface.mjs"; //#region src/internal/holder/unified-storage.d.mts /** * Unified storage implementation that works the same way regardless of scope. * Replaces RequestContext, HolderManager, SingletonStorage, RequestStorage. * * Scope is just metadata - storage operations are identical for all scopes. * Different storage instances are just isolated storage spaces. */ declare class UnifiedStorage implements IHolderStorage { readonly scope: InjectableScope; private readonly holders; /** * Reverse dependency index: maps a dependency name to the set of holder names that depend on it. * This allows O(1) lookup of dependents instead of O(n) iteration. */ private readonly dependents; constructor(scope?: InjectableScope); get(instanceName: string): HolderGetResult; set(instanceName: string, holder: InstanceHolder): void; delete(instanceName: string): boolean; createHolder(instanceName: string, type: InjectableType, deps: Set): [ReturnType>, InstanceHolder]; storeInstance(instanceName: string, instance: unknown): void; handles(scope: InjectableScope): boolean; getAllNames(): string[]; forEach(callback: (name: string, holder: InstanceHolder) => void): void; findByInstance(instance: unknown): InstanceHolder | null; findDependents(instanceName: string): string[]; /** * Updates dependency references when instance names change. * Used during scope upgrades when instance names are regenerated with requestId. * * @param oldName The old instance name * @param newName The new instance name */ updateDependencyReference(oldName: string, newName: string): void; /** * Registers a holder's dependencies in the reverse index. */ private registerDependencies; /** * Removes a holder from the reverse dependency index. */ private removeFromDependentsIndex; } //#endregion export { UnifiedStorage }; //# sourceMappingURL=unified-storage.d.mts.map