import React, { AnchorHTMLAttributes, FocusEvent, HTMLAttributes, Ref, FC, ReactNode } from 'react';
import { AutoAlignProps } from './AutoAlign';
import { Bivariant } from './typeUtils';
/**
*
*/
type EventKey = string | number;
/**
*
*/
export type DropdownMenuHeaderProps = {
className?: string;
divider?: 'top' | 'bottom';
children?: ReactNode;
};
/**
*
*/
export declare const DropdownMenuHeader: FC;
export declare const MenuHeader: React.FC;
/**
*
*/
type DropdownMenuHandler = {
onMenuSelect?: Bivariant<(eventKey: EventKey) => void>;
onMenuFocus?: (e: FocusEvent) => void;
onMenuBlur?: (e: FocusEvent) => void;
};
export declare const DropdownMenuHandlerContext: React.Context;
type OpenSubmenuContext = {
openSubmenuKeys: {
[key: string]: {
isOpen: boolean;
level: number;
} | undefined;
};
handleSubmenuOpen: (key: string, level: number) => void;
};
export declare const OpenSubmenuContext: React.Context;
/**
*
*/
export type DropdownMenuItemProps = {
label?: string;
eventKey?: string | number;
icon?: string;
iconRight?: string;
disabled?: boolean;
divider?: 'top' | 'bottom';
selected?: boolean;
onClick?: (e: React.SyntheticEvent) => void;
submenu?: ReactNode;
submenuItems?: Array<{
key: string | number;
} & DropdownMenuItemProps>;
level?: number;
} & Omit, 'onClick'>;
/**
*
*/
export declare const DropdownMenuItem: FC;
export declare const MenuItem: React.FC;
/**
*
*/
export type DropdownSubmenuProps = {
label?: string;
align?: 'left' | 'right';
children?: ReactNode;
};
/**
*
*/
export declare const DropdownSubmenu: FC;
/**
*
*/
export type DropdownMenuProps = HTMLAttributes & {
size?: 'small' | 'medium' | 'large';
header?: string;
nubbin?: 'top' | 'top left' | 'top right' | 'bottom' | 'bottom left' | 'bottom right' | 'auto';
nubbinTop?: boolean;
hoverPopup?: boolean;
onMenuSelect?: Bivariant<(eventKey: EventKey) => void>;
onMenuClose?: () => void;
elementRef?: Ref;
};
/**
*
*/
export declare const DropdownMenu: FC>;
export {};