/**
 * Unified Configuration Manager for HyperTool MCP
 *
 * This module provides centralized configuration management for integrating
 * HyperTool with multiple MCP client applications.
 *
 * TODO: Full Profile Management System
 * - Implement profile creation, switching, and deletion
 * - Add profile-specific configuration storage
 * - Support workspace/project-specific profiles
 * - Add profile inheritance and merging
 * - Implement profile templates and presets
 */
import { EnvironmentConfig } from "../config/environment.js";
export declare class ConfigurationManager {
    private basePath;
    private registry;
    private backupManager;
    private fs;
    /**
     * Get current working directory (for testing support)
     */
    private getCurrentWorkingDirectory;
    constructor(basePath?: string);
    /**
     * Create a ConfigurationManager from environment config
     */
    static fromEnvironment(envConfig?: EnvironmentConfig): ConfigurationManager;
    /**
     * Initialize the configuration manager and directory structure
     */
    initialize(): Promise<void>;
    /**
     * Discover and import configurations from all enabled applications
     */
    discoverAndImport(): Promise<{
        imported: string[];
        importedDetails: Array<{
            appId: string;
            configPath: string;
        }>;
        failed: string[];
        backup: string;
    }>;
    /**
     * Import configuration from a specific application
     */
    private importFromApplication;
    /**
     * Import configuration from a specific application with path information
     */
    private importFromApplicationWithPath;
    /**
     * Save the merged MCP configuration to database or file based on feature flag
     */
    private saveMergedConfig;
    /**
     * Calculate checksum for a server configuration
     */
    private calculateChecksum;
    /**
     * Save app-specific MCP configuration to database or file based on feature flag
     */
    private saveAppConfig;
    /**
     * Update the main configuration in database
     */
    private updateMainConfig;
    /**
     * Generate default toolsets for each application
     */
    private generateDefaultToolsets;
    /**
     * Link HyperTool configuration to specified applications
     */
    linkApplications(appConfigs: Array<{
        appId: string;
        appName?: string;
        configType: "global" | "per-app";
        perAppInit?: "empty" | "copy" | "import";
    }> | string[]): Promise<{
        linked: string[];
        failed: string[];
    }>;
    /**
     * Initialize per-app configuration
     */
    private initializePerAppConfig;
    /**
     * Link HyperTool configuration to a specific application
     */
    private linkApplication;
    /**
     * Create a backup of all current configurations
     */
    createBackup(): Promise<import("./types/index.js").BackupResult>;
    /**
     * List available backups
     */
    listBackups(): Promise<import("./types/index.js").BackupListItem[]>;
    /**
     * Get a specific backup by ID
     */
    getBackup(backupId: string): Promise<import("./types/index.js").BackupListItem | null>;
    /**
     * Restore from a specific backup
     */
    restoreBackup(backupId: string, options?: {
        applications?: string[];
    }): Promise<import("./types/index.js").RestoreResult>;
    /**
     * Delete a backup by ID
     */
    deleteBackup(backupId: string): Promise<import("./types/index.js").DeleteResult>;
    /**
     * Unlink HyperTool from specified applications
     */
    unlinkApplications(appIds: string[], options?: {
        restore?: boolean;
        backupId?: string;
    }): Promise<{
        unlinked: string[];
        failed: string[];
        restoredWithHypertool?: string[];
    }>;
    /**
     * Check if app config has hypertool and remove it while preserving other servers
     */
    private checkAndRemoveHypertoolFromApp;
    /**
     * Remove HyperTool from a specific application without restoration
     */
    private removeHypertoolFromApp;
    /**
     * Check if we're running in development mode
     */
    private isInDevelopmentMode;
}
export * from "./types/index.js";
export { AppRegistry } from "./apps/registry.js";
export { BackupManager } from "./backup/manager.js";
export { TransformerRegistry, StandardTransformer, } from "./transformers/base.js";
//# sourceMappingURL=index.d.ts.map