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 {
    /**
     * Write bundles to disk
     * @default true
     */
    write?: boolean;
    /**
     * Browser compatibility target
     * @default '["es2020", "edge88", "firefox78", "chrome87", "safari13"]'
     */
    target?: TransformOptions["target"];
    /**
     * Customize underlying Rollup configuration
     */
    rollupOptions?: RollupOptions;
    /**
     * Output directory for build artifacts
     * @default 'dist'
     */
    outDir?: string;
    /**
     * Generate source maps for bundles
     */
    sourcemap?: boolean;
    /**
     * Directory (relative to outDir) to place generated assets
     * @default 'assets'
     */
    assetsDir?: string;
    /**
     * Inline assets below this size (in bytes) as base64 URLs
     * @default 4096
     */
    assetsInlineLimit?: number;
    /**
     * Minify output
     * @default 'esbuild'
     */
    minify?: boolean | "esbuild" | "terser";
    /**
     * Library mode options for building packages
     */
    lib?: LibraryOptions | false;
    /**
     * Warn when a chunk exceeds this size (in kilobytes)
     * @default 500
     */
    chunkSizeWarningLimit?: number;
    /**
     * CSS transformation target
     */
    cssTarget?: TransformOptions["target"];
    /**
     * Copy files from publicDir to outDir
     * @default true
     */
    copyPublicDir?: boolean;
    /**
     * Base URL for static asset serving
     */
    publicBaseDir?: string;
    /**
     * Options for terser
     * https://terser.org/docs/api-reference#minify-options
     */
    terserOptions?: any;
    /**
     * Options for worker bundles
     */
    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;
};
