import type { TransformOptions } from "esbuild";
import type { InternalModuleFormat, LoggingFunction, ModuleFormat, RollupLog, RollupOptions, RollupOutput } from "rollup";
import { ResolvedConfig } from "./config";
import { Plugin as RollupPlugin } from "rollup";
export interface BuildOptions {
    /**
     * 是否输出
     * @default true
     */
    write?: boolean;
    /**
     * 输出目标模式
     * @default '["es2020", "edge88", "firefox78", "chrome87", "safari13"]'
     */
    target?: TransformOptions["target"];
    /**
     * roolup配置
     */
    rollupOptions?: RollupOptions;
    /**
     * 产物输出路径
     * @default 'dist'
     */
    outDir?: string;
    /**
     * 是否输出sourcemap
     */
    sourcemap?: boolean;
    /**
     * 路径为outDir的相对路径，存放js/css/image构建资产
     * @default 'assets'
     */
    assetsDir?: string;
    /**
     * 资源大小限制，小于限制时，则使用dataUrl方式集成
     * @default 4096
     */
    assetsInlineLimit?: number;
    /**
     * 是否开启压缩
     * @default 'esbuild'
     */
    minify?: boolean | "esbuild" | "terser";
    /**
     * 以libaray模式构建,并可配置模块的引用类型esm、cjs、umd
     */
    lib?: LibraryOptions | false;
    /**
     * 分包大小限制（警告处理）
     * @default 500
     */
    chunkSizeWarningLimit?: number;
    cssTraget?: TransformOptions["target"];
    /**
     * 是否copy public
     * @default true
     */
    copyPublicDir?: boolean;
    /**
     * 静态资源服务地址
     */
    publicBaseDir?: string;
    /**
     * worker 编译扩展信息
     */
    worker?: {
        rollupOptions?: RollupOptions;
        plugins?: (input: string) => Promise<RollupPlugin>;
    };
}
export declare function resolveBuildOpt(config: Partial<ResolvedConfig>): void;
export interface LibraryOptions {
    /**
     * 入口文件
     */
    entry: string;
    /**
     * 别名
     */
    name?: string;
    /**
     * 输出类型
     * @default [es,umd]
     */
    formats?: LibraryFormatType[];
    /**
     * 输出文件名称，不配置则按原文件输出
     */
    fileName?: string | ((format: ModuleFormat) => string);
}
export type LibraryFormatType = "es" | "cjs" | "umd" | "iife";
/**
 * 构建主入口,控制主流程，支持并行多任务构建
 * @param config
 */
export declare function build(config: ResolvedConfig): Promise<RollupOutput | RollupOutput[]>;
export declare function onRollupWarning(config: ResolvedConfig, warnings: RollupLog, warn: LoggingFunction): void;
/**
 * 获取output文件路径
 * @returns 返回实际地址<string> 或者 返回runtime运行时执行语法
 */
export declare function toOutputFilePath<T>(filename: string, hostId: string, config: ResolvedConfig, toRelative: (fileName: string, hostId: string) => T): T | string;
export declare function createToImportMetaURLBasedRelativeRuntime(format: InternalModuleFormat): (filename: string, importer: string) => {
    runtime: string;
};
