/** * TerminalDisplay component types. * * Readonly GPU-rendered terminal for displaying ANSI-formatted text * without PTY connection, using restty. * * @module components/devenv/terminal/TerminalDisplay.types */ import type { SlotOverrides } from '../../../core/types'; import type { Restty } from '@mks2508/restty'; import type { ITerminalTheme } from './Terminal.types'; /** Slot names for TerminalDisplay sub-regions */ export type TerminalDisplaySlot = 'root' | 'chrome' | 'terminal' | 'emptyState'; /** * Props for TerminalDisplay component. */ export interface ITerminalDisplayProps { /** ANSI-formatted string content to display */ content: string; /** Title shown in the chrome header */ title?: string; /** Visual variant — 'error' uses red accent line */ variant?: 'default' | 'compact' | 'error'; /** Whether to show the glassmorphism chrome shell (default: true) */ chrome?: boolean; /** Font size in CSS pixels (default: 13) */ fontSize?: number; /** Minimum height in CSS pixels (default: 200) */ minHeight?: number; /** Terminal theme in xterm.js format (auto-converted to Ghostty) */ theme?: ITerminalTheme; /** Restty built-in theme name from the 458-theme catalog */ resttyThemeName?: string; /** GPU renderer preference (default: 'auto') */ gpuRenderer?: 'auto' | 'webgpu' | 'webgl2'; /** Slot class overrides for each visual region */ slots?: SlotOverrides; /** Custom class name on root element */ className?: string; /** Placeholder text when content is empty */ emptyText?: string; /** Callback when restty instance is ready */ onReady?: (restty: Restty) => void; } /** * Imperative handle for TerminalDisplay. */ export interface ITerminalDisplayRef { /** Get the underlying Restty instance */ getRestty: () => Restty | null; /** Clear the terminal display */ clear: () => void; /** Write additional ANSI content (appends) */ write: (data: string) => void; } //# sourceMappingURL=TerminalDisplay.types.d.ts.map