import { ComponentType, PropsWithChildren, RefAttributes } from 'react';
import { Placement, Strategy } from '@floating-ui/react';
export type ToggleMenuButtonProps<E extends HTMLElement = HTMLButtonElement> = {
    menuShown: boolean;
} & RefAttributes<E>;
export declare enum MenuVisualType {
    PORTAL = "portal",
    MENU = "menu"
}
export type MenuToggleProps<E extends HTMLElement> = PropsWithChildren<{
    ToggleButton: ComponentType<ToggleMenuButtonProps<E>>;
    placement?: Placement;
    strategy?: Strategy;
    offset?: number;
    visualType?: MenuVisualType;
    onToggle?: (menuShown: boolean) => void;
}>;
export type MenuContextValue = {
    close?: () => void;
};
/**
 * Access to the closes MenuContext.
 */
export declare const useMenuContext: () => MenuContextValue;
export declare const MenuToggle: <E extends HTMLElement>({ ToggleButton, placement, strategy, offset, visualType, children, onToggle, }: MenuToggleProps<E>) => import("react/jsx-runtime").JSX.Element;
