/** * Shared terminal theme primitives for legacy and Codex-style TUI rendering. */ /** * Resolve whether ANSI color output is permitted, honouring the widely * supported `NO_COLOR` (https://no-color.org) and `FORCE_COLOR` * conventions before falling back to TTY detection. * * Precedence: * 1. `NO_COLOR` — if set to any non-empty value, colors are disabled. * An empty string is treated as "not set" (matches the spec). * 2. `FORCE_COLOR` — if set to any value other than `"0"` / `"false"`, * colors are forced on even without a TTY. `"0"` or `"false"` * forces colors OFF regardless of TTY. * 3. Fallback: enable colors when the stream is a TTY. * * The helper takes its dependencies as parameters so it is trivially * testable and can be reused from non-process contexts. */ export declare function shouldUseColor(stdout?: { isTTY?: boolean; }, env?: NodeJS.ProcessEnv): boolean; export type UiColorProfile = "ansi16" | "ansi256" | "truecolor"; export type UiGlyphMode = "ascii" | "unicode" | "auto"; export interface UiGlyphSet { selected: string; unselected: string; bullet: string; check: string; cross: string; } export interface UiThemeColors { reset: string; dim: string; muted: string; heading: string; accent: string; success: string; warning: string; danger: string; border: string; } export interface UiTheme { profile: UiColorProfile; glyphMode: UiGlyphMode; glyphs: UiGlyphSet; colors: UiThemeColors; } export declare function createUiTheme(options?: { profile?: UiColorProfile; glyphMode?: UiGlyphMode; }): UiTheme; //# sourceMappingURL=theme.d.ts.map