import { IRollupService } from "./i-rollup-service";
import { IRollupServiceGenerateOptions } from "./i-rollup-service-generate-options";
import { IRollupServiceGenerateWithResultOptions } from "./i-rollup-service-generate-with-result-options";
import { IRollupServiceGenerateWithResultResult } from "./i-rollup-service-generate-with-result-result";
import { IObserver } from "../../../observable/i-observer";
/**
 * A class that helps with working with Rollup
 */
export declare class RollupService implements IRollupService {
    /**
     * Generates a bundle with Rollup
     * @param {IRollupServiceGenerateOptions} options
     * @returns {Promise<IObserver>}
     */
    generate(options: IRollupServiceGenerateOptions): Promise<IObserver>;
    /**
     * Generates a bundle with Rollup and returns the result
     * @param {IRollupServiceGenerateWithResultOptions} options
     * @returns {Promise<IRollupServiceGenerateWithResultResult<T>>}
     */
    generateWithResult<T>(options: IRollupServiceGenerateWithResultOptions): Promise<IRollupServiceGenerateWithResultResult<T>>;
    /**
     * Invoked when bundling has started
     * @param {ISubscriber<IRollupServiceGenerateObserverPayload>} subscriber
     * @returns {Promise<void>}
     */
    private didStartBundling(subscriber);
    /**
     * Invoked when a bundle set has been generated
     * @param {BundleSet} bundleSet
     * @param {OutputOptions} outputOptions
     * @param {ISubscriber<IRollupServiceGenerateObserverPayload>} subscriber
     * @returns {Promise<void>}
     */
    private didEndBundling(bundleSet, outputOptions, subscriber);
    /**
     * Gets the default "pre" plugins (those that must come before anything else)
     * @param {IRollupPrePluginsOptions} options
     * @returns {Plugin[]}
     */
    private getDefaultPrePlugins({root, additionalEnvironmentVariables});
    /**
     * Gets the default "post" plugins (those that must come after anything else)
     * @param {string} root
     * @param {string} tsconfig
     * @param {string|string[]} browserslist
     * @param {{}[]} additionalBabelPlugins
     * @param {{}[]} additionalBabelPresets
     * @returns {Plugin[]}
     */
    private getDefaultPostPlugins({root, tsconfig, browserslist, additionalBabelPlugins, additionalBabelPresets});
}
