/**
 * Theme Manager for Code Buddy
 * Handles loading, saving, and managing themes and avatars
 */
import { Theme, ThemeColor, ThemeColors, AvatarConfig, AvatarPreset } from './theme.js';
/**
 * Singleton manager for themes and avatars
 */
export declare class ThemeManager {
    private static instance;
    private themes;
    private currentTheme;
    private customAvatars;
    private customColors;
    private themesDir;
    private preferencesPath;
    private constructor();
    /**
     * Get singleton instance
     */
    static getInstance(): ThemeManager;
    /**
     * Initialize themes from built-in and custom sources
     */
    private initializeThemes;
    /**
     * Ensure directory exists
     */
    private ensureDirectoryExists;
    /**
     * Load custom themes from ~/.codebuddy/themes/
     */
    private loadCustomThemes;
    /**
     * Load theme preferences from disk
     */
    private loadPreferences;
    /**
     * Save theme preferences to disk
     */
    private savePreferences;
    /**
     * Get all available themes
     */
    getAvailableThemes(): Theme[];
    /**
     * Get the current active theme
     */
    getCurrentTheme(): Theme;
    /**
     * Get effective colors (theme colors with custom overrides)
     */
    getColors(): ThemeColors;
    /**
     * Get effective avatars (theme avatars with custom overrides)
     */
    getAvatars(): AvatarConfig;
    /**
     * Set the active theme by ID
     */
    setTheme(themeId: string): boolean;
    /**
     * Get a theme by ID
     */
    getTheme(themeId: string): Theme | undefined;
    /**
     * Set custom avatar overrides
     */
    setCustomAvatars(avatars: Partial<AvatarConfig>): void;
    /**
     * Set a single custom avatar
     */
    setCustomAvatar(key: keyof AvatarConfig, value: string): void;
    /**
     * Clear custom avatar overrides
     */
    clearCustomAvatars(): void;
    /**
     * Set custom color overrides
     */
    setCustomColors(colors: Partial<ThemeColors>): void;
    /**
     * Set a single custom color
     */
    setCustomColor(key: keyof ThemeColors, value: ThemeColor): void;
    /**
     * Clear custom color overrides
     */
    clearCustomColors(): void;
    /**
     * Apply an avatar preset
     */
    applyAvatarPreset(presetId: string): boolean;
    /**
     * Get all available avatar presets
     */
    getAvatarPresets(): AvatarPreset[];
    /**
     * Create a new custom theme
     */
    createCustomTheme(id: string, name: string, description: string, colors: ThemeColors, avatars?: AvatarConfig): Theme;
    /**
     * Save a custom theme to disk
     */
    private saveCustomTheme;
    /**
     * Delete a custom theme
     */
    deleteCustomTheme(themeId: string): boolean;
    /**
     * Clone an existing theme with a new ID and name
     */
    cloneTheme(sourceThemeId: string, newId: string, newName: string): Theme | null;
    /**
     * Export theme to JSON string
     */
    exportTheme(themeId: string): string | null;
    /**
     * Import theme from JSON string
     */
    importTheme(jsonString: string): Theme | null;
    /**
     * Get theme preview text for display
     */
    getThemePreview(themeId: string): string;
}
/**
 * Convenience function to get the singleton instance
 */
export declare function getThemeManager(): ThemeManager;
