import * as React from 'react'; import type { KeyboardNavigation } from '../../a11y/keyboard_navigation/use_keyboard_navigation'; import type { BasicHTMLHandle, DOMElementHandle, FocusHandle } from '../../handle/handle'; type ItemRef = HTMLElement | BasicHTMLHandle; export type FlyoutMenuContextType = FlyoutMenuStore | null; export declare const FlyoutMenuContext: React.Context; export declare class FlyoutMenuStore { open: boolean; itemRefs: Set; closeCurrentlyOpenMenu?: () => void; currentlyOpenMenu: HTMLElement | null; parentStore: FlyoutMenuStore | null; } export declare function useFlyoutMenuStore(): FlyoutMenuContextType; export declare function useFlyoutMenuContext(store?: FlyoutMenuStore): { store: FlyoutMenuStore; Provider: React.Provider; }; export declare function useNavigableRef( { disabled }?: { disabled?: boolean; } ): (el: T) => void; export type KeyboardNavigationExitHandler = ( e: KeyboardEvent, index: number) => void; export declare function useFlyoutMenuKeyboardNavigation( { store, onExit, }: { store: FlyoutMenuStore onExit?: KeyboardNavigationExitHandler } ): KeyboardNavigation; export declare function useFlyoutMenuAutoFocus(open: boolean): { ref: React.RefObject; }; export declare function useFlyoutMenuKeyCombinations( { isNested, isControlled, open, close, moveToFirst, moveToLast, }: { isNested: boolean isControlled: boolean open: () => void close: () => void moveToFirst: () => void moveToLast: () => void } ): { triggerRef: React.Dispatch>; menuRef: React.Dispatch>; }; export declare function useFlyoutMenuHover( { store, isOpen, close, }: { store: FlyoutMenuStore isOpen?: boolean close?: () => void } ): { ref: (el: HTMLElement | null) => void; }; export declare function useNestedTriggerHover( { isOpen, }: { isOpen?: boolean } ): { ref: React.Ref; }; export {};