import { type ClassType } from '../types'; import { Provider, Token } from './provider'; import { ModuleDefinition } from './module'; export interface RequestContext { instances: Map; } export declare class Container { private modules; private rootProviders; private exportedProviders; private singletons; constructor(root: ModuleDefinition); createRequestContext(): RequestContext; get(token: Token, context?: RequestContext): T; has(token: Token, requestingModuleId?: number): boolean; resolve(token: Token, requestingModuleId?: number, context?: RequestContext, chain?: Token[], singletonInChain?: boolean, injectionTarget?: ClassType): T; listProviders(): Token[]; listExports(): Token[]; listRegisteredProviders(): { token: Token; provider: Provider; moduleId: number; exported: boolean; }[]; private compile; private compileImportedModule; private addModule; private addImportedExports; private registerProvider; private registerRootProvider; private registerExport; private findRegisteredProvider; private instantiate; private instantiateClass; private getConstructorDependencies; } export declare function createContainer(definition: ModuleDefinition): Container; //# sourceMappingURL=container.d.ts.map