import { PureComponent, ReactNode, RefObject } from 'react'; export interface ReactResizeDetectorDimensions { height?: number; width?: number; } interface ChildFunctionProps extends ReactResizeDetectorDimensions { targetRef?: RefObject; } export interface Props { onResize?: (width?: number, height?: number) => void; handleHeight?: boolean; handleWidth?: boolean; skipOnMount?: boolean; refreshMode?: 'throttle' | 'debounce'; refreshRate?: number; refreshOptions?: { leading?: boolean; trailing?: boolean; }; observerOptions?: ResizeObserverOptions; } export interface ComponentsProps extends Props { querySelector?: string; nodeType?: keyof JSX.IntrinsicElements; targetDomEl?: HTMLElement; targetRef?: RefObject; render?: (props: ReactResizeDetectorDimensions) => ReactNode; children?: ReactNode | ((props: ChildFunctionProps) => ReactNode); } declare class ResizeDetector extends PureComponent { skipOnMount: boolean | undefined; targetRef: any; observableElement: any; resizeHandler: any; resizeObserver: any; constructor(props: ComponentsProps); componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; cancelHandler: () => void; attachObserver: () => void; getElement: () => Element | Text | null; createResizeHandler: ResizeObserverCallback; getRenderType: () => string; render(): any; } export default ResizeDetector;