import { EventEmitter } from 'events'; import { MCPDogConfig, MCPServerConfig } from '../types/index.js'; import { ConfigSuggestion } from '../core/auto-config-generator.js'; export declare class ConfigManager extends EventEmitter { private config; private configPath; private autoCreateConfig; private watchAbortController?; private autoConfigGenerator; private protocolDetector; constructor(configPath?: string, autoCreateConfig?: boolean); /** * Get the default configuration file path * Always use user home directory ~/.mcpdog/mcpdog.config.json */ private getDefaultConfigPath; private isStdioMode; private shouldAutoCreateConfig; private getDefaultConfig; loadConfig(): Promise; /** * Initialize auto-config by detecting available MCP servers and creating basic configuration */ private initializeAutoConfig; saveConfig(): Promise; getConfig(): MCPDogConfig; setConfig(config: MCPDogConfig): void; getConfigPath(): string; getServerConfig(serverName: string): MCPServerConfig | undefined; getServer(serverName: string): MCPServerConfig | undefined; getAllServers(): Record; getServers(): Record; getEnabledServers(): Record; toggleServer(name: string, enabled: boolean): boolean; addServer(name: string, config: MCPServerConfig): boolean; removeServer(name: string): boolean; updateServer(name: string, config: Partial): boolean; /** * Rename a server */ renameServer(oldName: string, newName: string): boolean; /** * Generate a unique server name */ generateUniqueServerName(baseName: string): string; /** * Validate server name */ validateServerName(name: string): { valid: boolean; error?: string; suggestions?: string[]; }; /** * Check if server name conflicts with existing names */ checkServerNameConflict(name: string): boolean; /** * Start watching config file */ startWatching(): Promise; /** * Watch config file for changes and reload */ watchConfig(): Promise; /** * Stop watching config file */ stopWatching(): void; /** * Validate configuration structure */ validateConfig(config?: MCPDogConfig): { valid: boolean; errors: string[]; }; /** * Optimize configuration by detecting protocols and suggesting improvements */ optimizeConfig(): Promise; /** * Apply configuration suggestions */ applySuggestions(suggestions: ConfigSuggestion[]): Promise; /** * Export configuration for backup or sharing */ exportConfig(): string; /** * Import configuration from JSON string */ importConfig(configJson: string): Promise; /** * Get configuration statistics */ getConfigStats(): { serverCount: number; totalTools: number; configSize: number; lastModified?: Date; }; generateAutoConfig(): Promise; private generateConfigSuggestionsInternal; generateConfigSuggestions(): Promise; detectConfigProtocol(config: MCPServerConfig): Promise; validateServerConfig(config: MCPServerConfig): { valid: boolean; errors: string[]; }; optimizeServerConfig(name: string): Promise; auditAllServerProtocols(): Promise>; toggleTool(serverName: string, toolName: string, enabled: boolean): boolean; } //# sourceMappingURL=config-manager.d.ts.map