import { Module } from './Module'; import { InjectorMetaData, ResolveBinder } from './Binder'; export interface Newable { new (...args: any[]): T; } export declare type Identifier = Newable | symbol; export declare const INJECTION_MAP: unique symbol; export declare const CONTAINER_INSTANCE_PROP: unique symbol; export interface Snapshot { bindings: Map, InjectorMetaData>; staticInjections: Map; } export declare class Container { private bindings; private staticInjections; private _bind; constructor(...modules: Array); get(identifier: Identifier): Promise; bind(identifier: Identifier): ResolveBinder; unbind(identifier: Identifier): void; isBound(identifier: Identifier): boolean; snapshot(): Snapshot; restore(snapshot: Snapshot): void; private resolve; private resolveClass; }