import type { RouteRecordRaw } from 'vue-router';
import type { Pages, Module, Modules, PageMenu, Options, WebpackRequireContext, ModuleConfig } from '../type';
export default class AutoRouter {
    config: Pages;
    rootModules: Modules;
    options: Options;
    pageModules: Modules;
    pageModulesConfig: ModuleConfig[];
    pageSettingModules: Modules;
    pageSetting: Record<string, RouteRecordRaw>;
    validModules: Modules;
    baseModules: Modules;
    excludeModules: Modules;
    nestedRoutesList: Array<{
        component: string;
        routeKeys: string[];
        config?: PageMenu;
    }>;
    initializeRoutes: RouteRecordRaw[];
    menuRouteMap: Map<object, [RouteRecordRaw[], PageMenu[]]>;
    menuList: PageMenu[];
    menuTree: PageMenu[];
    addedRoutesName: string[];
    existRouteNames: Map<string, number>;
    constructor(config: Pages, rootModules: Modules, options: Options);
    get router(): import("vue-router").Router;
    static webpackToViteModules(modules: WebpackRequireContext, fn: (v: any) => string): Modules;
    init(): Promise<void>;
    initGlobExclude(modules: Modules): {
        [x: string]: () => Promise<Module>;
    };
    initBaseRouteInfo(): void;
    initNestedModules(modules: Modules): Modules;
    initRouter(): RouteRecordRaw[];
    getRoutesByMenu<T extends PageMenu>(menuTree: T[]): [RouteRecordRaw[], PageMenu[]];
    initBaseRouter(filter?: boolean): RouteRecordRaw[];
    initNestedRoutes(filter?: boolean): RouteRecordRaw[];
    initMenuRoutes(): RouteRecordRaw[];
    mergeRoute(route: RouteRecordRaw, modulePath: string): RouteRecordRaw | undefined;
    excludeModuleToOtherModules(modules: Modules, keys: string[], container: Modules): {
        [x: string]: () => Promise<Module>;
    };
    removeAddedRoutes(): void;
    changeRouter<T extends RouteRecordRaw>(routes: T[], lastRoutes?: RouteRecordRaw[] | undefined): void;
    changeInitializeRoutes(): void;
    getRouteBaseInfo(path: string, basePath?: string): RouteRecordRaw;
    getRouteConfig(path: string): ModuleConfig | undefined;
    getPageSetting(path: string): RouteRecordRaw | undefined;
    findMenuIndexPath(values: {
        name: string;
        modulePath?: string;
    }): number[] | undefined;
    generateRoutes<T extends RouteRecordRaw>(routes?: T[], root?: boolean): string;
}
