import { ContainerIoC } from './container';
import { Injector } from './injector';
import { Module } from './module';
import { GraphInspector } from '../../inspector';
import { Logger, LoggerService } from '../../services';
export declare class InstanceLoader<TInjector extends Injector = Injector> {
    private readonly container;
    protected readonly injector: TInjector;
    protected readonly graphInspector: GraphInspector;
    private logger;
    constructor(container: ContainerIoC, injector: TInjector, graphInspector: GraphInspector, logger?: LoggerService);
    setLogger(logger: Logger): void;
    createInstancesOfDependencies(modules?: Map<string, Module>): Promise<void>;
    private createPrototypes;
    private createInstances;
    private createPrototypesOfProviders;
    private createInstancesOfProviders;
    private createPrototypesOfControllers;
    private createInstancesOfControllers;
    private createPrototypesOfInjectables;
    private createInstancesOfInjectables;
    private isModuleWhitelisted;
}
//# sourceMappingURL=instance-loader.d.ts.map