/** * The workspace-size and scroll-detection queries for `Viewport`, plus the mixin object that * implements them. * * These methods answer "how big is the drawable area and will scrollbars appear" — the workspace and * viewport dimensions, the row-header width / column-header height (with their lazy caches), the * scrollbar-presence checks, and the window-scrollability checks. They are applied to `Viewport` with * the same `mixin()` helper the range-query and sticky mixins use and reach the injected deps through * the public `this.deps` getter (a mixin cannot see the class's `#deps` private field). * * On the single-pass gated path these read the per-draw `LayoutSnapshot` instead of forcing DOM * layout; off that path they measure the DOM directly. */ import type { default as Viewport } from './viewport'; /** * Measures the workspace height off the live DOM (the trimming container, with the `#3119` * zero-height→window fallback). Kept as a free function so the public `getWorkspaceHeight` can return * the layout snapshot on the single-pass path while `gatherLayoutInput` (which BUILDS the snapshot) * and the legacy measure path route here directly, avoiding recursion through `getLayout()`. * * @param {Viewport} viewport The viewport instance. * @returns {number} */ export declare function measureWorkspaceHeight(viewport: Viewport): number; /** * Measures the workspace width off the live DOM. Free-function twin of `measureWorkspaceHeight` (see * its note on why the raw measure is split out from the public `getWorkspaceWidth`). * * @param {Viewport} viewport The viewport instance. * @returns {number} */ export declare function measureWorkspaceWidth(viewport: Viewport): number; /** * Workspace-size and scroll-detection queries, mixed into `Viewport`. */ export interface WorkspaceSize { getWorkspaceHeight(): number; getViewportHeight(): number; getWorkspaceWidth(): number; getViewportWidth(): number; hasVerticalScroll(): boolean; hasHorizontalScroll(): boolean; isVerticallyScrollableByWindow(): boolean; isHorizontallyScrollableByWindow(): boolean; sumColumnWidths(from: number, length: number): number; getWorkspaceOffset(): { left: number; top: number; }; getColumnHeaderHeight(): number; getRowHeaderWidth(): number; } /** * The workspace-size mixin. Implements `WorkspaceSize` by measuring the trimming container and the * rendered table through the geometry reader. * * @type {WorkspaceSize} */ export declare const workspaceSize: WorkspaceSize;