/**
 * 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;
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, };
