import React from 'react';
import type { CheckboxProps } from '../Checkbox';
import type { PolymorphicAs } from '../_utils/polymorphic';
import type { ControlNavigationProps, ControlNavigationReturn, DroppableProps, FooterProps, GroupProps, HeaderProps, ItemProps, ItemWithDraggingProps, MenuContext as IMenuContext, MenuItemDefaultElement, MenuItemProps, MenuProps, MenuRef, MenuSearchProps, OptionsProps } from './MenuImperative.types';
export declare const MenuContext: React.Context<IMenuContext>;
export declare function useMenuContext(): IMenuContext;
/**
 * Usefully if navigation is controlled by search input or another input.
 *
 * @param ref MenuImperative ref
 * @param enable True by default. Setting to false will change all props
 * to undefined (except id in menuProps), so navigation controlled by menu itself is restored.
 * @param options.menuId provide id otherwise it will be generated
 * @since 11.5.0
 */
export declare const useMenuImperativeControlNavigation: (ref: React.RefObject<MenuRef>, enable?: boolean, options?: ControlNavigationProps) => ControlNavigationReturn;
export declare const Group: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & GroupProps & React.RefAttributes<HTMLDivElement>>;
export declare function Droppable({ id, children, ...props }: DroppableProps): React.JSX.Element;
export declare namespace Droppable {
    var displayName: string;
}
export declare const Item: PolymorphicAs.ComponentWithForwardedRef<MenuItemProps, MenuItemDefaultElement>;
export declare const CheckboxItem: React.ForwardRefExoticComponent<(React.HTMLAttributes<HTMLDivElement> & (ItemProps | ItemWithDraggingProps) & Omit<CheckboxProps, "checked">) & React.RefAttributes<HTMLDivElement>>;
export declare const Options: React.ForwardRefExoticComponent<OptionsProps & React.RefAttributes<HTMLDivElement>>;
export declare const Search: {
    ({ className, i18nScope, placeholder, onChange: _onChange, value: valueProp, ...props }: MenuSearchProps): React.JSX.Element;
    displayName: string;
};
export declare const Header: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & HeaderProps & React.RefAttributes<HTMLDivElement>>;
export declare const Footer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & FooterProps & React.RefAttributes<HTMLDivElement>>;
/**

   @since 10.19.0

   @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu-imperative--demo)

 */
export declare const MenuImperative: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<MenuRef>> & {
    CheckboxItem: React.ForwardRefExoticComponent<(React.HTMLAttributes<HTMLDivElement> & (ItemProps | ItemWithDraggingProps) & Omit<CheckboxProps, "checked">) & React.RefAttributes<HTMLDivElement>>;
    Droppable: typeof Droppable;
    Footer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & FooterProps & React.RefAttributes<HTMLDivElement>>;
    Group: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & GroupProps & React.RefAttributes<HTMLDivElement>>;
    Header: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & HeaderProps & React.RefAttributes<HTMLDivElement>>;
    Item: PolymorphicAs.ComponentWithForwardedRef<MenuItemProps, MenuItemDefaultElement>;
    Options: React.ForwardRefExoticComponent<OptionsProps & React.RefAttributes<HTMLDivElement>>;
    Search: {
        ({ className, i18nScope, placeholder, onChange: _onChange, value: valueProp, ...props }: MenuSearchProps): React.JSX.Element;
        displayName: string;
    };
};
