/**
 * Copyright IBM Corp. 2016, 2026
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import React, { type ElementType, type ReactNode, type Ref } from 'react';
import { type MenuDirection, type MenuOffset } from '../../internal/FloatingMenu';
import { IconButtonProps } from '../IconButton';
/**
 * Calculates the offset for the floating menu.
 *
 * @param menuBody - The menu body with the menu arrow.
 * @param direction - The floating menu direction.
 * @returns The adjustment of the floating menu position, upon the position of
 *          the menu arrow.
 */
export declare const getMenuOffset: MenuOffset;
export interface OverflowMenuProps extends Omit<IconButtonProps, 'type' | 'aria-haspopup' | 'aria-expanded' | 'aria-controls' | 'className' | 'onClick' | 'id' | 'ref' | 'size' | 'label' | 'kind'> {
    /**
     * Specify a label to be read by screen readers on the container node
     */
    ['aria-label']?: string;
    /**
     * Specify a label to be read by screen readers on the container note.
     *
     * @deprecated - Use `aria-label` instead.
     */
    ariaLabel?: string;
    /**
     * The child nodes.
     */
    children: ReactNode;
    /**
     * The CSS class names.
     */
    className?: string;
    /**
     * The menu direction.
     */
    direction?: MenuDirection;
    /**
     * `true` if the menu alignment should be flipped.
     */
    flipped?: boolean;
    /**
     * @deprecated Tab key is handled with event handler so no need for focus trap.
     * Enable or disable focus trap behavior
     */
    focusTrap?: boolean;
    /**
     * The CSS class for the icon.
     */
    iconClass?: string;
    /**
     * The element ID.
     */
    id?: string;
    /**
     * The icon description.
     */
    iconDescription?: string;
    /**
     * `true` to use the light version. For use on $ui-01 backgrounds only.
     * Don't use this to make OverflowMenu background color same as container background color.
     */
    light?: boolean;
    /**
     * The adjustment in position applied to the floating menu.
     */
    menuOffset?: MenuOffset;
    /**
     * The adjustment in position applied to the floating menu when flipped.
     */
    menuOffsetFlip?: MenuOffset;
    /**
     * The class to apply to the menu options
     */
    menuOptionsClass?: string;
    /**
     * The event handler for the `click` event.
     */
    onClick?: (evt?: any) => void;
    /**
     * Function called when menu is closed
     */
    onClose?: () => void;
    /**
     * Function called when menu is opened
     */
    onOpen?: () => void;
    /**
     * `true` if the menu should be open.
     */
    open?: boolean;
    /**
     * A component used to render an icon.
     */
    renderIcon?: ElementType;
    /**
     * Specify a CSS selector that matches the DOM element that should
     * be focused when the OverflowMenu opens
     */
    selectorPrimaryFocus?: string;
    /**
     * Specify the size of the OverflowMenu. Currently supports either `xs`, `sm`, `md` (default) or `lg` as an option.
     */
    size?: 'xs' | 'sm' | 'md' | 'lg';
    /**
     * The ref to the overflow menu's trigger button element.
     * @deprecated Use the standard React `ref` prop instead.
     */
    innerRef?: Ref<any>;
}
export declare const OverflowMenu: React.ForwardRefExoticComponent<OverflowMenuProps & React.RefAttributes<HTMLButtonElement>>;
export default OverflowMenu;
