import "../../CommonImports"; import "../../Core/core.css"; import * as React from "react"; import { IFocusWithin, IFocusWithinProps } from "./FocusWithin.Props"; export declare class FocusWithin extends React.Component implements IFocusWithin { static defaultProps: { updateStateOnFocusChange: boolean; }; private parentFocusWithin; private blurTimeout; private focusCount; private focus; render(): JSX.Element; /** * componentWillUnmount is used to cleanup the component state. * * @NOTE: The main thing we need to deal with is when this component is unmounted * while it has focus. We need to get this FocusWithin and all of its parents state * updated since focus will move directly to the body without a blur event. */ componentWillUnmount(): void; /** * hasFocus returns true if the focus is contained within the focus component * hierarchy. This includes portals, the element may or may not * be a direct descendant of the focus component in the DOM structure. */ hasFocus(): boolean; /** * onBlur method that should be attached to the onBlur handler of the * continers root element. */ private onBlur; /** * onFocus method that should be attached to the onFocus handler of the * continer's root element. */ private onFocus; /** * When the focusWithin unmounts we need to determine if we currently have focus. * If we do, focus will be moved silently to the body. We need to cleanup the * focusWithin's that are affected by this silent change. */ private unmountWithFocus; }