import RemovedObjects from '../removed-components';
import { BitId, BitIds } from '../../bit-id';
import { ModelComponent } from '../models';
import { Symlink } from '../models';
import ConsumerComponent from '../../consumer/component';
import Scope from '../scope';
import Consumer from '../../consumer/consumer';
export default class RemoveModelComponents {
    scope: Scope;
    bitIds: BitIds;
    force: boolean;
    removeSameOrigin: boolean;
    consumer: Consumer | null | undefined;
    constructor(scope: Scope, bitIds: BitIds, force: boolean, removeSameOrigin: boolean, consumer?: Consumer);
    remove(): Promise<RemovedObjects>;
    _removeSingle(bitId: BitId): Promise<{
        bitId: BitId;
        removedDependencies: BitIds;
    }>;
    _removeComponentsDependencies(dependentBits: Record<string, any>, componentList: Array<ModelComponent | Symlink>, consumerComponentToRemove: ConsumerComponent, bitId: BitId): Promise<BitIds>;
    _removeComponent(id: BitId, componentList: Array<ModelComponent | Symlink>): Promise<void>;
}
