import { DOMElement } from '../core/DOM/DOMElement'; /** * Defines a {@link ResizeManager} entry */ export interface ResizeManagerEntry { /** {@link HTMLElement} to track */ element: DOMElement['element'] | Element; /** Priority in which to call the callback function */ priority?: number; /** Function to execute when the {@link element} is resized */ callback: () => void | null; } /** * Tiny wrapper around {@link ResizeObserver} used to execute callbacks when given {@link HTMLElement} size changes. */ export declare class ResizeManager { /** Whether we should add elements to our {@link resizeObserver} or not */ shouldWatch: boolean; /** Array of {@link ResizeManagerEntry | entries} */ entries: ResizeManagerEntry[]; /** {@link ResizeObserver} used */ resizeObserver: ResizeObserver | undefined; /** * ResizeManager constructor */ constructor(); /** * Set {@link ResizeManager.shouldWatch | shouldWatch}. * @param shouldWatch - whether to watch or not. */ useObserver(shouldWatch?: boolean): void; /** * Track an {@link HTMLElement} size change and execute a callback function when it happens. * @param entry - {@link ResizeManagerEntry | entry} to watch. */ observe({ element, priority, callback }: ResizeManagerEntry): void; /** * Unobserve an {@link HTMLElement} and remove it from our {@link entries} array. * @param element - {@link HTMLElement} to unobserve. */ unobserve(element: DOMElement['element'] | Element): void; /** * Destroy our {@link ResizeManager}. */ destroy(): void; } /** The {@link ResizeManager} instance. */ export declare const resizeManager: ResizeManager;