import { box, direction } from '@synnaxlabs/x';
import { RefCallback } from 'react';
export interface UseResizeOpts {
    /**
     * A list of triggers that should cause the callback to be called.
     */
    triggers?: direction.Direction[];
    /**  Debounce the resize event by this many milliseconds.
    Useful for preventing expensive renders until resizing has stopped. */
    debounce?: number;
    /** If false, the hook wont observe the element. Defaults to true. */
    enabled?: boolean;
}
export type UseResizeHandler = <E extends HTMLElement>(box: box.Box, el: E) => void;
/**
 * Tracks the dimensions of an element and executes a callback when they change.
 *
 * @param onResize - A callback that receives a box representing the dimensions and
 * position of the element.
 * @param opts -  Options for the hook. See UseResizeOpts.
 *
 * @returns a ref callback to attach to the desire element.
 */
export declare const useResize: <E extends HTMLElement>(onResize: UseResizeHandler, opts?: UseResizeOpts) => RefCallback<E>;
//# sourceMappingURL=useResize.d.ts.map