import React, { ReactElement } from "react";
import { DialogPosition } from "../../../constants/positions";
import Icon from "../../../components/Icon/Icon";
import { SubIcon, L3Component, L3ComponentProps } from "../../../types";
import { IconType } from "../../Icon/IconConstants";
import { TooltipPosition } from "./MenuItemConstants";
import { CloseMenuOption } from "../Menu/MenuConstants";
import "./MenuItem.scss";
export interface MenuItemProps extends L3ComponentProps {
    title?: string;
    label?: string;
    description?: string;
    icon?: SubIcon;
    iconType?: IconType;
    iconBackgroundColor?: string;
    disabled?: boolean;
    disableReason?: string;
    selected?: boolean;
    onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;
    activeItemIndex?: number;
    setActiveItemIndex?: (index: number) => void;
    index?: number;
    key?: string;
    isParentMenuVisible?: boolean;
    resetOpenSubMenuIndex?: () => void;
    hasOpenSubMenu?: boolean;
    setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;
    useDocumentEventListeners?: boolean;
    tooltipContent?: string;
    tooltipPosition?: TooltipPosition;
    tooltipShowDelay?: number;
    onMouseLeave?: (event: React.MouseEvent) => void;
    onMouseEnter?: (event: React.MouseEvent) => void;
    /** Backward compatibility for props naming **/
    classname?: string;
    menuId?: string;
    isInitialSelectedState?: boolean;
    shouldScrollMenu?: boolean;
    closeMenu?: (option: CloseMenuOption) => void;
    menuRef?: React.RefObject<HTMLElement>;
    children?: ReactElement | ReactElement[];
    collapsed?: boolean;
    active?: boolean;
}
declare const MenuItem: L3Component<MenuItemProps> & {
    iconType?: typeof Icon.type;
    tooltipPositions?: typeof DialogPosition;
    isSelectable?: boolean;
    isMenuChild?: boolean;
};
export default MenuItem;
