import type { Ref } from 'react';
import type { DebounceSettings, ResizeObserverPolyfill } from '../types';
export type ParentSizeState = {
    width: number;
    height: number;
    top: number;
    left: number;
};
export type UseParentSizeConfig<T extends HTMLElement = HTMLDivElement> = {
    /** Initial size before measuring the parent. */
    initialSize?: Partial<ParentSizeState>;
    /** Optionally inject a ResizeObserver polyfill, else this *must* be globally available. */
    resizeObserverPolyfill?: ResizeObserverPolyfill;
    /** Optional dimensions provided won't trigger a state change when changed. */
    ignoreDimensions?: keyof ParentSizeState | (keyof ParentSizeState)[];
    /** Optional external ref that also receives the measured DOM node. */
    externalRef?: Ref<T>;
} & DebounceSettings;
export type UseParentSizeResult<T extends HTMLElement = HTMLDivElement> = ParentSizeState & {
    parentRef: (node: T | null) => void;
    node: T | null;
    resize: (state: ParentSizeState) => void;
};
export default function useParentSize<T extends HTMLElement = HTMLDivElement>({ initialSize, debounceTime, ignoreDimensions, enableDebounceLeadingCall, resizeObserverPolyfill, externalRef, }?: UseParentSizeConfig<T>): UseParentSizeResult<T>;
//# sourceMappingURL=useParentSize.d.ts.map