import { MiddlewareCreater } from 'f2e-server';
import * as esbuild from 'esbuild';
declare namespace creater {
    interface BuildOptions extends esbuild.BuildOptions {
        /** 默认生成externals，不需要时候，可以设置为false */
        ignore_external?: boolean;
        /**
         * 拆分编译模块
         * 需要依赖 ignore_external 为false 且 external 配置不为空
         *  1. 防止重复编译模块过多，
         *  2. 依赖external提供的全局模块名称和require函数
         *  3. 主要为了加快开发环境编译速度，非dev环境可不开启
         */
        external_splits?: {
            moduleName: string;
            entry: string;
        }[];
    }
    interface MiddlewareOption {
        /** 默认配置文件地址 */
        esbuildrc?: string;
        /** 针对哪些文件监听修改 */
        watches?: RegExp[];
        /** 临时文件地址，需要添加到 .gitignore */
        cacheRoot?: string;
        /** external文件名称生成方式 */
        externalName?: (index: number, split_index?: number) => string;
        /** external导出变量名 */
        moduleName?: (index: number, split_index?: number) => string;
        /** 运行时修改的通用esbuild编译参数不含 external 包 */
        options?: esbuild.BuildOptions;
        /** 运行时修改的external编译参数 */
        externalOptions?: esbuild.BuildOptions;
    }
}
declare const creater: MiddlewareCreater;
export = creater;
