import type { EditorTheme, MarkdownTheme, SelectListTheme } from '@earendil-works/pi-tui';
import type { SearchableSelectListTheme } from './components/searchable-select-list.js';
import darkThemeJson from './theme/dark.json';
export type ThemePalette = Record<keyof typeof darkThemeJson.palette, string>;
export type ThemeExports = {
    palette: ThemePalette;
    lightMode: boolean;
    theme: {
        fg: (key: keyof ThemePalette, text: string) => string;
        fgText: (text: string) => string;
        assistantText: (text: string) => string;
        dim: (text: string) => string;
        accent: (text: string) => string;
        accentSoft: (text: string) => string;
        success: (text: string) => string;
        error: (text: string) => string;
        header: (text: string) => string;
        system: (text: string) => string;
        userBg: (text: string) => string;
        userText: (text: string) => string;
        toolTitle: (text: string) => string;
        toolOutput: (text: string) => string;
        toolPendingBg: (text: string) => string;
        toolSuccessBg: (text: string) => string;
        toolErrorBg: (text: string) => string;
        border: (text: string) => string;
        bold: (text: string) => string;
        italic: (text: string) => string;
    };
    markdownTheme: MarkdownTheme;
    selectListTheme: SelectListTheme;
    searchableSelectListTheme: SearchableSelectListTheme;
    editorTheme: EditorTheme;
};
export declare function getActiveThemeId(): string;
export declare function listAvailableThemeIds(): string[];
export declare function resolveThemePalette(themeId: string, env?: NodeJS.ProcessEnv): {
    palette: ThemePalette;
    lightMode: boolean;
    resolvedId: string;
};
/** Apply theme by id (`auto`, `dark`, `light`, or custom name). Returns resolved palette id. */
export declare function applyThemeById(themeId: string, env?: NodeJS.ProcessEnv): string;
export declare function getThemeExports(): ThemeExports;
export declare function getThinkingBorderColor(level: string | undefined): (text: string) => string;
export declare function getBashModeBorderColor(): (text: string) => string;
export declare function getBashExcludeBorderColor(): (text: string) => string;
export declare function getDefaultEditorBorderColor(): (text: string) => string;
export declare function getCustomThemesDir(): string;
/** Initialize theme from CLI flag, env, or settings id. */
export declare function initTuiTheme(options?: {
    themeId?: string;
    env?: NodeJS.ProcessEnv;
}): string;
