/** * How to use: * ```tsx * const MyComponent: React.FC = () => { * const container = React.useRef(null); * * React.useEffect(() => { * const keydown = (event: KeyboardEvent) => { * if ( * event.key.toLowerCase() !== 'tab' || * !TabManager.isCurrentContainer(containerRef.current) * ) { * return; * } * * event.preventDefault(); * * if (event.shiftKey) { * TabManager.focusPrev(); * } else { * TabManager.focusNext(); * } * }; * * window.document.addEventListener('keydown', keydown); * * return () => { * window.document.addEventListener('keydown', keydown); * } * }, []); * * return ( *
* ... *
* ) * } * ``` */ declare class TabManager { #private; isCurrentContainer(elem: HTMLElement | null): boolean | null; getTopOfTheStack(): { stackElement: { container: HTMLElement; lastIndex: number; lastFocused: HTMLElement | Element | null; }; stackIndex: number; }; registerContainer(container: HTMLElement): void; unregisterContainer(container: HTMLElement, revertBackFocus?: boolean): void; getElementsList(): HTMLElement[]; focusNext(): void; focusPrev(): void; } declare const tabManager: TabManager; export default tabManager;