/** * Check if ResizeObserver is supported natively */ export declare function isResizeObserverSupported(): boolean; /** * Get ResizeObserver (native or polyfill) * * Modern browsers all support ResizeObserver, but this provides a fallback */ export declare function getResizeObserver(): any; /** * Create a resize observer with automatic cleanup * * @example * ```ts * const cleanup = createResizeObserver((entries) => { * for (const entry of entries) { * console.log('Element resized:', entry.target) * } * }, element) * * // Later, clean up * cleanup() * ``` */ export declare function createResizeObserver(callback: ResizeObserverCallback, target: Element | Element[]): () => void; /** * Observe element size changes * * @example * ```ts * const stop = observeElementSize(element, (entry) => { * console.log('Size:', entry.contentRect.width, entry.contentRect.height) * }) * * // Stop observing * stop() * ``` */ export declare function observeElementSize(element: Element, callback: (entry: ResizeObserverEntry) => void): () => void; // Export the native ResizeObserver if available, or the polyfill export declare const ResizeObserver: any; /** * ResizeObserver polyfill (resize-observer-polyfill replacement) * * Note: Modern browsers all support ResizeObserver natively now. * This provides a simple fallback for older browsers. */ export declare interface ResizeObserverSize { readonly inlineSize: number readonly blockSize: number } export declare interface ResizeObserverEntry { readonly target: Element readonly contentRect: DOMRectReadOnly readonly borderBoxSize: ReadonlyArray readonly contentBoxSize: ReadonlyArray readonly devicePixelContentBoxSize: ReadonlyArray } export type ResizeObserverCallback = ( entries: ResizeObserverEntry[], observer: ResizeObserver, ) => void; export default ResizeObserver;