export type DocFragment = readonly DocLine[]; export type DocLine = readonly DocNode[]; export type DocNode = TextNode | VoidNode; export type Position = readonly [line: number, offset: number]; export type PositionRange = readonly [start: Position, end: Position]; export type SelectionSnapshot = readonly [anchor: Position, focus: Position]; export type TextNode = Readonly<{ text: string; }>; export type VoidNode = Readonly<{ data: Record; }>; export type Writeable = { -readonly [key in keyof T]: T[key]; };