import { Plugin } from 'vite';

interface RouteOptions {
    /**
     * 路由文件所在目录
     * @default 'src/views'
     */
    routesDir?: string;
    /**
     * 路由文件扩展名
     * @default ['.vue']
     */
    extensions?: string[];
    /**
     * 是否生成路由声明文件
     * @default true
     */
    generateDeclaration?: boolean;
    /**
     * 路由声明文件输出路径
     * @default 'src/router/routes.d.ts'
     */
    declarationPath?: string;
    /**
     * 是否在控制台打印路由信息
     * @default false
     */
    verbose?: boolean;
    /**
     * 是否开启路由懒加载
     * @default true
     */
    isLazy?: boolean;
    /**
     * 需要排除的目录
     * @default ['components']
     */
    excludes?: string[];
    /**
     * 布局文件名
     * @default '_layout'
     */
    layoutName?: string;
    /**
     * 路由元数据配置文件路径
     * @default 'src/router/route-meta.js'
     */
    metaConfigPath?: string;
    /**
     * 是否启用组件内定义元数据
     * @default true
     */
    enableInComponentMeta?: boolean;
}
/**
 * 约定式路由Vite插件
 * 自动根据文件结构生成路由配置
 */
declare function vitePluginConventionRoutes(options?: RouteOptions): Plugin;

export { type RouteOptions, vitePluginConventionRoutes as default };
