import { MutableRefObject } from 'react';
export type UseResizeObserverSize = {
    blockSize: number | undefined;
    inlineSize: number | undefined;
};
export type UseResizeObserverReturn<T extends HTMLElement = HTMLDivElement> = [
    MutableRefObject<T | null>,
    ResizeObserverEntry | null,
    UseResizeObserverSize
];
/**
 * Observes size changes of an element with `ResizeObserver`.
 *
 * Use the returned `ref` for the common case where the hook owns the observed element.
 * Alternatively, pass an existing element via `observedElement` to observe it directly.
 *
 * The third tuple item exposes `inlineSize` and `blockSize` with a `borderBoxSize` first
 * strategy and falls back to `contentRect` when needed.
 *
 * @template T The observed element type. Defaults to `HTMLDivElement`.
 * @param observedElement Optional existing DOM element to observe instead of the returned ref target.
 * @returns `[ref, observerEntry, size]`
 *
 * `ref` is the ref object for the observed element when the hook owns that element.
 * `observerEntry` is `null` until the first resize notification arrives.
 * `size` contains `inlineSize` and `blockSize`, preferring `borderBoxSize` and falling back to `contentRect`.
 */
declare const useResizeObserver: <T extends HTMLElement = HTMLDivElement>(observedElement?: T | null) => UseResizeObserverReturn<T>;
export default useResizeObserver;
