import { type RefObject } from "react";
import { type NavigationDirection } from "../../typings/navigation.js";
/**
 * @internal
 */
export declare const resolveRef: (ref: string | RefObject<HTMLElement | null> | (() => HTMLElement | null) | null | undefined) => HTMLElement | null;
/**
 * @internal
 */
export declare const defaultFocusCheckFn: (element: HTMLElement) => boolean;
/**
 * @internal
 */
export declare const isNotDocumentFocused: () => boolean;
/**
 * Attempts to find a truly focusable element by trying subsequent elements in the focusable elements collection
 * This is useful when some elements are focusable but not reachable (e.g., out of viewport or disabled)
 *
 * @internal
 */
export declare const focusAndEnsureReachableElement: (initialElement: HTMLElement | undefined, focusableElements: HTMLElement[], direction: NavigationDirection, focusCheckFn?: (element: HTMLElement) => boolean) => void;
/**
 * @internal
 */
export declare const getNextFocusableElement: (initialElement: HTMLElement | undefined, focusableElements: HTMLElement[], direction: NavigationDirection) => HTMLElement | undefined;
/**
 * Programmatically focuses an element that isn't normally in the tab order,
 * then cleans up the tabindex when focus moves away.
 *
 * @internal
 */
export declare const programaticFocusManagement: (element: HTMLElement) => void;
//# sourceMappingURL=utils.d.ts.map