/** * Split-pane terminal layout for the installer UI * * Left pane (fixed): ARE ASCII banner + rotating golden circle + version info * Right pane (scrolling viewport): Interactive prompts, progress, results * * The right pane is locked to the same vertical height as the left pane. * When content overflows, older lines scroll up within the bounded region. * * Uses ANSI escape codes for cursor positioning and region management. */ export interface LayoutConfig { /** Width of the left pane in characters */ leftWidth: number; /** Padding between panes */ padding: number; } export declare function clearScreen(): void; export declare class SplitPaneLayout { private leftWidth; private padding; private totalWidth; private rightCol; private rightWidth; private leftContent; private separatorCol; private enabled; /** All right-pane lines (the full buffer) */ private rightBuffer; /** First row of the right pane viewport (1-based) */ private viewportTop; /** Maximum number of visible rows in the right pane (matches left pane height) */ private viewportHeight; /** Logical cursor: next line index in rightBuffer to write to */ private rightCursor; constructor(config?: Partial); /** Whether the split-pane layout is active */ get isEnabled(): boolean; /** Get the column where the right pane starts */ get rightPaneCol(): number; /** Get the logical cursor position (index into rightBuffer) */ get currentRightRow(): number; /** Get the width available for right pane content */ get rightPaneWidth(): number; /** * Set left pane content (array of pre-formatted lines). * Also sets the right pane viewport height to match. */ setLeftPane(lines: string[]): void; /** Render the left pane content at its fixed position. */ renderLeftPane(): void; /** * Draw the vertical separator between panes. * @param height - Number of rows to draw */ drawSeparator(height: number): void; /** * Append a line of text to the right pane. * If the viewport is full, older lines scroll up. */ appendRight(text: string): void; /** * Set the logical cursor to a specific buffer index. * Used by prompts to overwrite lines for re-rendering selections. */ setRightRow(row: number): void; /** * Clear right pane from a given buffer index downward. */ clearRightFrom(row: number): void; /** * Force a full re-render of the right pane viewport. * Call after external operations that may have overwritten screen content. */ refreshRight(): void; /** * Move cursor below all content for clean exit. */ finalize(): void; /** * Render the visible portion of the right pane buffer. * Shows the last `viewportHeight` lines of the buffer. */ private renderRightViewport; /** * Wrap text to fit within a given width. * Preserves ANSI color codes during wrapping. */ private wrapText; } //# sourceMappingURL=layout.d.ts.map