declare module "react-cool-dimensions" { // Types from @types/resize-observer-browser interface ResizeObserverSize { readonly inlineSize: number; readonly blockSize: number; } interface ResizeObserverEntry { readonly target: Element; readonly contentRect: DOMRectReadOnly; readonly borderBoxSize: ResizeObserverSize; readonly contentBoxSize: ResizeObserverSize; } // Hook types export interface Event { readonly currentBreakpoint: string; readonly width: number; readonly height: number; readonly entry: ResizeObserverEntry; observe: (element?: T | null) => void; unobserve: () => void; } export interface State { readonly currentBreakpoint: string; readonly width: number | null; readonly height: number | null; readonly entry?: ResizeObserverEntry; } export interface ShouldUpdate { (state: State): boolean; } export interface OnResize { (event: Event): void; } export interface Options { useBorderBoxSize?: boolean; breakpoints?: Record; updateOnBreakpointChange?: boolean; shouldUpdate?: ShouldUpdate; onResize?: OnResize; polyfill?: any; } export interface Return extends Omit, "entry"> { entry?: ResizeObserverEntry; } function useDimensions( options?: Options ): Return; export default useDimensions; }