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 _snapshots; private _metadataReader; static merge(container1: interfaces.Container, container2: interfaces.Container): interfaces.Container; constructor(containerOptions?: interfaces.ContainerOptions); load(...modules: interfaces.ContainerModule[]): void; loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise; unload(...modules: interfaces.ContainerModule[]): void; bind(serviceIdentifier: interfaces.ServiceIdentifier): interfaces.BindingToSyntax; rebind(serviceIdentifier: interfaces.ServiceIdentifier): interfaces.BindingToSyntax; unbind(serviceIdentifier: interfaces.ServiceIdentifier): void; unbindAll(): void; isBound(serviceIdentifier: interfaces.ServiceIdentifier): boolean; isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean; isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: any): 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; getTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: any): T; getNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): T; getAll(serviceIdentifier: interfaces.ServiceIdentifier): T[]; getAllTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: any): T[]; getAllNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): T[]; resolve(constructorFunction: interfaces.Newable): T; private _getContainerModuleHelpersFactory(); private _get(avoidConstraints, isMultiInject, targetType, serviceIdentifier, key?, value?); private _planAndResolve(); } export { Container };