import AbstractConfig from './abstract-config';
import { Compilers, Testers } from './abstract-config';
import { PathOsBasedAbsolute, PathOsBased } from '../../utils/path';
import ConsumerOverrides from './consumer-overrides';
import { ExtensionDataList } from './extension-data';
import { ResolveModulesConfig } from '../component/dependencies/files-dependency-builder/types/dependency-tree-type';
import { ILegacyWorkspaceConfig, PackageManagerClients } from './legacy-workspace-config-interface';
export declare type WorkspaceConfigIsExistFunction = (dirPath: string | PathOsBased) => Promise<boolean | undefined>;
export declare type WorkspaceConfigLoadFunction = (dirPath: string | PathOsBased) => Promise<ILegacyWorkspaceConfig | undefined>;
export declare type WorkspaceConfigEnsureFunction = (dirPath: PathOsBasedAbsolute, standAlone: boolean, workspaceConfigProps: WorkspaceConfigProps) => Promise<ILegacyWorkspaceConfig>;
export declare type WorkspaceConfigProps = {
    compiler?: string | Compilers;
    tester?: string | Testers;
    saveDependenciesAsComponents?: boolean;
    lang?: string;
    distTarget?: string | undefined;
    distEntry?: string | undefined;
    componentsDefaultDirectory?: string;
    dependenciesDirectory?: string;
    bindingPrefix?: string;
    extensions?: ExtensionDataList;
    packageManager?: PackageManagerClients;
    packageManagerArgs?: string[];
    packageManagerProcessOptions?: Record<string, any>;
    useWorkspaces?: boolean;
    manageWorkspaces?: boolean;
    resolveModules?: ResolveModulesConfig;
    defaultScope?: string;
    overrides?: ConsumerOverrides;
};
export default class WorkspaceConfig extends AbstractConfig {
    distTarget: string | undefined;
    distEntry: string | undefined;
    componentsDefaultDirectory: string;
    dependenciesDirectory: string;
    saveDependenciesAsComponents: boolean;
    packageManager: PackageManagerClients;
    packageManagerArgs: string[] | undefined;
    packageManagerProcessOptions: Record<string, any> | undefined;
    useWorkspaces: boolean;
    manageWorkspaces: boolean;
    resolveModules: ResolveModulesConfig | undefined;
    overrides: ConsumerOverrides;
    packageJsonObject: Record<string, any> | null | undefined;
    defaultScope: string | undefined;
    static workspaceConfigIsExistRegistry: WorkspaceConfigIsExistFunction;
    static registerOnWorkspaceConfigIsExist(func: WorkspaceConfigIsExistFunction): void;
    static workspaceConfigLoadingRegistry: WorkspaceConfigLoadFunction;
    static registerOnWorkspaceConfigLoading(func: WorkspaceConfigLoadFunction): void;
    static workspaceConfigEnsuringRegistry: WorkspaceConfigEnsureFunction;
    static registerOnWorkspaceConfigEnsuring(func: WorkspaceConfigEnsureFunction): void;
    constructor({ compiler, tester, saveDependenciesAsComponents, lang, distTarget, distEntry, componentsDefaultDirectory, dependenciesDirectory, bindingPrefix, extensions, packageManager, packageManagerArgs, packageManagerProcessOptions, useWorkspaces, manageWorkspaces, resolveModules, defaultScope, overrides }: WorkspaceConfigProps);
    toPlainObject(): any;
    static create(workspaceConfigProps: WorkspaceConfigProps): WorkspaceConfig;
    static ensure(dirPath: PathOsBasedAbsolute, standAlone?: boolean, workspaceConfigProps?: WorkspaceConfigProps): Promise<ILegacyWorkspaceConfig>;
    static _ensure(dirPath: PathOsBasedAbsolute, standAlone: boolean, workspaceConfigProps?: WorkspaceConfigProps): Promise<WorkspaceConfig>;
    static reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void>;
    static fromPlainObject(object: Record<string, any>): WorkspaceConfig;
    static load(dirPath: string): Promise<WorkspaceConfig>;
    static loadIfExist(dirPath: string | PathOsBased): Promise<ILegacyWorkspaceConfig | undefined>;
    static isExist(dirPath: string): Promise<boolean | undefined>;
    static _isExist(dirPath: string): Promise<boolean>;
    static _loadIfExist(dirPath: string): Promise<WorkspaceConfig | undefined>;
    static loadBitJson(bitJsonPath: string): Promise<Record<string, any> | null | undefined>;
    static loadPackageJson(packageJsonPath: string): Promise<Record<string, any> | null | undefined>;
    static validate(object: Record<string, any>): void;
}
