/**
 * Configuration Manager for Personal AI Writing Assistant
 *
 * Handles user preferences, privacy settings, and personalization options
 */
import type { AIServiceProvider, SuggestionType, WritingStyle, PrivacyMode, PersonalizationData } from '../types/ai-assistant';
import type { AnalysisPipelineConfig } from './AnalysisPipeline';
export interface AIAssistantSettings {
    enabled: boolean;
    serviceProvider: AIServiceProvider;
    endpoint?: string;
    apiKey?: string;
    enabledSuggestionTypes: SuggestionType[];
    analysisDelay: number;
    maxSuggestions: number;
    confidenceThreshold: number;
    showInlineAnnotations: boolean;
    showSuggestionPopover: boolean;
    animationsEnabled: boolean;
    popoverDelay: number;
    maxPopoverWidth: number;
    writingStyle: WritingStyle;
    tonePreference: string[];
    languageLevel: 'beginner' | 'intermediate' | 'advanced';
    customInstructions?: string;
    privacyMode: PrivacyMode;
    dataRetentionDays: number;
    allowTelemetry: boolean;
    encryptLocalData: boolean;
    enableStreaming: boolean;
    enableCaching: boolean;
    enableOfflineMode: boolean;
    maxConcurrentRequests: number;
    enableKnowledgeIntegration: boolean;
    knowledgeGraphEndpoint?: string;
    enableChatContext: boolean;
    enableCollaborativeAnalysis: boolean;
    enablePersonalization: boolean;
    learningRate: number;
    adaptToWritingStyle: boolean;
    rememberDismissedSuggestions: boolean;
}
export interface ColorTheme {
    grammar: string;
    tone: string;
    clarity: string;
    facts: string;
    style: string;
    conciseness: string;
    sensitivity: string;
    knowledge: string;
    completion: string;
}
export interface KeyboardShortcuts {
    toggleAssistant: string;
    acceptSuggestion: string;
    dismissSuggestion: string;
    nextSuggestion: string;
    previousSuggestion: string;
    openSettings: string;
}
export declare class ConfigurationManager {
    private static readonly STORAGE_KEY;
    private static readonly DEFAULTS;
    private static readonly DEFAULT_COLORS;
    private static readonly DEFAULT_SHORTCUTS;
    private settings;
    private colors;
    private shortcuts;
    private personalizationData;
    private changeListeners;
    constructor();
    /**
     * Get current settings
     */
    getSettings(): AIAssistantSettings;
    /**
     * Update settings
     */
    updateSettings(updates: Partial<AIAssistantSettings>): void;
    /**
     * Reset settings to defaults
     */
    resetSettings(): void;
    /**
     * Get color theme
     */
    getColors(): ColorTheme;
    /**
     * Update color theme
     */
    updateColors(updates: Partial<ColorTheme>): void;
    /**
     * Reset colors to defaults
     */
    resetColors(): void;
    /**
     * Get keyboard shortcuts
     */
    getShortcuts(): KeyboardShortcuts;
    /**
     * Update keyboard shortcuts
     */
    updateShortcuts(updates: Partial<KeyboardShortcuts>): void;
    /**
     * Get personalization data
     */
    getPersonalizationData(): PersonalizationData | null;
    /**
     * Update personalization data
     */
    updatePersonalizationData(data: Partial<PersonalizationData>): void;
    /**
     * Clear personalization data
     */
    clearPersonalizationData(): void;
    /**
     * Generate pipeline configuration from current settings
     */
    getPipelineConfig(): AnalysisPipelineConfig;
    /**
     * Add change listener
     */
    addChangeListener(listener: (settings: AIAssistantSettings) => void): void;
    /**
     * Remove change listener
     */
    removeChangeListener(listener: (settings: AIAssistantSettings) => void): void;
    /**
     * Export configuration for backup
     */
    exportConfiguration(): string;
    /**
     * Import configuration from backup
     */
    importConfiguration(configJson: string): boolean;
    /**
     * Get privacy-compliant settings summary
     */
    getPrivacySummary(): object;
    /**
     * Private methods
     */
    private loadSettings;
    private saveSettings;
    private loadColors;
    private saveColors;
    private loadShortcuts;
    private saveShortcuts;
    private loadPersonalizationData;
    private savePersonalizationData;
    private removeFromStorage;
    private validateSettings;
    private mapPrivacyMode;
    private notifyListeners;
}
export declare const configManager: ConfigurationManager;
//# sourceMappingURL=ConfigurationManager.d.ts.map