import './polyfills';
import { Options, Config, NormalizedConfig, Format, ConfigEntryObject, ConfigOutput, RunContext, RollupConfig, Task } from './types';
interface RunOptions {
    write?: boolean;
    watch?: boolean;
    concurrent?: boolean;
}
interface RollupConfigInput {
    source: {
        input: string[] | ConfigEntryObject;
        files: string[];
        hasVue: boolean;
        hasTs: boolean;
    };
    title: string;
    format: Format;
    context: RunContext;
    assets: Assets;
    config: NormalizedConfig;
}
export declare class Bundler {
    options: Options;
    rootDir: string;
    config: NormalizedConfig;
    configPath?: string;
    pkg: {
        path?: string;
        data?: any;
    };
    bundles: Set<Assets>;
    constructor(config: Config, options?: Options);
    normalizeConfig(config: Config, userConfig: Config): Config & {
        input: string | ConfigEntryObject | (string | ConfigEntryObject)[];
        output: ConfigOutput;
        plugins: {
            [name: string]: any;
        };
        babel: {
            asyncToPromises: boolean;
        } & import("./types").BabelPresetOptions;
        externals: (string | RegExp | ((id: string, parentId?: string | undefined) => boolean) | undefined)[];
    };
    createRollupConfig({ source, format, title, context, assets, config, }: RollupConfigInput): Promise<RollupConfig>;
    run(options?: RunOptions): Promise<this>;
    build(task: Task, context: RunContext, write?: boolean): Promise<void>;
    handleError(err: any): void;
    resolveRootDir(...args: string[]): string;
    localRequire(name: string, { silent, cwd }?: {
        silent?: boolean;
        cwd?: string;
    }): any;
    getBundle(index: number): Assets;
}
interface Asset {
    absolute: string;
    source: string;
}
declare type Assets = Map<string, Asset>;
export { Config, NormalizedConfig, Options, ConfigOutput };
