import React, { Dispatch, HTMLAttributes, SetStateAction } from 'react';
import type { MenuProps as RcMenuProps } from 'rc-menu';
import { Override } from '../../type';
import { ItemType, NavItemProps, SubMenuProps } from './type';
import { SelectEventHandler } from 'rc-menu/lib/interface';
export interface NavProps extends Omit {
/**
* 菜单类型,垂直或内嵌,默认内嵌
*/
mode?: 'vertical' | 'inline';
/**
* 菜单项
*/
items?: ItemType[];
/**
* inline 时菜单是否收起状态
*/
inlineCollapsed?: boolean;
/**
* 每一级缩进量
*/
inlineIndent?: number;
/**
* 初始展开的 SubMenu 菜单项 key 数组
*/
defaultOpenKeys?: string[];
/**
* 初始选中的菜单项 key 数组
*/
defaultSelectedKeys?: string[];
/**
* SubMenu 展开/关闭的回调
*/
onOpenChange?: (openKeys: string[]) => void;
/**
* 选中每一菜单项的回调, function({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]})
*/
onSelect?: SelectEventHandler;
/**
* 自定义 SubMenu render,可以获取 items 参数传入的数据
*/
subMenuItemRender?: (itemProps: SubMenuProps, dom: JSX.Element) => JSX.Element;
/**
* 自定义 MenuItem render,可以获取 items 参数传入的数据
*/
menuItemRender?: (itemProps: NavItemProps, dom: JSX.Element) => JSX.Element;
}
export interface VerticalContextProps {
openKeys?: string[];
selectedKeys?: string[];
setSelectedKeys?: Dispatch>;
}
export declare const VerticalContext: React.Context;
declare const Nav: ({ className, items, inlineCollapsed, mode, inlineIndent, subMenuItemRender, menuItemRender, ...rest }: NavProps & Override, NavProps>) => JSX.Element;
export default Nav;