import type { HotInstance } from '../core/types'; /** * Manages the browser's focus in the table to achieve correct behavior for screen readers and * IME editors. */ type FocusMode = 'cell' | 'mixed'; /** * Manages browser focus within the grid to ensure correct behavior for keyboard navigation, * screen readers, and IME text composition. */ export declare class FocusGridManager { #private; /** * Initializes the manager with a reference to the Handsontable instance. */ constructor(hotInstance: HotInstance); /** * Registers hooks to track selection changes and apply focus logic based on the configured focus mode. */ init(): void; /** * Get the current focus mode. * * @returns {'cell' | 'mixed'} */ getFocusMode(): FocusMode; /** * Set the focus mode. * * @param {'cell' | 'mixed'} focusMode The new focus mode. */ setFocusMode(focusMode: FocusMode): void; /** * Get the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA` * element if the focus mode is set to 'mixed'. * * @returns {number} Delay in milliseconds. */ getRefocusDelay(): number; /** * Set the delay after which the focus will change from the cell elements to the active editor's `TEXTAREA` * element if the focus mode is set to 'mixed'. * * @param {number} delay Delay in milliseconds. */ setRefocusDelay(delay: number): void; /** * Set the function to be used as the "refocus element" getter. It should return a focusable HTML element. * * @param {Function} getRefocusElementFunction The refocus element getter. */ setRefocusElementGetter(getRefocusElementFunction: () => HTMLElement): void; /** * Suspend automatic focus management until `resume()` is called. While suspended, an * externally focused element (input, textarea, select, or contenteditable located outside * Handsontable) keeps the browser focus when a programmatic selection is applied, and the * editor textarea is not auto-refocused (`imeFastEdit`). Used by `selectCells()` when * `changeListener` is `false`. Note: an `activeElement` of `` or an `