import { ComponentWithDependencies } from '../../scope';
import Component from '../component/consumer-component';
import Consumer from '../consumer';
import ComponentMap from '../bit-map/component-map';
import { ComponentWriterProps } from './component-writer';
import { PathOsBasedAbsolute, PathOsBasedRelative } from '../../utils/path';
import DataToPersist from '../component/sources/data-to-persist';
import BitMap from '../bit-map';
import { BitId } from '../../bit-id';
export interface ManyComponentsWriterParams {
    packageManager?: string;
    consumer?: Consumer;
    silentPackageManagerResult?: boolean;
    componentsWithDependencies: ComponentWithDependencies[];
    writeToPath?: string;
    override?: boolean;
    isolated?: boolean;
    writePackageJson?: boolean;
    saveDependenciesAsComponents?: boolean;
    writeConfig?: boolean;
    writeBitDependencies?: boolean;
    createNpmLinkFiles?: boolean;
    writeDists?: boolean;
    installNpmPackages?: boolean;
    installPeerDependencies?: boolean;
    addToRootPackageJson?: boolean;
    verbose?: boolean;
    installProdPackagesOnly?: boolean;
    excludeRegistryPrefix?: boolean;
    applyExtensionsAddedConfig?: boolean;
}
export default class ManyComponentsWriter {
    consumer?: Consumer;
    silentPackageManagerResult?: boolean;
    componentsWithDependencies: ComponentWithDependencies[];
    writeToPath?: string;
    override: boolean;
    writePackageJson: boolean;
    writeConfig: boolean;
    writeBitDependencies: boolean;
    createNpmLinkFiles: boolean;
    writeDists: boolean;
    installNpmPackages: boolean;
    installPeerDependencies: boolean;
    addToRootPackageJson: boolean;
    verbose: boolean;
    excludeRegistryPrefix: boolean;
    installProdPackagesOnly?: boolean;
    dependenciesIdsCache: Record<string, any>;
    writtenComponents: Component[];
    writtenDependencies: Component[];
    isolated: boolean;
    bitMap: BitMap;
    basePath?: string;
    packageManager?: string;
    applyExtensionsAddedConfig?: boolean;
    constructor(params: ManyComponentsWriterParams);
    _setBooleanDefault(field: boolean | null | undefined, defaultValue: boolean): boolean;
    writeAll(): Promise<void>;
    _writeComponentsAndDependencies(): Promise<void>;
    _installPackages(): Promise<void>;
    _writeLinks(): Promise<void>;
    _persistComponentsData(): Promise<void>;
    _populateComponentsFilesToWrite(): Promise<void>;
    _getWriteComponentsParams(): ComponentWriterProps[];
    _getWriteParamsOfOneComponent(componentWithDeps: ComponentWithDependencies): ComponentWriterProps;
    _getDefaultWriteParams(): Record<string, any>;
    _populateComponentsDependenciesToWrite(): Promise<void>;
    _moveComponentsIfNeeded(): void;
    _installPackagesIfNeeded(): Promise<void>;
    _getAllLinks(): Promise<DataToPersist>;
    _getComponentRootDir(bitId: BitId): PathOsBasedRelative;
    _getDependencyRootDir(bitId: BitId): PathOsBasedRelative;
    _throwErrorWhenDirectoryNotEmpty(componentDir: PathOsBasedAbsolute, componentMap: ComponentMap | null | undefined): void;
}
