import * as solid_js from 'solid-js'; import { MaybeElementAccessor } from '@solidjs-use/shared'; import { ConfigurableWindow } from '../_configurable.js'; interface ResizeObserverSize { readonly inlineSize: number; readonly blockSize: number; } interface ResizeObserverEntry { readonly target: Element; readonly contentRect: DOMRectReadOnly; readonly borderBoxSize?: readonly ResizeObserverSize[]; readonly contentBoxSize?: readonly ResizeObserverSize[]; readonly devicePixelContentBoxSize?: readonly ResizeObserverSize[]; } type ResizeObserverCallback = (entries: readonly ResizeObserverEntry[], observer: ResizeObserver) => void; interface UseResizeObserverOptions extends ConfigurableWindow { /** * Sets which box model the observer will observe changes to. Possible values * are `content-box` (the default), `border-box` and `device-pixel-content-box`. * * @default 'content-box' */ box?: ResizeObserverBoxOptions; } declare class ResizeObserver { constructor(callback: ResizeObserverCallback); disconnect(): void; observe(target: Element, options?: UseResizeObserverOptions): void; unobserve(target: Element): void; } /** * Reports changes to the dimensions of an Element's content or the border-box * * @see https://solidjs-use.github.io/solidjs-use/core/useResizeObserver */ declare function useResizeObserver(target: MaybeElementAccessor | MaybeElementAccessor[], callback: ResizeObserverCallback, options?: UseResizeObserverOptions): { isSupported: solid_js.Accessor; stop: () => void; }; type UseResizeObserverReturn = ReturnType; export { ResizeObserverCallback, ResizeObserverEntry, ResizeObserverSize, UseResizeObserverOptions, UseResizeObserverReturn, useResizeObserver };