import { OnDestroy, OnInit } from "./lifecycle.js"; import { Token } from "./tokens.js"; import { AnyProvider, ResolveOptions, ContainerOptions, RegistrationOptions, Container as IContainer } from "./types.js"; export declare class Container implements IContainer { private parent; private providers; private singletons; private requestScoped; private destroyables; private autoRegisterInjectable; private strictMode; private enableCircularDetection; constructor(options?: ContainerOptions); register(providers: AnyProvider | AnyProvider[], options?: RegistrationOptions): void; registerSingleton(token: Token, factory: () => T | Promise): void; registerTransient(token: Token, factory: () => T | Promise): void; registerRequest(token: Token, factory: () => T | Promise): void; createChild(options?: ContainerOptions): Container; get(token: Token, options?: ResolveOptions): Promise; getAll(token: Token, options?: ResolveOptions): Promise; has(token: Token): boolean; onInit(instance: OnInit): void; onDestroy(instance: OnDestroy): void; destroyAll(): Promise; dispose(): Promise; /** * Get container statistics */ getStats(): any; /** * Validate the container configuration */ validate(): any; private addProvider; private validateProvider; private findProviderRecord; private collectProviderRecords; private resolveSingleton; private resolveRequestScoped; private instantiate; private instantiateClass; private instantiateFactory; private injectProperties; private runValidators; private runHooks; } //# sourceMappingURL=container.d.ts.map