import React from 'react';
import { NavProps } from '@alicloud/console-components/types/nav';
export interface IItemDescriptor {
    /**
     * 菜单项的Id，在一个导航里不允许出现重复的 key
     */
    key: string;
    /**
     * 菜单项展示的内容
     */
    label?: React.ReactNode;
    /**
     * 是否禁用该菜单项
     */
    disabled?: boolean;
    /**
     * 是否渲染该菜单项
     */
    visible?: boolean;
    /**
     * 菜单项内容的渲染函数，作用与`label`相同，只不过是通过渲染函数的方式来定义内容
     */
    render?: (item: IItemDescriptor) => React.ReactNode;
    /**
     * 子菜单项的声明，传入该prop使得当前item成为一个可折叠节点
     */
    children?: IItemDescriptor[];
    /**
     * 透传给基础组件`<Nav>`或者`<Nav.SubNav>`的props，极少数情况下可能会用到。见【使用结构化声明】demo
     */
    navProps?: any;
}
export interface MenuProps extends NavProps {
    /**
     * 导航场景类型，其中 'primary' 对应应用中的主导航，即应用级别导航；
     * 'secondary' 对应交互设计中的二级导航，通常与 wind-rc-page 配合使用
     */
    type?: 'primary' | 'secondary';
    /**
     * 导航菜单头部标题
     */
    header?: React.ReactNode;
    /**
     * 使用对象数组来声明header数据源
     */
    headers?: string[];
    /**
     * 使用对象数组来声明header数据源
     */
    onSelectHeader?: (value: string) => void;
    /**
     * 使用对象数组来声明菜单项
     */
    dataSource?: IItemDescriptor[];
    /**
     * 使用JSX来声明菜单项
     */
    children?: React.ReactNode;
    /**
     * 当前被选中的菜单项，使用该prop让该组件成为受控组件
     */
    activeKey?: string;
    /**
     * 默认被选中的菜单项
     */
    defaultActiveKey?: string;
    /**
     * 当前展开的SubMenu项，使用该prop让该组件成为受控组件
     */
    openKeys?: string | string[];
    /**
     * 默认展开的SubMenu项
     */
    defaultOpenKeys?: string | string[];
    /**
     * 是否默认展开所有SubMenu项，它的优先级高于defaultOpenKeys
     */
    defaultOpenAll?: boolean;
    /**
     * 是否在左侧菜单里【做一些特殊处理】
     */
    isSildeNav?: boolean;
}
export interface NavType extends React.FC<MenuProps> {
    Item: any;
    SubMenu: any;
}
declare const NavMenu: NavType;
export default NavMenu;
