import Consumer from '../consumer';
import { BitIds, BitId } from '../../bit-id';
import Component from './consumer-component';
import { InvalidComponent } from '../component/consumer-component';
import { ModelComponent } from '../../scope/models';
export default class ComponentLoader {
    _componentsCache: {
        [idStr: string]: Component;
    };
    _componentsCacheForCapsule: Record<string, any>;
    consumer: Consumer;
    cacheResolvedDependencies: Record<string, any>;
    cacheProjectAst: Record<string, any> | undefined;
    constructor(consumer: Consumer);
    loadForCapsule(id: BitId): Promise<Component>;
    loadMany(ids: BitIds, throwOnFailure?: boolean): Promise<{
        components: Component[];
        invalidComponents: InvalidComponent[];
    }>;
    loadOne(id: BitId, throwOnFailure: boolean, invalidComponents: InvalidComponent[]): Promise<Component | null>;
    _handleOutOfSyncScenarios(component: Component): Promise<void>;
    _throwPendingImportIfNeeded(currentId: BitId): Promise<void>;
    _getRemoteComponent(id: BitId): Promise<ModelComponent | null | undefined>;
    clearComponentsCache(): void;
    _isAngularProject(): boolean;
    static getInstance(consumer: Consumer): ComponentLoader;
}
