import { Dispatch, HTMLAttributes, SetStateAction } from 'react';
import { ListOrientation } from '../components/List/List.types';
import { ListItemBaseIndex } from '../components/ListItemBase/ListItemBase.types';
type IUseOrientationBasedKeyboardNavigationReturn = {
    keyboardProps: HTMLAttributes<HTMLElement>;
    focusWithinProps: HTMLAttributes<HTMLElement>;
    getContext: () => {
        setCurrentFocus: Dispatch<SetStateAction<ListItemBaseIndex>>;
        shouldFocusOnPress?: boolean;
        shouldItemFocusBeInset?: boolean;
        noLoop?: boolean;
        updateFocusBlocked?: boolean;
        isFocusedWithin?: boolean;
        getCurrentFocus?: () => ListItemBaseIndex;
        addFocusCallback?: (index: ListItemBaseIndex, callback: (focused: boolean, focusBlocked: boolean) => void) => void;
    };
};
export type IUseOrientationBasedKeyboardNavigationProps = {
    listSize: number;
    allItemIndexes?: ListItemBaseIndex[];
    orientation: ListOrientation;
    noLoop?: boolean;
    initialFocus?: ListItemBaseIndex;
    contextProps?: {
        shouldFocusOnPress?: boolean;
        shouldItemFocusBeInset?: boolean;
    };
};
declare const useOrientationBasedKeyboardNavigation: (props: IUseOrientationBasedKeyboardNavigationProps) => IUseOrientationBasedKeyboardNavigationReturn;
export default useOrientationBasedKeyboardNavigation;
