/**
 * Theme Loader
 *
 * Loads and manages themes from bundled defaults and user directory.
 * Handles tier-gating for premium themes.
 *
 * @since v1.57.0
 */
import type { Tier } from '../../core/types/auth.js';
import type { ExtendedTheme, ThemeMetadata, ThemePreferences } from './theme-types.js';
/**
 * Check if user tier meets minimum requirement
 */
export declare function tierMeetsMinimum(userTier: Tier, minTier: Tier): boolean;
/**
 * Theme loader service
 */
export declare class ThemeLoader {
    private themes;
    private userThemesDir;
    private preferencesPath;
    private preferences;
    private initialized;
    constructor();
    /**
     * Initialize the theme loader
     */
    init(): Promise<void>;
    /**
     * Load bundled default themes
     */
    private loadBundledThemes;
    /**
     * Load user-created themes
     */
    private loadUserThemes;
    /**
     * Load user preferences
     */
    private loadPreferences;
    /**
     * Save user preferences
     */
    private savePreferences;
    /**
     * Get default preferences
     */
    private getDefaultPreferences;
    /**
     * Get all themes (optionally filtered by tier)
     */
    getThemes(userTier?: Tier): ExtendedTheme[];
    /**
     * Get theme metadata for gallery display
     */
    getThemeMetadata(userTier?: Tier): ThemeMetadata[];
    /**
     * Get a theme by ID
     */
    getTheme(id: string): ExtendedTheme | undefined;
    /**
     * Get current active theme
     */
    getActiveTheme(): ExtendedTheme;
    /**
     * Set active theme (with tier check)
     */
    setActiveTheme(id: string, userTier: Tier): boolean;
    /**
     * Get recent themes
     */
    getRecentThemes(): ThemeMetadata[];
    /**
     * Save a custom theme
     */
    saveCustomTheme(theme: ExtendedTheme): {
        success: boolean;
        error?: string;
    };
    /**
     * Add a user theme directly (for marketplace installs)
     */
    addUserTheme(theme: ExtendedTheme): void;
    /**
     * Delete a custom theme
     */
    deleteCustomTheme(id: string): boolean;
    /**
     * Get themes by category
     */
    getThemesByCategory(category: ExtendedTheme['category'], userTier?: Tier): ExtendedTheme[];
    /**
     * Get themes by type (dark/light)
     */
    getThemesByType(type: ExtendedTheme['type'], userTier?: Tier): ExtendedTheme[];
    /**
     * Check if a theme is available to the user
     */
    isThemeAvailable(id: string, userTier: Tier): boolean;
    /**
     * Get theme count by tier
     */
    getThemeCountByTier(): Record<Tier, number>;
    /**
     * Export theme preferences for backup
     */
    exportPreferences(): ThemePreferences;
    /**
     * Import theme preferences
     */
    importPreferences(prefs: ThemePreferences): boolean;
    /**
     * Get auto dark mode settings
     */
    getAutoDarkMode(): ThemePreferences['autoDarkMode'];
    /**
     * Set auto dark mode settings
     */
    setAutoDarkMode(settings: ThemePreferences['autoDarkMode']): void;
    /**
     * Get theme for current time (if auto dark mode enabled)
     */
    getThemeForCurrentTime(): ExtendedTheme | null;
}
/**
 * Get the theme loader instance
 */
export declare function getThemeLoader(): ThemeLoader;
/**
 * Initialize the theme loader (call at app startup)
 */
export declare function initThemeLoader(): Promise<ThemeLoader>;
//# sourceMappingURL=theme-loader.d.ts.map