import { FC, ReactNode, MouseEvent, ReactElement, Ref } from "react";
import { Placement } from "@popperjs/core";
interface ElementWithRef<T> extends ReactElement {
    ref?: Ref<T>;
}
export type MenuMode = "normal" | "wider" | "tiny" | "widest";
export interface IMenu {
    /** Menu content */
    children: ReactNode | ((childProps: {
        forceClose: () => void;
    }) => JSX.Element);
    /** On menu element click */
    onMenuClick?: (event: MouseEvent<HTMLElement>) => void;
    /** Handle scroll bar */
    handleScroll?: boolean;
    /** Disable Focus Lock */
    disableFocusLock?: boolean;
    /** Menu width mode */
    mode?: MenuMode;
    /** Should menu be open when it's mounted */
    open?: boolean;
    /** Callback triggered when modal has been opened */
    onOpen?: () => void;
    /** Callback triggered when modal has been closed */
    onClose?: () => void;
    /** Before close callback */
    onBeforeClose?: () => boolean;
    /** Position Menu */
    position?: Placement;
    /** Target element */
    target?: ElementWithRef<Element>;
    className?: string;
    /** Menu classes */
    menuClassName?: string;
    /** Popper class name*/
    popperClassName?: string;
    /** Background style for clickable element after the menu is open (opacity, color, etc...) */
    backgroundElementClass?: string;
    /** Should Window be positioned absolutely */
    windowAbsolutelyPositioned?: boolean;
    /** Popper on open */
    onPopperOpen?: (...args: any[]) => void;
}
export declare const Menu: FC<IMenu>;
export {};
//# sourceMappingURL=Menu.d.ts.map