import Component from '../component/consumer-component';
import ComponentMap from '../bit-map/component-map';
import { ComponentOrigin } from '../bit-map/component-map';
import Consumer from '../consumer';
import { PathOsBasedRelative } from '../../utils/path';
import BitMap from '../bit-map/bit-map';
import PackageJsonFile from '../component/package-json-file';
export declare type ComponentWriterProps = {
    component: Component;
    writeToPath: PathOsBasedRelative;
    writeConfig?: boolean;
    writePackageJson?: boolean;
    override?: boolean;
    isolated?: boolean;
    origin: ComponentOrigin;
    consumer: Consumer | undefined;
    bitMap: BitMap;
    writeBitDependencies?: boolean;
    deleteBitDirContent?: boolean;
    existingComponentMap?: ComponentMap;
    excludeRegistryPrefix?: boolean;
    applyExtensionsAddedConfig?: boolean;
};
export default class ComponentWriter {
    component: Component;
    writeToPath: PathOsBasedRelative;
    writeConfig: boolean;
    writePackageJson: boolean;
    override: boolean;
    isolated: boolean | undefined;
    origin: ComponentOrigin;
    consumer: Consumer | undefined;
    bitMap: BitMap;
    writeBitDependencies: boolean;
    deleteBitDirContent: boolean | undefined;
    existingComponentMap: ComponentMap | undefined;
    excludeRegistryPrefix: boolean;
    applyExtensionsAddedConfig?: boolean;
    constructor({ component, writeToPath, writeConfig, writePackageJson, override, isolated, origin, consumer, bitMap, writeBitDependencies, deleteBitDirContent, existingComponentMap, excludeRegistryPrefix, applyExtensionsAddedConfig }: ComponentWriterProps);
    static getInstance(componentWriterProps: ComponentWriterProps): ComponentWriter;
    write(): Promise<Component>;
    populateComponentsFilesToWrite(packageManager?: string): Promise<Record<string, any>>;
    populateFilesToWriteToComponentDir(packageManager?: string): Promise<void>;
    private populateArtifacts;
    private getArtifactsDir;
    addComponentToBitMap(rootDir: string | undefined): ComponentMap;
    _mergePackageJsonPropsFromExtensions(packageJson: PackageJsonFile): void;
    _mergePackageJsonPropsFromOverrides(packageJson: PackageJsonFile): void;
    _mergeChangedPackageJsonProps(packageJson: PackageJsonFile): void;
    _replaceDistPathTemplateWithCalculatedDistPath(packageJson: PackageJsonFile): Record<string, any>;
    _copyFilesIntoDistsWhenDistsOutsideComponentDir(): void;
    _updateComponentRootPathAccordingToBitMap(): void;
    _updateBitMapIfNeeded(): void;
    _updateConsumerConfigIfNeeded(): Promise<void>;
    _determineWhetherToWriteConfig(): void;
    _determineWhetherToWritePackageJson(): void;
    _handlePreviouslyNestedCurrentlyImportedCase(): Promise<void>;
    _determineWhetherToDeleteComponentDirContent(): void;
    _updateFilesBasePaths(): void;
    _cleanOldNestedComponent(): Promise<void>;
    _removeNodeModulesLinksFromDependents(): Promise<void>;
    _getNextPatchVersion(): any;
}
