///
export declare type ScopeElement = HTMLElement | React.RefObject | React.MutableRefObject;
export interface SelectorOptions {
selector?: string;
extendSelector?: string;
}
export interface UseArrowNavProps {
/** Completely disables any activity of the hook */
disabled?: boolean;
/** Called on each arrow keydown (before focus move) */
onKeyDown?: (event: KeyboardEvent, data: {
/** Returns currently active element */
active?: HTMLElement;
/** Returns element to be focused in the next moment */
next?: HTMLElement;
/** May be called conditionaly to override default behavior of focus move */
disableOnce?: () => void;
}) => void;
/** Povides control over focusable elements */
focusableSelector?: SelectorOptions;
scope?: ScopeElement | ScopeElement[];
handleX?: boolean;
handleY?: boolean;
loop?: boolean;
tabIndexGroup?: boolean;
}
export declare const useArrowNav: (props?: UseArrowNavProps) => React.RefObject;