import * as React from 'react';
import type { TextDirection } from '../direction-provider/DirectionContext.js';
export interface Dimensions {
    width: number;
    height: number;
}
export declare const ARROW_UP = "ArrowUp";
export declare const ARROW_DOWN = "ArrowDown";
export declare const ARROW_LEFT = "ArrowLeft";
export declare const ARROW_RIGHT = "ArrowRight";
export declare const HOME = "Home";
export declare const END = "End";
export declare const HORIZONTAL_KEYS: string[];
export declare const HORIZONTAL_KEYS_WITH_EXTRA_KEYS: string[];
export declare const VERTICAL_KEYS: string[];
export declare const VERTICAL_KEYS_WITH_EXTRA_KEYS: string[];
export declare const ARROW_KEYS: string[];
export declare const ALL_KEYS: string[];
export declare function isDifferentRow(index: number, cols: number, prevRow: number): boolean;
export declare function isIndexOutOfBounds(listRef: React.MutableRefObject<Array<HTMLElement | null>>, index: number): boolean;
export declare function getMinIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, disabledIndices: Array<number> | undefined): number;
export declare function getMaxIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, disabledIndices: Array<number> | undefined): number;
export declare function findNonDisabledIndex(listRef: React.MutableRefObject<Array<HTMLElement | null>>, { startingIndex, decrement, disabledIndices, amount, }?: {
    startingIndex?: number;
    decrement?: boolean;
    disabledIndices?: Array<number>;
    amount?: number;
}): number;
export declare function getGridNavigatedIndex(elementsRef: React.MutableRefObject<Array<HTMLElement | null>>, { event, orientation, loop, cols, disabledIndices, minIndex, maxIndex, prevIndex, rtl, stopEvent: stop, }: {
    event: React.KeyboardEvent;
    orientation: 'horizontal' | 'vertical' | 'both';
    loop: boolean;
    cols: number;
    disabledIndices: Array<number> | undefined;
    minIndex: number;
    maxIndex: number;
    prevIndex: number;
    rtl: boolean;
    stopEvent?: boolean;
}): number;
/** For each cell index, gets the item index that occupies that cell */
export declare function buildCellMap(sizes: Array<{
    width: number;
    height: number;
}>, cols: number, dense: boolean): (number | undefined)[];
/** Gets cell index of an item's corner or -1 when index is -1. */
export declare function getCellIndexOfCorner(index: number, sizes: Dimensions[], cellMap: (number | undefined)[], cols: number, corner: 'tl' | 'tr' | 'bl' | 'br'): number;
/** Gets all cell indices that correspond to the specified indices */
export declare function getCellIndices(indices: (number | undefined)[], cellMap: (number | undefined)[]): number[];
export declare function isDisabled(list: Array<HTMLElement | null>, index: number, disabledIndices?: Array<number>): boolean;
export declare function getTextDirection(element: HTMLElement): TextDirection;
