/**
 * OwlCoda TUI Color System
 *
 * Direct ANSI escape code rendering with RGB support, semantic color tokens,
 * and a multi-theme palette. No external dependencies (no chalk, no ink).
 *
 * Architecture: imperative string-building — every function returns a plain
 * string that can be written to stdout. This is fundamentally different from
 * React-component-based renderers; we own every byte of output.
 */
/** SGR (Select Graphic Rendition) control sequences. */
export declare const sgr: {
    readonly reset: "\u001B[0m";
    readonly bold: "\u001B[1m";
    readonly dim: "\u001B[2m";
    readonly italic: "\u001B[3m";
    readonly underline: "\u001B[4m";
    readonly blink: "\u001B[5m";
    readonly inverse: "\u001B[7m";
    readonly hidden: "\u001B[8m";
    readonly strikethrough: "\u001B[9m";
    readonly noBold: "\u001B[22m";
    readonly noItalic: "\u001B[23m";
    readonly noUnderline: "\u001B[24m";
    readonly noInverse: "\u001B[27m";
};
/** Apply 24-bit RGB foreground. */
export declare function fg(r: number, g: number, b: number): string;
/** Apply 24-bit RGB background. */
export declare function bg(r: number, g: number, b: number): string;
/** Apply ANSI-256 foreground. */
export declare function fg256(n: number): string;
/** Apply ANSI-256 background. */
export declare function bg256(n: number): string;
/** Standard 16-color foreground codes. */
export declare const fgBasic: {
    readonly black: "\u001B[30m";
    readonly red: "\u001B[31m";
    readonly green: "\u001B[32m";
    readonly yellow: "\u001B[33m";
    readonly blue: "\u001B[34m";
    readonly magenta: "\u001B[35m";
    readonly cyan: "\u001B[36m";
    readonly white: "\u001B[37m";
    readonly brightBlack: "\u001B[90m";
    readonly brightRed: "\u001B[91m";
    readonly brightGreen: "\u001B[92m";
    readonly brightYellow: "\u001B[93m";
    readonly brightBlue: "\u001B[94m";
    readonly brightMagenta: "\u001B[95m";
    readonly brightCyan: "\u001B[96m";
    readonly brightWhite: "\u001B[97m";
};
/** Standard 16-color background codes. */
export declare const bgBasic: {
    readonly black: "\u001B[40m";
    readonly red: "\u001B[41m";
    readonly green: "\u001B[42m";
    readonly yellow: "\u001B[43m";
    readonly blue: "\u001B[44m";
    readonly magenta: "\u001B[45m";
    readonly cyan: "\u001B[46m";
    readonly white: "\u001B[47m";
    readonly brightBlack: "\u001B[100m";
    readonly brightRed: "\u001B[101m";
    readonly brightGreen: "\u001B[102m";
    readonly brightYellow: "\u001B[103m";
    readonly brightBlue: "\u001B[104m";
    readonly brightMagenta: "\u001B[105m";
    readonly brightCyan: "\u001B[106m";
    readonly brightWhite: "\u001B[107m";
};
/** Wrap text with foreground color + reset. */
export declare function colorize(text: string, color: string): string;
/** Wrap text with bold + foreground color + reset. */
export declare function bold(text: string, color?: string): string;
/** Wrap text with dim + reset. */
export declare function dim(text: string): string;
/** Wrap text with italic + reset. */
export declare function italic(text: string): string;
/** Wrap text with underline + reset. */
export declare function underline(text: string): string;
/** Wrap text with strikethrough + reset. */
export declare function strikethrough(text: string): string;
/**
 * Parse an `rgb(r,g,b)` string into [r,g,b] tuple.
 * Returns null if the string doesn't match.
 */
export declare function parseRgb(s: string): [number, number, number] | null;
/**
 * Parse a hex color `#RRGGBB` or `#RGB` into [r,g,b] tuple.
 */
