import type { Router, RouteRecordRaw, RouteLocationNormalizedLoaded } from 'vue-router'; import type { LayoutMenuItem, LayoutTabItem } from '../layout/src/types'; declare module 'vue-router' { interface RouteMeta extends ExtraRouteInfoMetaConfig, CustomMetaConfig { } } export interface ExtraRouteInfoMetaConfig { rootRoute?: RouteRecordRaw; parentRouteName?: string; childRoutes?: RouteRecordRaw[]; } export interface CustomMetaConfig { activeMenu?: LayoutMenuItem; tabLabel?: string; tabName?: string; tabCloseable?: boolean; } export interface MenuConfig { sideMenus?: LayoutMenuItem[]; topMenus?: LayoutMenuItem[]; menuIndexKey?: string; menuTitleKey?: string; menuChildrenKey?: string; } export interface UseLayoutWithRouterParams { router: Router; menuConfig: MenuConfig; keepAlive: boolean; } export type SideMenusMap = Record; export type RoutesMap = Record; export declare function injectRouteRelation(routesMap: RoutesMap, route: RouteRecordRaw): RouteRecordRaw; export declare function extraRouteInfo(routes: RouteRecordRaw[]): void; export declare function getRouteNamesFromTab(tabs: LayoutTabItem[], routesMap: RoutesMap): string[]; export declare function getTabConfig(route: RouteRecordRaw | RouteLocationNormalizedLoaded): { tabLabel: string | undefined; tabCloseable: boolean; }; export declare function useLayoutWithRouter({ router, menuConfig, keepAlive, }: UseLayoutWithRouterParams): { defaultTabs: LayoutTabItem[]; activeMenuIndex: import("vue").Ref; activeTab: import("vue").Ref; keepAliveRouteNames: import("vue").Ref; clearRemoveTabsKeepAlive: (removeTabsConfig: LayoutTabItem[]) => void; };