import * as React from 'react'; export { rovingTabIndex } from './roving-tab-stop.cjs'; /** @internal Which arrow keys move focus within a roving-focus group: horizontal, vertical, or `'both'` (all four arrows). */ export type Orientation = 'horizontal' | 'vertical' | 'both'; interface UseRovingFocusOptions { orientation?: Orientation | undefined; loop?: boolean | undefined; itemSelector: string; scopeSelector?: string | undefined; typeahead?: boolean | undefined; includeDisabled?: boolean | undefined; } /** * @internal Keeps a roving-tabindex group's tab stop on an item that actually exists, checking whether any item claims the current id rather than just whether one is set; runs on every render with no dependency array, since an item can disappear without `currentId` changing. * * @param rootRef the group element owning the items * @param itemSelector selector matching the group's items * @param idAttribute attribute on each item holding its id * @param currentId the id currently holding the tab stop * @param setCurrentId hands the tab stop to another item */ export declare function useRovingTabStop(rootRef: React.RefObject, itemSelector: string, idAttribute: string, currentId: string | null, setCurrentId: (id: string) => void): void; /** DOM-driven roving focus for composite widgets (tabs, radio groups, menus, toolbars), returning a keydown handler to spread on the group element; items are discovered by selector, no registration plumbing needed. */ export declare function useRovingFocus({ orientation, loop, itemSelector, scopeSelector, typeahead, includeDisabled, }: UseRovingFocusOptions): (event: React.KeyboardEvent) => void;