/** * The input-gathering seam for layout resolution — the ONLY file in the layout slice that touches the * live DOM (through the geometry-read port) and the settings. It reads the current geometry into a * plain `LayoutInput`; the pure solver in `resolveLayout` takes it from there. * * Following the composition-root convention, `createLayoutDeps(ctx)` picks the narrow set of * dependencies this slice needs out of the `EngineContext`; its inferred `ReturnType` is the deps * type. `gatherLayoutInput(deps)` is the read step. * * NOTE: this module is not wired into the draw yet. It exists so the pure solver has a real, * reviewable source of inputs. The exact derivation of the workspace box (client box vs offset box * minus borders) is refined when the snapshot is wired into the viewport in a later stage; the * scrollbar math it feeds is already final and unit-tested. */ import type { EngineContext } from '../../wire'; import type { LayoutInput } from './layoutSnapshot'; /** * Narrows the engine context to the dependencies the layout slice reads. * * @param {EngineContext} ctx The engine composition context. * @returns {object} The layout dependency set. */ export declare function createLayoutDeps(ctx: EngineContext): { geometryReader: import("../../domMeasure/geometryReader").GeometryReader; wtSettings: import("../../settings").default; rootDocument: Document; rootWindow: Window; getWtTable: () => import("../../table/baseTable").default; getWtViewport: () => import("../viewport").default; getTopOverlay: () => import("../../overlay").Overlay; getInlineStartOverlay: () => import("../../overlay").Overlay; }; export type LayoutDeps = ReturnType; /** * Reads the current geometry and settings into a pure `LayoutInput`. * * @param {LayoutDeps} deps The layout dependency set. * @returns {LayoutInput} */ export declare function gatherLayoutInput(deps: LayoutDeps): LayoutInput;