import { interfaces } from "../interfaces/interfaces"; declare class Container implements interfaces.Container { id: number; parent: interfaces.Container | null; readonly options: interfaces.ContainerOptions; private _middleware; private _bindingDictionary; private _activations; private _deactivations; private _snapshots; private _metadataReader; private _moduleActivationStore; static merge(container1: interfaces.Container, container2: interfaces.Container, ...containers: interfaces.Container[]): interfaces.Container; constructor(containerOptions?: interfaces.ContainerOptions); load(...modules: interfaces.ContainerModule[]): void; loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise; unload(...modules: interfaces.ContainerModuleBase[]): void; unloadAsync(...modules: interfaces.ContainerModuleBase[]): Promise; bind(serviceIdentifier: interfaces.ServiceIdentifier): interfaces.BindingToSyntax; rebind(serviceIdentifier: interfaces.ServiceIdentifier): interfaces.BindingToSyntax; rebindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise>; unbind(serviceIdentifier: interfaces.ServiceIdentifier): void; unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise; unbindAll(): void; unbindAllAsync(): Promise; onActivation(serviceIdentifier: interfaces.ServiceIdentifier, onActivation: interfaces.BindingActivation): void; onDeactivation(serviceIdentifier: interfaces.ServiceIdentifier, onDeactivation: interfaces.BindingDeactivation): void; isBound(serviceIdentifier: interfaces.ServiceIdentifier): boolean; isCurrentBound(serviceIdentifier: interfaces.ServiceIdentifier): boolean; isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean; isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): boolean; snapshot(): void; restore(): void; createChild(containerOptions?: interfaces.ContainerOptions): Container; applyMiddleware(...middlewares: interfaces.Middleware[]): void; applyCustomMetadataReader(metadataReader: interfaces.MetadataReader): void; get(serviceIdentifier: interfaces.ServiceIdentifier): T; getAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise; getTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): T; getTaggedAsync(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): Promise; getNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): T; getNamedAsync(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): Promise; getAll(serviceIdentifier: interfaces.ServiceIdentifier): T[]; getAllAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise; getAllTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): T[]; getAllTaggedAsync(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): Promise; getAllNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): T[]; getAllNamedAsync(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): Promise; resolve(constructorFunction: interfaces.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; } export { Container };