import { ItemType } from 'antd/lib/menu/hooks/useItems';
import React from 'react';
import { IntlShape } from 'react-intl/lib/src/types';
import { HandleMenuProps, RouterMenu, LayoutModel } from './interface';
/**
 *
 * 1. 对路由权限进行判定
 * 2. 保存每个子集对应的父级
 * 3. 父级链
 */
export declare class HandleMenu {
    authMenus: any[];
    /**所有直接渲染的父级菜单*/
    parentMenu: RouterMenu[];
    parentflatMenu: RouterMenu[];
    /**子集key对应的父级key*/
    childParent: Map<string, string>;
    /**key对应子集数据*/
    childMenu: Map<string, RouterMenu[]>;
    flatMenu: RouterMenu[];
    flatAllMenu: RouterMenu[];
    /**语言转换*/
    intlLanguage?: IntlShape;
    /**路由数据*/
    routers: RouterMenu[];
    /**处理权限后的菜单**/
    checkAuthMenus: RouterMenu[];
    /**当前菜单对应的父级菜单*/
    pathToParentMenus: Map<string, RouterMenu[]>;
    /**是否进行权限校验*/
    isCheckAuth?: boolean;
    /**是否使用*/
    isTOPLEFT?: boolean;
    /**记录上次父级菜单*/
    preParentPath?: string;
    /**记录上次菜单*/
    prePath?: string;
    constructor(props: HandleMenuProps);
    /**验证权限*/
    checkAuth(path: string): boolean;
    /**
     * 1. 权限处理
     *    1. 子集全部没权限，父级也没有权限
     *    2. 子集存在权限，父级也存在权限
     *    3. 没有权限的自动把 path 转换成 403
     * */
    initAuth(routers: RouterMenu[], isParent?: boolean): RouterMenu[];
    /**
     * 2. 国际化翻译
     * */
    initLanguage(menus?: RouterMenu[], parentLocale?: string): void;
    /**
     * 3. 扁平化数据
     */
    initFlat(menus?: RouterMenu[], parentMenu?: RouterMenu[]): void;
    /**
     * 4. 处理数据,用于顶部和侧边菜单展示联动
     * */
    handelSiderMenu(menus?: RouterMenu[], isSider?: boolean, parentPath?: string): void;
    /**
     * 5. 获取顶部渲染数据
     * */
    getTopMenus(menus?: RouterMenu[], index?: number): RouterMenu[];
    /**
     * 6. 获取导航面包屑
     * */
    getBreadcrumb(path: string): RouterMenu[];
    /**7. 根据当前路由地址取父级key，再使用父级key进行取渲染内容,如果不是顶部渲染方式，则直接默认*/
    getSiderMenus(path: string): RouterMenu[];
    /**8. 获取父级path*/
    getParentPath(path: string): string;
    getCheckAuthAll(path: string): boolean;
    /**9. 获取跳转地址*/
    getToPath(path: string): any;
    /**10 更加path地址获取当前配置数据*/
    getPathItem(path: string): RouterMenu | undefined;
}
export declare function isUrl(path: string): boolean;
export declare function getIcon(icon: string): React.JSX.Element;
/**获取菜单渲染**/
export declare const getSiderMenus: (menus?: RouterMenu[], isSider?: boolean) => ItemType[];
export declare const defaultThemeColors: (layout?: LayoutModel) => any;
