export type ThemeColor = 'accent' | 'border' | 'borderAccent' | 'borderMuted' | 'success' | 'error' | 'errorDim' | 'warning' | 'muted' | 'dim' | 'text' | 'thinkingText' | 'userMessageText' | 'customMessageText' | 'customMessageLabel' | 'toolTitle' | 'toolOutput' | 'mdHeading' | 'mdLink' | 'mdLinkUrl' | 'mdCode' | 'mdCodeBlock' | 'mdCodeBlockBorder' | 'mdQuote' | 'mdQuoteBorder' | 'mdHr' | 'mdListBullet' | 'toolDiffAdded' | 'toolDiffRemoved' | 'toolDiffContext' | 'syntaxComment' | 'syntaxKeyword' | 'syntaxFunction' | 'syntaxVariable' | 'syntaxString' | 'syntaxNumber' | 'syntaxType' | 'syntaxOperator' | 'syntaxPunctuation' | 'thinkingOff' | 'thinkingMinimal' | 'thinkingLow' | 'thinkingMedium' | 'thinkingHigh' | 'thinkingXhigh' | 'bashMode' | 'chatMode';
export type ThemeBg = 'selectedBg' | 'userMessageBg' | 'customMessageBg' | 'toolPendingBg' | 'toolSuccessBg' | 'toolErrorBg';
type ColorMode = 'truecolor' | '256color';
export declare class Theme {
    readonly name?: string;
    readonly sourcePath?: string;
    private fgColors;
    private bgColors;
    private mode;
    constructor(fgColors: Record<ThemeColor, string | number>, bgColors: Record<ThemeBg, string | number>, mode: ColorMode, options?: {
        name?: string;
        sourcePath?: string;
    });
    fg(color: ThemeColor, text: string): string;
    bg(color: ThemeBg, text: string): string;
    bold(text: string): string;
    italic(text: string): string;
    underline(text: string): string;
    inverse(text: string): string;
    strikethrough(text: string): string;
    getFgAnsi(color: ThemeColor): string;
    getBgAnsi(color: ThemeBg): string;
    getColorMode(): ColorMode;
    getThinkingBorderColor(level: 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'): (str: string) => string;
    getBashModeBorderColor(): (str: string) => string;
    getChatModeBorderColor(): (str: string) => string;
}
export declare function getAvailableThemes(): string[];
export declare function loadThemeFromPath(themePath: string, mode?: ColorMode): Theme;
export declare const theme: Theme;
export declare function initTheme(themeName?: string, enableWatcher?: boolean): void;
export declare function setTheme(name: string, enableWatcher?: boolean): {
    success: boolean;
    error?: string;
};
export declare function onThemeChange(callback: () => void): void;
export declare function stopThemeWatcher(): void;
/**
 * Get resolved theme colors as CSS-compatible hex strings.
 * Used by HTML export to generate CSS custom properties.
 */
export declare function getResolvedThemeColors(themeName?: string): Record<string, string>;
/**
 * Get explicit export colors from theme JSON, if specified.
 * Returns undefined for each color that isn't explicitly set.
 */
export declare function getThemeExportColors(themeName?: string): {
    pageBg?: string;
    cardBg?: string;
    infoBg?: string;
};
export {};
//# sourceMappingURL=runtime.d.ts.map