import { TsConfigSourceFile } from 'typescript';
import type { TsCompilerOptionsWithoutTsConfig } from '@teambit/typescript';
import { BuildTask } from '@teambit/builder';
import { Compiler } from '@teambit/compiler';
import { PackageJsonProps } from '@teambit/pkg';
import { EnvPolicyConfigObject } from '@teambit/dependency-resolver';
import { EnvsMain, EnvTransformer, Environment } from '@teambit/envs';
import { ReactMain } from '@teambit/react';
import { HtmlEnv } from './html.env';
export declare class HtmlMain {
    private react;
    readonly htmlEnv: HtmlEnv;
    private envs;
    constructor(react: ReactMain, htmlEnv: HtmlEnv, envs: EnvsMain);
    static slots: never[];
    static dependencies: import("@teambit/harmony").Aspect[];
    static runtime: import("@teambit/harmony").RuntimeDefinition;
    /**
     * @deprecated use useTypescript()
     * override the TS config of the environment.
     */
    overrideTsConfig: (tsconfig: TsConfigSourceFile, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any) => EnvTransformer;
    /**
     * override the jest config of the environment.
     */
    overrideJestConfig: (jestConfigPath: string, jestModulePath?: string | undefined) => EnvTransformer;
    /**
     * override the env build pipeline.
     */
    overrideBuildPipe: (tasks: BuildTask[]) => EnvTransformer;
    /**
     * override the env compilers list.
     */
    overrideCompiler: (compiler: Compiler) => EnvTransformer;
    /**
     * override the env compilers tasks in the build pipe.
     */
    overrideCompilerTasks: (tasks: BuildTask[]) => EnvTransformer;
    /**
     * @deprecated use useTypescript()
     * override the build ts config.
     */
    overrideBuildTsConfig: (tsconfig: any, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>) => EnvTransformer;
    /**
     * override package json properties.
     */
    overridePackageJsonProps: (props: PackageJsonProps) => EnvTransformer;
    /**
     * override the env's typescript config for both dev and build time.
     * Replaces both overrideTsConfig (devConfig) and overrideBuildTsConfig (buildConfig)
     */
    useTypescript: (modifiers?: import("@teambit/react").UseTypescriptModifiers | undefined, tsModule?: any) => EnvTransformer;
    /**
     * override the env's dev server and preview webpack configurations.
     * Replaces both overrideDevServerConfig and overridePreviewConfig
     */
    useWebpack: (modifiers?: import("@teambit/react").UseWebpackModifiers | undefined) => EnvTransformer;
    /**
     * An API to mutate the prettier config
     */
    usePrettier: (modifiers?: import("@teambit/react/react.main.runtime").UsePrettierModifiers | undefined) => EnvTransformer;
    /**
     * An API to mutate the eslint config
     */
    useEslint: (modifiers?: import("@teambit/react/react.main.runtime").UseEslintModifiers | undefined) => EnvTransformer;
    /**
     * override the dependency configuration of the component environment.
     */
    overrideDependencies(dependencyPolicy: EnvPolicyConfigObject): EnvTransformer;
    /**
     * create a new composition of the html environment.
     */
    compose(transformers: EnvTransformer[], targetEnv?: Environment): Environment;
    static provider([envs, react]: [EnvsMain, ReactMain]): Promise<HtmlMain>;
}
