/** * User-level settings stored in ~/.minimax/user-settings.json * These are global settings that apply across all projects */ export interface UserSettings { apiKey?: string; baseURL?: string; defaultModel?: string; models?: string[]; settingsVersion?: number; } /** * Project-level settings stored in .minimax/settings.json * These are project-specific settings */ export interface ProjectSettings { model?: string; mcpServers?: Record; } /** * Global MCP settings stored in ~/.minimax/mcp-config.json * These are global MCP server configurations available across all projects */ export interface GlobalMCPSettings { servers: Record; defaultServers: string[]; lastHealthCheck?: Date; healthStatus?: Record; } /** * Unified settings manager that handles both user-level and project-level settings */ export declare class SettingsManager { private static instance; private userSettingsPath; private projectSettingsPath; private globalMCPSettingsPath; private constructor(); /** * Get singleton instance */ static getInstance(): SettingsManager; /** * Ensure directory exists for a given file path */ private ensureDirectoryExists; /** * Load user settings from ~/.minimax/user-settings.json */ loadUserSettings(): UserSettings; /** * Migrate settings from an older version to the current version */ private migrateSettings; /** * Save user settings to ~/.minimax/user-settings.json */ saveUserSettings(settings: Partial): void; /** * Update a specific user setting */ updateUserSetting(key: K, value: UserSettings[K]): void; /** * Get a specific user setting */ getUserSetting(key: K): UserSettings[K]; /** * Load project settings from .minimax/settings.json */ loadProjectSettings(): ProjectSettings; /** * Save project settings to .minimax/settings.json */ saveProjectSettings(settings: Partial): void; /** * Update a specific project setting */ updateProjectSetting(key: K, value: ProjectSettings[K]): void; /** * Get a specific project setting */ getProjectSetting(key: K): ProjectSettings[K]; /** * Get the current model with proper fallback logic: * 1. Project-specific model setting * 2. User's default model * 3. System default */ getCurrentModel(): string; /** * Set the current model for the project */ setCurrentModel(model: string): void; /** * Get available models list from user settings */ getAvailableModels(): string[]; /** * Get API key from user settings or environment */ getApiKey(): string | undefined; /** * Get base URL from user settings or environment */ getBaseURL(): string; /** * Load global MCP settings from ~/.minimax/mcp-config.json */ loadGlobalMCPSettings(): GlobalMCPSettings; /** * Save global MCP settings to ~/.minimax/mcp-config.json */ saveGlobalMCPSettings(settings: Partial): void; /** * Add a global MCP server */ addGlobalMCPServer(name: string, config: any): void; /** * Remove a global MCP server */ removeGlobalMCPServer(name: string): void; /** * Get all available MCP servers (global + project) */ getAllMCPServers(): Record; /** * Update health status for MCP servers */ updateMCPHealthStatus(healthStatus: Record): void; /** * Get MCP health status */ getMCPHealthStatus(): { status: Record; lastCheck: Date; }; } /** * Convenience function to get the singleton instance */ export declare function getSettingsManager(): SettingsManager;