import { RefObject } from 'react'; import { FocusableElement } from 'tabbable'; /** * Options for the useKeyboardFocusables hook */ type OptionProps = { /** * Disable mutation observer */ observeChange: false; } | { /** * Enable mutation observer with optional configuration */ observeChange: true; /** * Observe attribute changes */ attributes?: boolean; /** * Observe text content changes */ characterData?: boolean; /** * Observe child element changes */ childList?: boolean; /** * Observe descendant changes */ subtree?: boolean; }; /** * Custom hook for tracking keyboard focusable elements within a container. * * Features: * - Tracks all keyboard focusable elements within a target container * - Supports both ref objects and direct element references * - Optional mutation observer for real-time updates * - Debounced updates to prevent excessive re-renders * - Configurable mutation observer options * - Manual update function for immediate refresh * - Uses tabbable library for accurate focusable detection * - Automatically cleans up mutation observer * * @param element - Target element or ref to monitor for focusable elements * @param options - Configuration options for mutation observer behavior * @returns Object containing current focusable elements and update function */ export declare const useKeyboardFocusables: (element: RefObject | HTMLElement | undefined, options?: OptionProps) => { focusables: FocusableElement[] | null; }; export {};