/**
 * 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