/**
 * UI Configuration Service
 * Real configuration management for UI components
 */
export interface UIConfig {
    chat: {
        welcomeMessages: string[];
        placeholderTexts: string[];
        systemMessages: {
            connecting: string;
            error: string;
            rateLimit: string;
            noModels: string;
        };
        suggestions: string[];
    };
    models: {
        defaultModel: string;
        preferredModels: string[];
        modelDisplayNames: Record<string, string>;
    };
    themes: {
        default: 'light' | 'dark' | 'auto';
        customThemes: Record<string, any>;
    };
    features: {
        enableVoiceInput: boolean;
        enableFileUpload: boolean;
        enableMarkdown: boolean;
        enableCodeHighlighting: boolean;
        enableStreaming: boolean;
        maxHistoryLength: number;
    };
    accessibility: {
        announceMessages: boolean;
        highContrast: boolean;
        reducedMotion: boolean;
        fontSize: 'small' | 'medium' | 'large';
    };
    branding: {
        appName: string;
        logoUrl?: string;
        primaryColor: string;
        secondaryColor: string;
    };
}
export declare class UIConfigService {
    private config;
    private watchers;
    constructor();
    /**
     * Load configuration from multiple sources
     */
    private loadConfiguration;
    /**
     * Load configuration from environment variables
     */
    private loadFromEnvironment;
    /**
     * Load configuration from local storage
     */
    private loadFromLocalStorage;
    /**
     * Load configuration from remote API
     */
    private loadFromRemoteAPI;
    /**
     * Merge configuration objects
     */
    private mergeConfigs;
    /**
     * Deep merge utility
     */
    private deepMerge;
    private isObject;
    /**
     * Setup configuration watching
     */
    private setupConfigWatching;
    /**
     * Notify configuration watchers
     */
    private notifyWatchers;
    /**
     * Get current configuration
     */
    getConfig(): UIConfig;
    /**
     * Get random welcome message
     */
    getWelcomeMessage(): string;
    /**
     * Get random placeholder text
     */
    getPlaceholderText(): string;
    /**
     * Get model display name
     */
    getModelDisplayName(modelId: string): string;
    /**
     * Get system message
     */
    getSystemMessage(type: keyof UIConfig['chat']['systemMessages']): string;
    /**
     * Get suggestions for the current context
     */
    getSuggestions(context?: string): string[];
    /**
     * Check if feature is enabled
     */
    isFeatureEnabled(feature: keyof UIConfig['features']): boolean;
    /**
     * Get accessibility settings
     */
    getAccessibilitySettings(): UIConfig['accessibility'];
    /**
     * Get branding settings
     */
    getBrandingSettings(): UIConfig['branding'];
    /**
     * Update configuration
     */
    updateConfig(updates: Partial<UIConfig>): void;
    /**
     * Update user preferences
     */
    updateUserPreferences(preferences: {
        theme?: 'light' | 'dark' | 'auto';
        fontSize?: 'small' | 'medium' | 'large';
        enableVoiceInput?: boolean;
        enableFileUpload?: boolean;
        preferredModel?: string;
    }): void;
    /**
     * Watch for configuration changes
     */
    onConfigChange(callback: (config: UIConfig) => void): () => void;
    /**
     * Reset to default configuration
     */
    resetToDefaults(): void;
    /**
     * Get configuration for specific component
     */
    getComponentConfig<T extends keyof UIConfig>(component: T): UIConfig[T];
    /**
     * Export configuration for backup
     */
    exportConfig(): string;
    /**
     * Import configuration from backup
     */
    importConfig(configString: string): void;
}
export declare const uiConfigService: UIConfigService;
export default uiConfigService;
//# sourceMappingURL=UIConfigService.d.ts.map