import { Cache } from '../cache/cache';
import { Context } from '../core/Context';
import { IDevServerProps } from '../dev-server/devServerProps';
import { IRawCompilerOptions } from '../interfaces/TypescriptInterfaces';
import { IJSONPluginProps } from '../plugins/core/plugin_json';
import { IPluginLinkOptions } from '../plugins/core/plugin_link';
import { IWatcherExternalProps } from '../watcher/watcher';
import { IWebIndexConfig } from '../web-index/webIndex';
import { ICodeSplittingConfig } from './ICodeSplittingConfig';
import { IFuseLoggerProps } from './IFuseLoggerProps';
import { IManifest } from './IManifest';
import { IProductionProps } from './IProductionProps';
import { IPublicConfig } from './IPublicConfig';
import { IResourceConfig } from './IResourceConfig';
import { IStyleSheetProps } from './IStylesheetProps';
import { IWebWorkerConfig } from './IWebWorkerConfig';
export interface IHMRExternalProps {
    reloadEntryOnStylesheet?: boolean;
}
export declare type ITarget = 'browser' | 'server' | 'electron' | 'universal' | 'web-worker';
export interface IHMRProps {
    enabled?: boolean;
    hmrProps?: IHMRExternalProps;
}
export interface IWatcherProps {
    enabled: boolean;
    watcherProps?: IWatcherExternalProps;
}
export interface ICacheProps {
    enabled?: boolean;
    root?: string;
    FTL?: boolean;
}
export declare class PrivateConfig {
    props: IPublicConfig;
    root?: string;
    target?: ITarget;
    dependencies?: {
        include?: Array<string>;
        ignorePackages?: Array<string>;
        ignoreAllExternal?: boolean;
    };
    useSingleBundle?: boolean;
    webWorkers?: IWebWorkerConfig;
    homeDir?: string;
    resources?: IResourceConfig;
    output?: string;
    modules?: Array<string>;
    logging?: IFuseLoggerProps;
    watch?: IWatcherProps;
    hmr?: IHMRProps;
    stylesheet?: IStyleSheetProps;
    json?: IJSONPluginProps;
    link?: IPluginLinkOptions;
    env?: {
        [key: string]: string;
    };
    cache?: ICacheProps;
    tsConfig?: string | IRawCompilerOptions;
    entries?: Array<string>;
    allowSyntheticDefaultImports?: boolean;
    webIndex?: IWebIndexConfig;
    sourceMap?: {
        sourceRoot?: string;
        vendor?: boolean;
        project?: boolean;
        css?: boolean;
    };
    plugins?: Array<(ctx: Context) => void>;
    alias?: {
        [key: string]: string;
    };
    defaultCollectionName?: string;
    production?: IProductionProps;
    devServer?: IDevServerProps;
    codeSplitting?: ICodeSplittingConfig;
    defaultSourceMapModulesRoot?: string;
    cacheObject?: Cache;
    manifest?: IManifest;
    ctx?: Context;
    constructor(props: IPublicConfig);
    init(props: IPublicConfig): void;
    isEssentialDependency(name: string): boolean;
    shoudIgnorePackage(name: string): boolean;
    supportsStylesheet(): boolean;
    setupEnv(): void;
    isServer(): boolean;
    getPublicRoot(userPublicPath?: string): string;
    getResourceConfig(stylesheet?: IStyleSheetProps): IResourceConfig;
}
