/** * The whole screen from data, UI state and a size (operator-console/AC-10..AC-14, * operator-console/AC-23..AC-26, operator-console/AC-45, operator-console/AC-54). * * Pure. BUILDING runs across the top (building-panel-all-instances/AC-1); from 100 * columns ROADMAP and SPEND sit side by side below it, from 60 to 99 they stack; below * 60 × 20 one line asks for a larger window. The drawer, the ⌃K list, forms and overlays * take the space below BUILDING, so it stays in view whatever is open (design D-7). * * @module */ import { type Paint } from '../../autopilot/ansi.js'; import type { BuildingRow, InstanceRow, OperatorData, PanelId, Screen, Size, UiState } from './model.js'; import { type PaletteEntry } from './palette.js'; export declare const MIN_COLUMNS = 60; export declare const MIN_ROWS = 20; /** The width from which ROADMAP and SPEND sit side by side (operator-console/AC-11). */ export declare const WIDE_COLUMNS = 100; export declare const TOO_SMALL = "make the window at least 60\u00D720 \u2014 q leaves"; export interface Look { paint: Paint; /** The shared frame number; the spinner glyph is `SPINNER[frame % 10]`. */ frame: number; now: number; /** The key bar's `[key, label]` pairs for where the user is (operator-console/AC-14). */ keys: readonly (readonly [string, string])[]; /** Every key, by panel, for `?` (operator-console/AC-28). */ help: readonly string[]; } /** Rows the reducer can select in a panel. */ export declare function rowCount(data: OperatorData, panel: PanelId): number; /** A BUILDING row by selection index: running rows first, then idle (building-panel-all-instances/AC-9). */ export declare function buildingRow(data: OperatorData, index: number): ({ kind: 'idle'; row: InstanceRow; } | BuildingRow) | null; /** The name a row acts on: the instance or the roadmap file. Null when there is no such row. */ export declare function rowName(data: OperatorData, panel: PanelId, index: number): string | null; /** What ⌃K shows for the query typed so far. */ export declare function paletteShown(ui: UiState): PaletteEntry[]; export declare function render(data: OperatorData, ui: UiState, size: Size, look: Look): Screen; /** Pad every line to the full width, for tests that compare columns. */ export declare function padded(s: Screen, C: number): string[]; //# sourceMappingURL=layout.d.ts.map