import React, { ComponentProps, PureComponent } from 'react';
export interface ResizeReporterProps extends ComponentProps<'div'> {
    /** Report the init rendered size. Default false.  */
    reportInit?: boolean;
    /** Debounce time in millisecond. Default no debounce. */
    debounce?: number;
    /** Fires when width or height changes. */
    onSizeChanged?: (width: number, height: number, rect: DOMRect) => void;
    /** Fires only when width changes. */
    onWidthChanged?: (width: number, rect: DOMRect) => void;
    /** Fires only when height changes. */
    onHeightChanged?: (height: number, rect: DOMRect) => void;
}
/**
 * Scroll event based resize detector
 */
export declare class ResizeReporter extends PureComponent<ResizeReporterProps> {
    containerRef: React.RefObject<HTMLDivElement>;
    lastWidth: number;
    lastHeight: number;
    _debounceTicket: number | null | undefined;
    _setScrollPositionTicket: number | null | undefined;
    resetPosition: (container: HTMLDivElement, newWidth: number, newHeight: number) => void;
    checkSize: () => void;
    onScroll: () => void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export default ResizeReporter;
