/** * 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'; export { meetsMinimumTier } from '../../core/tier/tier-config.js'; /** * Theme loader service */ export declare class ThemeLoader { private themes; private userThemesDir; private preferencesPath; private preferences; private initialized; constructor(); /** * Initialize the theme loader */ init(): Promise; /** * 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; /** * 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; //# sourceMappingURL=theme-loader.d.ts.map