import { DefaultConfig, ParserConfig, SchemaConfig } from '../../common/types';
import VersionInfo from '../models/versionInfo';
import { StorageAggregator } from '../moduleStorages/moduleStorage';
import GlobalConfigService from '../services/globalConfigService';
import { NotificationService } from '../services/notificationService';
import { RegistryAggregatorService } from '../services/registryAggregatorService';
export default class ModuleManagerService {
    private _globalConfigService;
    private _notificationService;
    private _storage;
    private _registryAggregatorService;
    constructor(_globalConfigService: GlobalConfigService, _notificationService: NotificationService, _storage: StorageAggregator, _registryAggregatorService: RegistryAggregatorService);
    resolveDependencies(modules: {
        name: string;
        version?: string;
        branch?: string;
        contextIds: string[];
    }[]): Promise<{
        name: string;
        branch: string;
        version: string;
        contextIds: string[];
        manifest: VersionInfo;
    }[]>;
    private _loadScriptOrConfig;
    private _loadJson;
    private _loadDist;
    loadModule(m: VersionInfo): Promise<{
        scriptOrConfig: string | ParserConfig;
        defaultConfig: DefaultConfig;
        schemaConfig: SchemaConfig;
        internalManifest: any;
    }>;
    private _getOptimizedChildDependenciesAndManifest;
    private _getChildDependenciesAndManifest;
    optimizeDependency(name: string, version: string, branch: string, contextIds: string[]): Promise<{
        name: string;
        version: string;
        branch: string;
    }>;
    private _findImplementation;
    private _deepReplaceByKey;
}
