/** * Restores the original tabIndex for a cell. */ declare function restoreTabIndex(cell: Element): void; /** * Makes sure only focusable and non-disabled elements are targeted when navigating through the table using keyboard interactions. * Tries to find the most logical focus target inside a cell, by looking for commonly used interactive elements, * falling back to the cell itself if no focusable targets are found. * * If the assumed focus target is not the cell itself, we check if that element is hidden or disabled, and fall back to the cell if so, * since we want to avoid/can't focus hidden/disabled elements. */ declare function findFocusableElementInCell(cell: Element): HTMLElement | null; /** * Checks if an element is visually hidden (but not SR-only). */ declare function isHiddenElement(el: HTMLElement): boolean; /** * Checks if an element is disabled (via aria-disabled, fieldset, or native disabled property). */ declare function isDisabledElement(el: HTMLElement): boolean; /** * Determines the focus target and updates tabIndex if the cell itself should be focused. * Returns null if no focusable target found. */ declare function prepareCellFocus(cell: Element): HTMLElement | null; /** * Applies focus and scroll to an element. */ declare function applyFocusAndScroll(element: HTMLElement): void; /** * Focuses a cell by finding its focusable target and applying focus with scroll. */ declare function focusCell(cell: Element): Element | null; declare function focusCellAndUpdateTabIndex(nextCell: Element, previousCell?: Element | null, { shouldFocus }?: { shouldFocus?: boolean; }): Element | null; export { applyFocusAndScroll, focusCell, focusCellAndUpdateTabIndex, findFocusableElementInCell, isDisabledElement, isHiddenElement, prepareCellFocus, restoreTabIndex, };