export declare function parseHex(s: string): [number, number, number] | null;
/**
 * Resolve a color token to an ANSI escape string.
 * Supports: rgb(r,g,b), #RRGGBB, #RGB, ansi-256 numbers, named basic colors.
 */
export declare function resolveColor(token: string): string;
/**
 * Resolve a color token to an ANSI background escape string.
 */
export declare function resolveBgColor(token: string): string;
/** Remove all ANSI escape sequences from a string. */
export declare function stripAnsi(s: string): string;
/** Visible character width (strips ANSI, counts chars). */
export declare function visibleWidth(s: string): number;
/**
 * OwlCoda semantic color palette. Every color is an `rgb()` or hex string
 * that gets resolved through `resolveColor()` at render time.
 *
 * Our palette is inspired by owl/forest/night-vision aesthetics —
 * deliberately distinct from any upstream project's palette.
 */
export type OwlTheme = {
    owl: string;
    owlShimmer: string;
    shimmer: string;
    purple: string;
    pink: string;
    bgApp: string;
    bgCard: string;
    bgCard2: string;
    bgRaise: string;
    bgInput: string;
    bgSidebar: string;
    bgChrome: string;
    bgInspector: string;
    hair: string;
    hairStrong: string;
    hairFaint: string;
    hairAccent: string;
    border: string;
    borderDim: string;
    borderActive: string;
    text: string;
    textHi: string;
    textDim: string;
    textMute: string;
    textInverse: string;
    subtle: string;
    textSubtle: string;
    suggestion: string;
    success: string;
    error: string;
    warning: string;
    warningShimmer: string;
    info: string;
    merged: string;
    accentSoft: string;
    successSoft: string;
    warnSoft: string;
    errSoft: string;
    infoSoft: string;
    purpleSoft: string;
    diffAdded: string;
    diffRemoved: string;
    diffAddedDim: string;
    diffRemovedDim: string;
    diffAddedWord: string;
    diffRemovedWord: string;
    agentRed: string;
    agentBlue: string;
    agentGreen: string;
    agentYellow: string;
    agentPurple: string;
    agentOrange: string;
    agentPink: string;
    agentCyan: string;
    promptBorder: string;
    promptBorderFocus: string;
    promptBorderShimmer: string;
    userMsgBg: string;
    userMsgBgHover: string;
    selectionBg: string;
    codeBg: string;
    bashMsgBg: string;
    memoryBg: string;
    permission: string;
    permissionShimmer: string;
    bashBorder: string;
    planMode: string;
    fastMode: string;
    fastModeShimmer: string;
    autoAccept: string;
    briefLabelYou: string;
    briefLabelAssist: string;
    rateLimitFill: string;
    rateLimitEmpty: string;
    spinnerBase: string;
    spinnerStall: string;
    inlineCode: string;
    inlineCodeBg: string;
};
export declare const THEME_NAMES: readonly ["dark", "light", "dark-ansi", "light-ansi", "dark-daltonized", "light-daltonized"];
export type ThemeName = (typeof THEME_NAMES)[number];
export type ThemeSetting = 'auto' | ThemeName;
/** Get the current active theme. */
export declare function getTheme(): OwlTheme;
/** Get the current theme name. */
export declare function getThemeName(): ThemeName;
/** Set the active theme by name. */
export declare function setTheme(name: ThemeName): void;
/**
 * Resolve 'auto' theme setting based on system preference.
 * Checks COLORFGBG env var or defaults to dark.
 */
export declare function resolveThemeSetting(setting: ThemeSetting): ThemeName;
/** Get resolved ANSI escape for a theme token. */
export declare function themeColor(token: keyof OwlTheme): string;
/** Get resolved ANSI background for a theme token. */
export declare function themeBg(token: keyof OwlTheme): string;
/** Wrap text in a themed foreground color + reset. */
export declare function themed(text: string, token: keyof OwlTheme): string;
