/// <reference types="node" />
import type { BuildOptions, CommonServerOptions, Plugin, ServerOptions } from 'vite';
import tailwindcss from 'tailwindcss';
import type { Options as RemoveSelectorOptions } from '@plugin-light/postcss-plugin-remove-selector';
import type { Options as TransformWebTagOptions } from '@plugin-light/postcss-plugin-transform-web-tag';
import type { ICrossGameStyleOptions } from '@plugin-light/vite-plugin-cross-game-style';
import type { IRemoveVueDirectionOptions } from '@plugin-light/vite-plugin-remove-vue-directive';
import type { UniTailwindPluginUserOptions } from '@uni-helper/vite-plugin-uni-tailwind';
import type { Options as LegacyOptions } from '@vitejs/plugin-legacy';
import type { Server } from 'node:https';
import type { Options as ESBuildOptions } from 'rollup-plugin-esbuild';
export interface IUniViteConfigOptions {
    /**
     * 模式
     */
    mode: string;
    /**
     * uni 插件
     */
    uni: any;
    /**
     * 端口，传递给 server.port
     *
     * @default 443
     */
    port?: CommonServerOptions['port'];
    /**
     * https 配置，传递给 server.https
     */
    https?: Server;
    /**
     * host 配置，传递给 server.host
     * @default true
     */
    host?: CommonServerOptions['host'];
    /**
     * 前置插件
     */
    prePlugins?: Array<Plugin>;
    /**
     * 后置插件
     */
    postPlugins?: Array<Plugin>;
    /**
     * 对应 optimizeDeps.include
     */
    optimizeDepsIncludes?: Array<string>;
    /**
     * remove-vue-direction 插件参数
     */
    removeVueDirectionOptions?: IRemoveVueDirectionOptions;
    /**
     * hmr 选项
     * @default { timeout: 1000 * 60 * 5 }
     */
    hmr?: ServerOptions['hmr'];
    /**
     * 语法警报列表，比如 v-model，destroyed
     */
    warnList?: ICrossGameStyleOptions['warnList'];
    /**
     * transform-web-tag postcss 插件参数
     */
    transformWebTagOptions?: boolean | TransformWebTagOptions;
    /**
     * remove selector postcss 插件参数
     */
    removeSelectorOptions?: boolean | RemoveSelectorOptions;
    /**
     * uniTailwind 插件参数
     */
    uniTailwindOptions?: boolean | UniTailwindPluginUserOptions;
    /**
     * tailwindcss postcss 插件参数
     */
    tailwindcssOptions?: boolean | Parameters<typeof tailwindcss>[0];
    /**
     * 构建选项
     */
    buildOptions?: BuildOptions;
    /**
     * 是否使用 chunk-split
     * @default false
     */
    useChunkSplit?: boolean;
    /**
     * 是否使用 @vitejs/plugin-legacy，传递对象格式将作为插件参数
     * @default false
     */
    useLegacy?: boolean | LegacyOptions;
    /**
     * 传递给 uni 插件的参数
     */
    uniOptions?: any;
    /**
     * 是否使用 rollup-plugin-esbuild，传递对象格式将作为插件参数
     */
    useESBuildPlugin?: boolean | ESBuildOptions;
}
