///
import React from 'react';
import ResizeObserver from 'resize-observer-polyfill';
export declare type ParentSizeProps = {
/** Optional `className` to add to the parent `div` wrapper used for size measurement. */
className?: string;
/** Child render updates upon resize are delayed until `debounceTime` milliseconds _after_ the last resize event is observed. */
debounceTime?: number;
/** Optional flag to toggle leading debounce calls. When set to true this will ensure that the component always renders immediately. (defaults to true) */
enableDebounceLeadingCall?: boolean;
/** Optional `style` object to apply to the parent `div` wrapper used for size measurement. */
parentSizeStyles?: React.CSSProperties;
/** Child render function `({ width, height, top, left, ref, resize }) => ReactNode`. */
children: (args: {
ref: HTMLDivElement | null;
resize: (state: ParentSizeState) => void;
} & ParentSizeState) => React.ReactNode;
};
declare type ParentSizeState = {
width: number;
height: number;
top: number;
left: number;
};
export declare type ParentSizeProvidedProps = ParentSizeState;
export default class ParentSize extends React.Component, ParentSizeState> {
static defaultProps: {
debounceTime: number;
enableDebounceLeadingCall: boolean;
parentSizeStyles: {
width: string;
height: string;
};
};
animationFrameID: number;
resizeObserver: ResizeObserver | undefined;
target: HTMLDivElement | null;
state: {
width: number;
height: number;
top: number;
left: number;
};
componentDidMount(): void;
componentWillUnmount(): void;
resize: import("lodash").DebouncedFunc<({ width, height, top, left }: ParentSizeState) => void>;
setTarget: (ref: HTMLDivElement | null) => void;
render(): JSX.Element;
}
export {};
//# sourceMappingURL=ParentSize.d.ts.map