import React, { ReactElement } from "react";
import Dialog from "../Dialog/Dialog";
import DialogContentContainer from "../DialogContentContainer/DialogContentContainer";
import { L3Component, L3ComponentProps } from "../../types";
import { MenuButtonComponentPosition, MenuButtonSize } from "./MenuButtonConstants";
import { DialogOffset, DialogPosition } from "../../constants";
import { HideShowEvent } from "../Dialog/consts/dialog-show-hide-event";
import { DialogSize } from "../DialogContentContainer/DialogContentContainerConstants";
import "./MenuButton.scss";
interface MenuButtonProps extends L3ComponentProps {
    /**
     * Backward compatibility for props naming
     */
    componentClassName?: string;
    openDialogComponentClassName?: string;
    /**
     * Receives React Component
     */
    component?: () => JSX.Element;
    size?: MenuButtonSize;
    open?: boolean;
    onClick?: (event: React.MouseEvent) => void;
    zIndex?: number;
    ariaLabel?: string;
    closeDialogOnContentClick?: boolean;
    dialogClassName?: string;
    /**
     * main - `dialogOffset.main` - main axis offset; `dialogOffset.secondary` secondary axis offset
     */
    dialogOffset?: DialogOffset;
    dialogPaddingSize?: DialogSize;
    dialogPosition?: DialogPosition;
    dialogShowTriggerIgnoreClass?: string;
    dialogHideTriggerIgnoreClass?: string;
    /**
     * the container selector in which to append the dialog
     * for examples: "body" , ".my-class", "#my-id"
     */
    dialogContainerSelector?: string;
    /**
     * Dialog Alignment
     */
    startingEdge?: string;
    onMenuShow?: () => void;
    onMenuHide?: () => void;
    /**
     * Text to be displayed after the icon
     */
    text?: string;
    disabled?: boolean;
    tooltipContent?: string;
    /**
     Remove "Tab" key from the hide trigger
     */
    removeTabCloseTrigger?: boolean;
    /**
     is an array with the content of types:
     CLICK, CLICK_OUTSIDE, ESCAPE_KEY, TAB_KEY, MOUSE_ENTER, MOUSE_LEAVE,
     ENTER, MOUSE_DOWN, FOCUS, BLUR, CONTENT_CLICK
     */
    tooltipTriggers?: HideShowEvent | HideShowEvent[];
    /**
     * the disabled/tooltip position of the menu button - one of the MenuButton.dialogPositions
     */
    tooltipPosition?: DialogPosition;
    /**
     * Tooltip Element Wrapper ClassName
     */
    tooltipReferenceClassName?: string;
    /**
     * When the MenuButton is hidden hide the dialog and tooltip as well
     */
    hideWhenReferenceHidden?: boolean;
    /**
     * Backward compatibility for props naming
     */
    disabledReason?: boolean;
    children?: string | ReactElement | ReactElement[];
    /**
     * Specifies whether to render the component before or after the text
     */
    componentPosition?: typeof MenuButtonComponentPosition[keyof typeof MenuButtonComponentPosition];
}
declare const MenuButton: L3Component<MenuButtonProps> & {
    sizes?: MenuButtonSize;
    paddingSizes?: typeof DialogContentContainer.sizes;
    dialogPositions?: typeof DialogPosition;
    hideTriggers?: typeof Dialog.hideShowTriggers;
    componentPositions?: typeof MenuButtonComponentPosition;
};
export default MenuButton;
