import { IPackageConfig } from '@mcph/miix-std/dist/internal';
import { Project } from '../project';
/**
 * IBundlerOutput is returned from Bundler.bundle
 */
export interface IBundlerOutput {
    filename: string;
    config: IPackageConfig;
}
/**
 * Bundler packages up controls from a project directory into a tarball
 * that can be uploaded to Mixer.
 */
export declare class Bundler {
    private readonly project;
    constructor(project: Project);
    bundle(progressReporter?: (message: string) => void): Promise<IBundlerOutput>;
    /**
     * Throws an PackageIntegrityError if there are any obvious problems with
     * the bundler output.
     */
    private verifyIntegrity(output);
    /**
     * Compresses the output dir into the target tarball.
     */
    private createTarball(output, target);
    /**
     * Returns the webpack output path.
     */
    private getOutputPath();
    /**
     * Runs webpack to create a production bundle.
     */
    private runWebpack();
}
