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<RcMenuProps, 'items'> {
    /**
     * 菜单类型，垂直或内嵌，默认内嵌
     */
    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<SetStateAction<string[]>>;
}
export declare const VerticalContext: React.Context<VerticalContextProps>;
declare const Nav: ({ className, items, inlineCollapsed, mode, inlineIndent, subMenuItemRender, menuItemRender, ...rest }: NavProps & Override<HTMLAttributes<HTMLDivElement>, NavProps>) => JSX.Element;
export default Nav;
