import { Component } from 'react'; import { FocusableState } from './props'; import type { FocusableProps } from './props'; type HTMLElementWithType = HTMLElement & { type?: keyof typeof Focusable.inputTypes; }; /** --- category: components/utilities --- **/ declare class Focusable extends Component { static propTypes: import("@instructure/shared-types").PropValidators (import("react").ReactElement | import("react").ReactComponentElement | import("react").DOMElement | import("react").CElement | import("react").FunctionComponentElement) & { ref?: (args: any[]) => unknown; }; render?: (opts: import("./props").FocusableRenderOptions) => (import("react").ReactElement | import("react").ReactComponentElement | import("react").DOMElement | import("react").CElement | import("react").FunctionComponentElement) & { ref?: (args: any[]) => unknown; }; }>; static allowedProps: readonly (keyof { children?: (opts: import("./props").FocusableRenderOptions) => (import("react").ReactElement | import("react").ReactComponentElement | import("react").DOMElement | import("react").CElement | import("react").FunctionComponentElement) & { ref?: (args: any[]) => unknown; }; render?: (opts: import("./props").FocusableRenderOptions) => (import("react").ReactElement | import("react").ReactComponentElement | import("react").DOMElement | import("react").CElement | import("react").FunctionComponentElement) & { ref?: (args: any[]) => unknown; }; })[]; static defaultProps: { children: null; }; static inputTypes: { text: boolean; search: boolean; url: boolean; tel: boolean; email: boolean; password: boolean; number: boolean; date: boolean; month: boolean; week: boolean; time: boolean; datetime: boolean; 'datetime-local': boolean; }; _focusListener: { remove(): void; } | null; _blurListener: { remove(): void; } | null; _inputModeListener: { isKeyboardMode(): boolean; remove(): void; } | null; state: FocusableState; componentDidMount(): void; getSnapshotBeforeUpdate(prevProps: FocusableProps): null; componentDidUpdate(): void; componentWillUnmount(): void; addFocusableListeners(focused: boolean, focusable?: HTMLElement): void; removeFocusableListeners(): void; removeFocusListener(): void; removeBlurListener(): void; handleInputModeChange: () => void; handleFocus: () => void; handleBlur: () => void; get focused(): boolean; get focusable(): HTMLElement | undefined; get focusVisible(): boolean; focus(): void; ref: React.ReactInstance | null; attachRef: (el: React.ReactInstance | null) => void; isFocusVisible(focused: boolean, focusable?: HTMLElementWithType): boolean; render(): import("react").ReactElement> | null; } export default Focusable; export { Focusable }; //# sourceMappingURL=index.d.ts.map