/** * SkillKit Configuration Management * Handles loading, saving, and managing configuration from ~/.skillkit/config.json * Uses 'conf' package for OS-specific config directory handling */ import { SkillKitConfig, ModelProvider, ModelConfig } from './types.js'; /** * Configuration manager */ export declare class ConfigManager { private configDir; private configPath; private config; private isDirty; /** * Initialize config manager */ constructor(configDir?: string); /** * Load configuration from disk */ private loadConfig; /** * Merge saved config with defaults */ private mergeConfig; /** * Get complete configuration */ getConfig(): SkillKitConfig; /** * Get configuration by provider */ getModelConfig(provider: ModelProvider): ModelConfig; /** * Set model API key */ setApiKey(provider: ModelProvider, apiKey: string): void; /** * Get API key for provider */ getApiKey(provider: ModelProvider): string | undefined; /** * Set default provider */ setDefaultProvider(provider: ModelProvider): void; /** * Get default provider */ getDefaultProvider(): ModelProvider; /** * Set default model for provider */ setModel(provider: ModelProvider, model: string): void; /** * Get default model for provider */ getModel(provider: ModelProvider): string; /** * Set language preference */ setLanguage(language: string): void; /** * Get language preference */ getLanguage(): string; /** * Set skills directory */ setSkillsDirectory(directory: string): void; /** * Get skills directory */ getSkillsDirectory(): string; /** * Set security level */ setSecurityLevel(level: 'strict' | 'normal' | 'permissive'): void; /** * Get security level */ getSecurityLevel(): 'strict' | 'normal' | 'permissive'; /** * Enable/disable telemetry */ setTelemetry(enabled: boolean): void; /** * Get telemetry status */ isTelemetryEnabled(): boolean; /** * Set execution timeout */ setTimeout(timeoutMs: number): void; /** * Get execution timeout */ getTimeout(): number; /** * Set max tokens */ setMaxTokens(maxTokens: number): void; /** * Get max tokens */ getMaxTokens(): number; /** * Update model configuration */ updateModelConfig(provider: ModelProvider, config: Partial): void; /** * Set custom configuration value */ setCustom(key: string, value: unknown): void; /** * Get custom configuration value */ getCustom(key: string, defaultValue?: unknown): unknown; /** * Set user ID */ setUserId(userId: string): void; /** * Get user ID */ getUserId(): string | undefined; /** * Save configuration to disk */ save(): void; /** * Check if config has unsaved changes */ isDirtyConfig(): boolean; /** * Reset to default configuration */ reset(): void; /** * Get config file path */ getConfigPath(): string; /** * Get config directory */ getConfigDirectory(): string; /** * Validate that all required API keys are set */ validateApiKeys(providers: ModelProvider[]): { valid: boolean; missing: ModelProvider[]; }; } /** * Initialize global config (call once on startup) */ export declare function initializeConfig(configDir?: string): ConfigManager; /** * Get global config instance */ export declare function getConfig(): ConfigManager; /** * Reset global config */ export declare function resetConfig(): void; //# sourceMappingURL=config.d.ts.map