/** * Flex layout engine. * Computes positions and sizes for a VNode tree using flexbox-like rules. */ import { CellBuffer } from "./buffer.js"; import { LogicalBuffer } from "./logical-buffer.js"; import { type VNode } from "./vnode.js"; /** * Clip region for overflow handling. * Content outside this region will be clipped. */ export interface ClipRegion { minX: number; minY: number; maxX: number; maxY: number; } export interface LayoutBox { x: number; y: number; width: number; height: number; innerX: number; innerY: number; innerWidth: number; innerHeight: number; node: VNode; children: LayoutBox[]; zIndex: number; } export interface LayoutContext { x: number; y: number; width: number; height: number; } export interface LayoutResult { box: LayoutBox; absoluteBoxes: LayoutBox[]; } /** * Compute layout for a VNode tree. */ export declare function computeLayout(node: VNode, context: LayoutContext): LayoutBox; /** * Render a LayoutBox tree to a CellBuffer. */ export declare function renderToBuffer(box: LayoutBox, buffer: CellBuffer, clip?: ClipRegion | null): void; /** * Render a LayoutBox tree to a LogicalBuffer. * Text is written at full length - wrapping happens at display time. */ export declare function renderToLogicalBuffer(box: LayoutBox, buffer: LogicalBuffer, clip?: ClipRegion | null): void; //# sourceMappingURL=layout.d.ts.map