import type { ICrossModuleStyleOptions } from '@plugin-light/webpack-loader-cross-module-style';
import type { IInsertGlobalCompOptions } from '@plugin-light/webpack-loader-insert-global-comp';
import type { ICopyDirOptions } from '@plugin-light/webpack-plugin-copy-dir';
import type { ICustomPreloadOptions } from '@plugin-light/webpack-plugin-custom-preload';
import type { IDispatchScriptOptions } from '@plugin-light/webpack-plugin-dispatch-script';
import type { IDispatchVueOptions } from '@plugin-light/webpack-plugin-dispatch-vue';
import type { IGenVersionOptions } from '@plugin-light/webpack-plugin-gen-version';
import type { IRemToRpxOptions } from '@plugin-light/webpack-plugin-rem-to-rpx';
import type { IReplaceUniH5PluginOption } from '@plugin-light/webpack-plugin-replace-uni-h5';
export type GetUniVueConfig = {
    /**
     * 是否使用转换动态引入的 loader
     */
    useTransformDynamicCompLoader?: boolean;
    /**
     * 是否使用替换 vue key loader
     */
    useReplaceVueKeyLoader?: boolean;
    /**
     * 是否使用处理 swipe 组件的 loader
     */
    useSwipeComponentLoader?: boolean;
    /**
     * 是否使用自动插入全局组件 loader
     */
    useInsertGlobalCompLoader?: boolean;
    /**
     * 自动插入全局组件选项
     */
    insertGlobalCompLoaderOptions?: any;
    /**
     * 是否使用替换三方库 loader
     */
    useReplaceLibraryLoader?: boolean;
    /**
     * 替换三方库选项
     */
    replaceLibraryLoaderOptions?: any;
    /**
     * 是否使用替换模板标签
     */
    useReplaceTemplateTagLoader?: boolean;
    /**
     * 替换模板标签选项
     */
    replaceTemplateTagLoaderOptions?: any;
    /**
     * 是否使用 v-lazy loader
     */
    useVLazyLoader?: boolean;
    /**
     * v-lazy loader 选项
     */
    vLazyLoaderOptions?: any;
    /**
     * 是否使用插入 page-meta loader
     */
    useInsertPageMetaLoader?: boolean;
    /**
     * 插入 page-meta loader 选项
     */
    insertPageMetaLoaderOptions?: IInsertGlobalCompOptions;
    /**
     * cross-module-style loader 选项
     */
    crossModuleStyleLoaderOptions?: ICrossModuleStyleOptions;
    /**
     * 是否使用 copy dir 插件
     */
    useCopyDirPlugin?: boolean;
    /**
     * copy dir 插件选项
     */
    copyDirPluginOptions?: ICopyDirOptions;
    /**
     * 是否使用脚本派发插件
     */
    useDispatchScriptPlugin?: boolean;
    /**
     * 脚本派发插件选项
     */
    dispatchScriptPluginOptions?: IDispatchScriptOptions;
    /**
     * 是否使用组件派发插件
     */
    useDispatchVuePlugin?: boolean;
    /**
     * 组件派发插件选项
     */
    dispatchVuePluginOptions?: IDispatchVueOptions;
    /**
     * 是否使用 xss 方法包裹 v-html 内容，需提前注册全局方法
     */
    useXSS?: boolean;
    /**
     * 是否使用 add placeholder 插件，
     * 为 true 时，也会使用 动态引入组件的替换插件
     */
    useAddPlaceHolderPlugin?: boolean;
    /**
     * 小程序下, rem to rpx 插件选项
     */
    remToRpxPluginMpOptions?: IRemToRpxOptions;
    /**
     * web 下，生成版本插件选项
     */
    genVersionWebPluginOptions?: IGenVersionOptions;
    /**
     * 需移动的外层目录列表
     */
    adapterDirs?: Array<string>;
    /**
     * 待转换的三方依赖
     */
    transpileDependencies?: Array<string>;
    /**
     * 是否校验 eslint
     */
    lintOnSave?: boolean;
    /**
     * 是否使用 H5 的 splitChunks 配置，
     * 如果是对象类型，则直接传递给 config.optimization.splitChunks
     */
    useH5SplitChunks?: boolean | Record<string, any>;
    /**
     * 是否使用 fix-mini-css-plugin
     */
    useFixMiniCssPlugin?: boolean;
    /**
     * aegis-web-sdk 是否使用外链，
     * 传入 string 会覆盖之前的链接
     * @default true
     */
    aegisWebSdkExternal?: boolean | string;
    /**
     * uni-simple-router 是否使用外链，
     * 传入 string 会覆盖之前的链接
     * @default false
     */
    uniSimpleRouterExternal?: boolean | string;
    /**
     * axios 是否使用外链
     * @default false
     */
    axiosExternal?: boolean | string;
    /**
     * vue-lazy 是否使用外链
     * @default false
     */
    vueLazyloadExternal?: boolean | string;
    /**
     * 是否使用自定义预加载
     * @default false
     */
    customPreload?: boolean | ICustomPreloadOptions;
    /**
     * 是否需要 sourceMap，
     * H5、生产环境、release 分支为 true，其他为 false
     */
    needSourceMap?: boolean;
    /**
     * 是否使用 pmd-business 为 alias
     * @default false
     */
    usePMDBusinessAlias?: boolean;
    /**
     * 是否使用 work-box
     */
    useWorkBoxPlugin?: Record<string, any>;
    /**
     * 是否保存 bundle-analyze 结果到 html 中
     */
    saveBundleAnalyzeHtml?: boolean | Record<string, any>;
    /**
     * 是否使用 replaceUniH5Plugin
     */
    useReplaceUniH5Plugin?: IReplaceUniH5PluginOption;
    /**
     * 是否使用 removeScoped loader
     */
    useRemoveScopedLoader?: any;
    /**
     * 打包产物目录
     * @default 'dist/${VUE_APP_DIR}/static'
     */
    outputDirMode?: string;
};
