/** * frame — the central data model: Cell, CellStyle and Frame (a 2D grid). * It is the TARGET of the diff. Written without I/O. * * Parallel buffers plus style string interning (ADR-0005), and lazy per-line * hashes with dirty flags (ADR-0001). */ import { Attr } from '../ansi/index.js'; export interface Size { readonly cols: number; readonly rows: number; } export interface Point { readonly x: number; readonly y: number; } export interface Rect { readonly x: number; readonly y: number; readonly w: number; readonly h: number; } export type ColorRef = string; export interface CellStyle { readonly fg?: ColorRef; readonly bg?: ColorRef; readonly attrs: Attr; } export interface Cell { readonly char: string; readonly width: 0 | 1 | 2; readonly style: CellStyle; } export declare const DEFAULT_STYLE: CellStyle; export declare const BLANK_CELL: Cell; export interface Frame { readonly size: Size; cellAt(x: number, y: number): Cell; rowSlice(y: number): readonly Cell[]; rowHash(y: number): number; set(x: number, y: number, cell: Cell): void; putText(x: number, y: number, text: string, style: CellStyle, clip: Rect): number; fillRect(rect: Rect, cell: Cell): void; invalidate(): void; clearTo(style: CellStyle): void; } export declare function createFrame(size: Size): Frame; //# sourceMappingURL=index.d.ts.map