import type { GeometryReader } from './geometryReader'; /** * The live (uncached) implementation of {@link GeometryReader}. * * Element-property reads return the property directly; measurement reads delegate to the shared * `helpers/dom/element` functions. The class is stateless and holds no cache, so it reads the same * values at the same time as the previous inline reads — it changes structure, not behavior. * * @class LiveGeometryReader */ export declare class LiveGeometryReader implements GeometryReader { #private; /** * @param {Window} rootWindow The window used to resolve computed styles. */ constructor(rootWindow: Window); /** * @param {HTMLElement} element The element to measure. * @returns {number} */ clientWidth(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ clientHeight(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ offsetWidth(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ offsetHeight(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ offsetTop(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ offsetLeft(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {HTMLElement | null} */ offsetParent(element: HTMLElement): HTMLElement | null; /** * A box test, deliberately not a style test: `display: none` and `content-visibility: hidden` * generate no boxes yet read their styles correctly, and this asks whether the geometry can be * measured. Whether the styles resolve is `StylesHandler`'s question. See the unrendered-table * section of `walkontable/AGENTS.md`. * * @param {HTMLElement} element The element to check. * @returns {boolean} */ isRendered(element: HTMLElement): boolean; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ scrollWidth(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ scrollHeight(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {DOMRect} */ getBoundingClientRect(element: HTMLElement): DOMRect; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ outerWidth(element: HTMLElement): number; /** * @param {HTMLElement} element The element to measure. * @returns {number} */ outerHeight(element: HTMLElement): number; /** * @param {HTMLElement | Window} element The element (or window) to measure. * @returns {number} */ innerHeight(element: HTMLElement | Window): number; /** * @param {HTMLElement | Window} element The element (or window) to measure. * @returns {number} */ innerWidth(element: HTMLElement | Window): number; /** * @param {HTMLElement} element The element to measure. * @returns {{ left: number, top: number }} */ offset(element: HTMLElement): { left: number; top: number; }; /** * Forwards the optional document argument verbatim to preserve the exact behavior of each call * site (some pass the root document, some rely on the helper's default global document). * * @param {Document} [rootDocument] The document used to measure the scrollbar. * @returns {number} */ getScrollbarWidth(rootDocument?: Document): number; /** * @param {HTMLElement} element The element to read. * @returns {CSSStyleDeclaration} */ getComputedStyle(element: HTMLElement): CSSStyleDeclaration; /** * @param {HTMLElement} element The element to read. * @param {string} property The CSS property name. * @returns {string | undefined} */ getStyle(element: HTMLElement, property: string): string | undefined; /** * @param {HTMLElement} element The element to read. * @returns {number} */ getMaximumScrollTop(element: HTMLElement): number; /** * @param {HTMLElement} element The element to read. * @returns {number} */ getMaximumScrollLeft(element: HTMLElement): number; }