@civic/hub-bridge
Version:
Stdio <-> HTTP/SSE MCP bridge with Civic auth handling
71 lines • 1.95 kB
TypeScript
/**
* ConfigManager.ts
*
* Unified configuration management for hub-bridge.
* Handles OAuth tokens, profile selection, and other persistent configuration.
*/
import type { OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
import type { TokenPersistence } from '@civic/auth-mcp';
/**
* Centralized configuration manager for hub-bridge
* Also implements TokenPersistence interface for OAuth token storage
*/
export declare class ConfigManager implements TokenPersistence {
private static instance;
private readonly configPath;
private config;
private constructor();
/**
* Get singleton instance of ConfigManager
*/
static getInstance(configPath?: string): ConfigManager;
/**
* Reset singleton instance (primarily for testing)
*/
static resetInstance(): void;
/**
* Expands tilde (~) in file paths to the user's home directory
*/
private expandTildePath;
/**
* Load configuration from disk
*/
private loadConfig;
/**
* Save configuration to disk
*/
private saveConfig;
/**
* Get OAuth tokens (alias for TokenPersistence interface)
*/
getTokens(): Promise<OAuthTokens | undefined>;
/**
* Load OAuth tokens (TokenPersistence interface method)
*/
loadTokens(): Promise<OAuthTokens | undefined>;
/**
* Save OAuth tokens
*/
saveTokens(tokens: OAuthTokens): Promise<void>;
/**
* Clear OAuth tokens
*/
clearTokens(): Promise<void>;
/**
* Get current profile alias
*/
getCurrentProfileAlias(): Promise<string | undefined>;
/**
* Set current profile by alias
*/
setCurrentProfile(alias: string): Promise<void>;
/**
* Clear current profile selection
*/
clearCurrentProfile(): Promise<void>;
/**
* Clear all configuration
*/
clearAll(): Promise<void>;
}
//# sourceMappingURL=ConfigManager.d.ts.map