/** * Color represented by RGB (0.0-1.0) components */ export type Color = { r: number; g: number; b: number; }; /** * Displayable character, with background and foreground color taken from the palette */ export type Char = { ch: string; bg: number; fg: number; }; /** * Display protocol, to allow the UI to draw things on "screen" */ export interface Display { /** * Setup the palette for color display * * If the display supports the whole RGB range, it may return the array as-is. * If the display only supports a limited palette, it may return only supported colors. * * From this call forward, colors will be received by numbered index in the returned array. */ setupPalette(colors: readonly Color[]): Promise; /** * Clear the whole screen */ clear(): Promise; }