import { TabItem, MenusType } from '../../../propTypes'; /** * 获取菜单实际用于路由/签页的路径 * 约定优先使用 redirectUrl,其次回退 url */ export declare const getMenuRoute: (menuItem: MenusType) => string; /** * 根据菜单项生成TabItem */ export declare const createTabFromMenu: (menuItem: MenusType, index?: number) => TabItem; /** * 生成唯一的tab ID */ export declare const generateTabId: (menuItem: MenusType, existingIds: string[]) => string; /** * 检查菜单项是否应该外部跳转 */ export declare const shouldOpenExternal: (menuItem: MenusType, target?: string) => boolean; /** * 处理外部跳转 */ export declare const handleExternalOpen: (menuItem: MenusType) => void; /** * 检查是否超出最大标签页限制 * @param currentTabs 当前标签页列表 * @param maxTabs 最大标签页数量,如果为 undefined 或 null,表示无限制 * @returns 如果超出限制返回 true,否则返回 false */ export declare const checkTabLimit: (currentTabs: TabItem[], maxTabs?: number | null) => boolean; /** * 移除最旧的标签页(根据访问时间或创建时间) */ export declare const removeOldestTab: (tabs: TabItem[]) => TabItem[]; /** * 获取右侧标签页 */ export declare const getRightTabs: (tabs: TabItem[], currentTabId: string) => TabItem[]; /** * 扁平化菜单数据 */ export declare const flattenMenuData: (menus?: MenusType[]) => MenusType[]; /** * 判断菜单项是否为最后一级(叶子节点) * 只有当菜单项没有子菜单或子菜单为空时,才认为是叶子节点 */ export declare const isLeafMenuItem: (menuItem: MenusType) => boolean; /** * 判断菜单项是否为根节点 */ export declare const isRootMenuItem: (menuItem: MenusType) => boolean; /** * 判断菜单项是否可以在 Tabs 模式下打开 * 规则:只有叶子节点(无 children)才可打开 */ export declare const canOpenAsTab: (menuItem: MenusType) => boolean;