import React, { ReactNode } from 'react';
import { CollapseProps } from '../../components/Collapse/hooks';
import { Key, groupChildrenAsDataSource, SubGroupMap, ChildrenMap } from '../../hooks/group';
import LOCALE from './locale/zh_CN';
export interface MenuProps {
    /** 选中的菜单项的key，controlled */
    selectedKeys?: Key[];
    /** 默认选中的菜单项的key，uncontrolled */
    defaultSelectedKeys?: Key[];
    /** 选中变化时的回调 */
    onChange?: (keys: Key[]) => void;
    /** 是否支持多选 */
    multiple?: boolean;
    /** 是否可选 */
    selectable?: boolean;
    /** 是否显示全选，多选时有效 */
    showSelectAll?: boolean;
    /** 是否使用块元素显示模式，去除宽高限制，撑满容器，去除外阴影、border，方便放置在自定义容器中 */
    block?: boolean;
    /** 是否禁用 */
    disabled?: boolean;
    /** collapse 的配置，参考 collapse 组件 */
    collapseProps?: CollapseProps;
    /** 启用虚拟滚动，启用后需要注意所有 item 需提供 key（可不提供 itemKey 和 subMenuKey，会使用 key 作为对应），且 Item key 和 SubMenu 不可重复，目前不支持 collapse 类 SubMenu */
    virtualList?: boolean | {
        simple?: true;
        height?: number;
    };
    /** 自定义样式 */
    customStyle?: {
        /** 菜单的最大高度 */
        maxHeight?: string;
        /** 菜单的最大宽度 */
        maxWidth?: string;
    };
    /** @ignore */
    locale?: typeof LOCALE;
    /**
     * @ignore
     * use for inner usage
     */
    dataSource?: ReturnType<typeof groupChildrenAsDataSource>;
}
export declare const strictGroupChildrenAsDataSource: (children: ReactNode, globalDisabled?: boolean, { itemTag, subGroupTag, itemKeyName, subGroupKeyName }?: {
    itemTag: string;
    subGroupTag?: string | undefined;
    itemKeyName: string;
    subGroupKeyName?: string | undefined;
}) => [Key[], Key[], ReactNode[], SubGroupMap, ChildrenMap];
declare const _default: React.MemoExoticComponent<({ selectedKeys: _selectedKeys, defaultSelectedKeys, onChange: _onChange, selectable, multiple, showSelectAll, disabled, block, locale: _locale, className, children, dataSource, collapseProps, virtualList, ...rest }: MenuProps & Omit<React.HTMLAttributes<HTMLDivElement>, keyof MenuProps>) => JSX.Element>;
export default _default;
