import { ContainerInterface, ContainerOptions, ContainerModuleInterface, AsyncContainerModuleInterface, ServiceIdentifier, BindingToSyntax as BindingToSyntaxInterface, Middleware, Newable, BindingActivation, BindingDeactivation } from '../interfaces/interfaces'; import { MetadataReader } from '../planning/metadata_reader'; import { BindingToSyntax } from '../syntax/binding_to_syntax'; export declare class Container implements ContainerInterface { id: number; parent: ContainerInterface | null; readonly options: ContainerOptions; private _middleware; private _bindingDictionary; private _activations; private _deactivations; private _snapshots; private _metadataReader; private _moduleActivationStore; static merge(container1: ContainerInterface, container2: ContainerInterface, ...containers: ContainerInterface[]): ContainerInterface; constructor(containerOptions?: ContainerOptions); load(...modules: ContainerModuleInterface[]): void; loadAsync(...modules: AsyncContainerModuleInterface[]): Promise; unload(...modules: ContainerModuleInterface[]): void; bind(serviceIdentifier: ServiceIdentifier): BindingToSyntaxInterface; rebind(serviceIdentifier: ServiceIdentifier): BindingToSyntaxInterface; rebindAsync(serviceIdentifier: ServiceIdentifier): Promise>; unbind(serviceIdentifier: ServiceIdentifier): void; unbindAsync(serviceIdentifier: ServiceIdentifier): Promise; unbindAll(): void; unbindAllAsync(): Promise; onActivation(serviceIdentifier: ServiceIdentifier, onActivation: BindingActivation): void; onDeactivation(serviceIdentifier: ServiceIdentifier, onDeactivation: BindingDeactivation): void; isBound(serviceIdentifier: ServiceIdentifier): boolean; isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean; isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: any): boolean; snapshot(): void; restore(): void; createChild(containerOptions?: ContainerOptions): Container; applyMiddleware(...middlewares: Middleware[]): void; applyCustomMetadataReader(metadataReader: MetadataReader): void; get(serviceIdentifier: ServiceIdentifier): T; getAsync(serviceIdentifier: ServiceIdentifier): Promise; getTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: any): T; getTaggedAsync(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): Promise; getNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): T; getNamedAsync(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): Promise; getAll(serviceIdentifier: ServiceIdentifier): T[]; getAllAsync(serviceIdentifier: ServiceIdentifier): Promise; getAllTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: any): T[]; getAllTaggedAsync(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): Promise; getAllNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): T[]; getAllNamedAsync(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): Promise; resolve(constructorFunction: Newable): T; private _preDestroy; private _removeModuleHandlers; private _removeModuleBindings; private _deactivate; private _handleDeactivationError; private _deactivateContainer; private _deactivateContainerAsync; private _getContainerModuleHelpersFactory; private _getAll; private _get; private _getButThrowIfAsync; private _getAllArgs; private _getNotAllArgs; private _planAndResolve; private _deactivateIfSingleton; private _deactivateSingletons; private _deactivateSingletonsAsync; private _propagateContainerDeactivationThenBindingAndPreDestroy; private _propagateContainerDeactivationThenBindingAndPreDestroyAsync; private _removeServiceFromDictionary; private _bindingDeactivationAndPreDestroy; private _bindingDeactivationAndPreDestroyAsync; }