import { IScriptOptimizerOptions } from "../i-script-optimizer-options";
import { ICombinedScriptOptimizer } from "./i-combined-script-optimizer";
import { IBabelMinifyOptimizer } from "../babel-minify-optimizer/i-babel-minify-optimizer";
import { IBuildLogger } from "../../../build-debugger/i-build-logger";
import { OptimizerResult } from "../../i-optimizer-result";
/**
 * A Script optimizer that combines other Script optimizers to produce a buffer
 */
export declare class CombinedScriptOptimizer implements ICombinedScriptOptimizer {
    private readonly buildLogger;
    private readonly babelMinifyOptimizer;
    constructor(buildLogger: IBuildLogger, babelMinifyOptimizer: IBabelMinifyOptimizer);
    /**
     * Optimizes a script using any of the embedded optimizers.
     * If the script format is unsupported, an un-manipulated Buffer will be returned.
     * @param {IScriptOptimizerOptions} options
     * @returns {Promise<OptimizerResult>}
     */
    optimize(options: IScriptOptimizerOptions): Promise<OptimizerResult>;
    /**
     * Qualifies optimizing the given input. Will pass it through the given optimizers until
     * one of them successfully encodes it.
     * @param {IScriptOptimizerOptions} options
     * @param {IScriptOptimizer[]} optimizers
     * @returns {Promise<OptimizerResult>}
     */
    private qualifyOptimization(options, optimizers);
}
