claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
158 lines • 4.46 kB
TypeScript
/**
* 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