///
import noop from '../utils/noop';
import CommonMenu from './CommonMenu';
import MenuItem from './MenuItem';
import SubMenu from './SubMenu';
export interface IMenuBaseProps {
mode?: 'inline' | 'pop';
onClick?: (e: React.MouseEvent, key: string) => void;
onSubMenuClick?: (id?: string | number) => void;
style?: React.CSSProperties;
className?: string;
}
export interface IMenuInlineProps extends IMenuBaseProps {
mode: 'inline';
defaultExpandKeys?: string[];
defaultExpandedKeys?: string[];
defaultSelectedKey?: string;
expandedKeys?: string[];
onExpandChange?: (expanded?: string[]) => void;
selectedKey?: string;
onSelectChange?: (selected: string) => void;
inlineIndent?: number;
}
export interface IMenuPopProps extends IMenuBaseProps {
mode: 'pop';
}
export declare type IMenuProps = IMenuPopProps | IMenuInlineProps;
interface IMenuState {
selectedKey?: string;
expandedKeys?: string[];
prevSelectedKeyProp?: string;
prevExpandedKeysProp?: string[];
}
export declare class Menu extends CommonMenu {
static MenuItem: typeof MenuItem;
static SubMenu: typeof SubMenu;
static defaultProps: {
onClick: typeof noop;
mode: string;
inlineIndent: number;
defaultExpandKeys: any[];
onSubMenuClick: typeof noop;
};
constructor(props: IMenuProps);
static getDerivedStateFromProps(props: IMenuProps, state: IMenuState): Partial;
toggleExpand: (key: string) => void;
handleSelect: (key: string) => void;
handleClick: (e: React.MouseEvent, key: string) => void;
renderMenuItem: (component: any, index: number) => import("react").DetailedReactHTMLElement;
render(): JSX.Element;
}
export default Menu;