import type { AsciiArtColorDepth } from '../utils/ascii-art/convertImageDataToAsciiArt'; import type { ResolvedAvatarRenderDefinition } from './renderAvatarVisual'; import type { AvatarDefinition } from './types/AvatarDefinition'; import type { AvatarSurfaceStyle, AvatarVisualId, AvatarVisualTerminalTextGrid } from './types/AvatarVisualDefinition'; /** * Options shared by the terminal-text avatar renderers. * * @private within the repository */ export type RenderAvatarVisualTerminalTextOptions = { /** * Stable visual identity of the rendered agent avatar. */ readonly avatarDefinition: AvatarDefinition; /** * Built-in avatar visual to render, the same one used on the website. */ readonly visualId: AvatarVisualId; /** * Surface used to derive the avatar palette. * * @default 'framed' */ readonly surface?: AvatarSurfaceStyle; /** * Output width in terminal character cells. */ readonly columns: number; /** * Output height in terminal character cells. */ readonly rows: number; /** * Animation timestamp for animated visuals. */ readonly timeMs: number; /** * Optional stable render data reused across frames. */ readonly resolvedAvatarRenderDefinition?: ResolvedAvatarRenderDefinition; }; /** * Options for `renderAvatarVisualTerminalTextLines`. * * @private within the repository */ export type RenderAvatarVisualTerminalTextLinesOptions = RenderAvatarVisualTerminalTextOptions & { /** * Color depth of the emitted ANSI escape codes. * * @default 'TRUE_COLOR' */ readonly colorDepth?: AsciiArtColorDepth; }; /** * Renders one frame of a character-based avatar visual straight into terminal character cells. * * Visuals which are themselves made of characters, for example `AsciiOctopus`, lose their identity * when they are rasterized onto a canvas and converted back into half-block ASCII art - every glyph * is averaged away into a colored blob. Such visuals expose `renderTerminalText`, which paints the * terminal grid directly and is used instead of the raster pipeline. * * The square avatar is centered inside the requested grid the same way `renderAvatarVisualAsciiArt` * centers the avatar canvas inside a wider terminal frame. * * @param options Avatar identity, visual selection, and output grid size. * @returns Grid of `rows` rows of `columns` cells, or `null` when the visual has no terminal renderer. * * @private within the repository */ export declare function renderAvatarVisualTerminalTextGrid(options: RenderAvatarVisualTerminalTextOptions): AvatarVisualTerminalTextGrid | null; /** * Renders one frame of a character-based avatar visual into ANSI-colored terminal lines. * * @param options Avatar identity, visual selection, output grid size, and ANSI color depth. * @returns One ANSI-colored string per output row, or `null` when the visual has no terminal renderer. * * @private within the repository */ export declare function renderAvatarVisualTerminalTextLines(options: RenderAvatarVisualTerminalTextLinesOptions): ReadonlyArray | null;