type FocusableElement = HTMLElement | SVGElement; export type CheckOptions = { displayCheck?: | 'full' | 'full-native' | 'legacy-full' | 'non-zero-area' | 'none'; getShadowRoot?: | boolean // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents -- there is no overlap here; the function can return true/false/undefined | ((node: FocusableElement) => ShadowRoot | boolean | undefined); }; export type TabbableOptions = { includeContainer?: boolean; }; export declare function tabbable( container: Element, options?: TabbableOptions & CheckOptions ): FocusableElement[]; export declare function focusable( container: Element, options?: TabbableOptions & CheckOptions ): FocusableElement[]; export declare function isTabbable( node: Element, options?: CheckOptions ): boolean; export declare function isFocusable( node: Element, options?: CheckOptions ): boolean; export declare function getTabIndex(node: Element): number;