import Dist from './dist';
import Consumer from '../../consumer';
import { PathLinux, PathOsBased, PathOsBasedRelative } from '../../../utils/path';
import ComponentMap from '../../bit-map/component-map';
import { BitId } from '../../../bit-id';
import Component from '../consumer-component';
import { DistFileModel } from '../../../scope/models/version';
import DataToPersist from './data-to-persist';
import { ComponentWithDependencies } from '../../../scope';
import BitMap from '../../bit-map';
import { ILegacyWorkspaceConfig } from '../../config';
export default class Dists {
    dists: Dist[];
    writeDistsFiles: boolean;
    areDistsInsideComponentDir: boolean | null | undefined;
    distEntryShouldBeStripped: boolean | null | undefined;
    _mainDistFile: PathOsBasedRelative | null | undefined;
    distsRootDir: PathOsBasedRelative | null | undefined;
    constructor(dists: Dist[] | null | undefined, mainDistFile: PathOsBased | null | undefined);
    isEmpty(): boolean;
    get(): Dist[];
    getAsReadable(): string[];
    getMainDistFile(): string | null | undefined;
    getDistDirForConsumer(consumer: Consumer, componentRootDir: PathLinux): PathOsBasedRelative;
    hasFileParallelToSrcFile(srcFile: PathLinux): boolean;
    static getDistDirWhenDistIsOutsideCompDir(workspaceConfig: ILegacyWorkspaceConfig, componentRootDir: PathLinux): PathOsBasedRelative;
    getDistDir(consumer: Consumer | null | undefined, componentRootDir: PathLinux): PathOsBasedRelative;
    updateDistsPerWorkspaceConfig(id: BitId, consumer: Consumer | null | undefined, componentMap: ComponentMap): void;
    stripDistEntryIfNeeded(id: BitId, consumer: Consumer, componentMap: ComponentMap): void;
    stripOriginallySharedDir(originallySharedDir: string | undefined): void;
    writeDists(component: Component, consumer: Consumer, writeLinks?: boolean | undefined): Promise<string[] | null | undefined>;
    writeDistsLinks(component: Component, consumer: Consumer): Promise<void>;
    getDistsToWrite(component: Component, bitMap: BitMap, consumer: Consumer | null | undefined, writeLinks?: boolean | undefined, componentWithDependencies?: ComponentWithDependencies): Promise<DataToPersist | null | undefined>;
    calculateMainDistFile(mainSourceFile: PathOsBased): PathOsBased;
    calculateDistFileForAuthored(componentFile: PathOsBased, consumer: Consumer, isMain: boolean): PathOsBased;
    toDistFilesModel(consumer: Consumer, originallySharedDir: PathLinux | null | undefined, isCompileSet: boolean): {
        dists?: DistFileModel[];
        mainDistFile?: PathOsBasedRelative | null | undefined;
    };
    static getNodePathDir(consumer: Consumer): string | undefined;
    clone(): Dists;
}
