/**
 * Extension Configuration Management
 * Handles loading, saving, and validation of extension configurations
 */
import { HypertoolConfig, ExtensionUserConfig } from "./dxt-config.js";
/**
 * Extension configuration manager
 */
export declare class ExtensionConfigManager {
    private readonly configPath;
    private config;
    constructor(configPath?: string);
    /**
     * Load configuration from file
     */
    load(): Promise<HypertoolConfig>;
    /**
     * Save configuration to file
     */
    save(config?: HypertoolConfig): Promise<void>;
    /**
     * Get current configuration
     */
    getConfig(): HypertoolConfig;
    /**
     * Get extension settings for a specific extension
     */
    getExtensionSettings(extensionName: string): ExtensionUserConfig | undefined;
    /**
     * Set extension settings for a specific extension
     */
    setExtensionSettings(extensionName: string, settings: ExtensionUserConfig): Promise<void>;
    /**
     * Enable an extension
     */
    enableExtension(extensionName: string): Promise<void>;
    /**
     * Disable an extension
     */
    disableExtension(extensionName: string): Promise<void>;
    /**
     * Update user config for an extension
     */
    updateExtensionUserConfig(extensionName: string, userConfig: Record<string, any>): Promise<void>;
    /**
     * Remove extension settings
     */
    removeExtension(extensionName: string): Promise<void>;
    /**
     * Get all extension names
     */
    getExtensionNames(): string[];
    /**
     * Check if auto-discovery is enabled
     */
    isAutoDiscoveryEnabled(): boolean;
    /**
     * Set auto-discovery setting
     */
    setAutoDiscovery(enabled: boolean): Promise<void>;
    /**
     * Get extensions directory
     */
    getExtensionsDirectory(): string;
    /**
     * Set extensions directory
     */
    setExtensionsDirectory(directory: string): Promise<void>;
    /**
     * Get default configuration
     */
    private getDefaultConfig;
    /**
     * Validate configuration structure
     */
    validateConfig(config: any): {
        isValid: boolean;
        errors: string[];
    };
    /**
     * Initialize configuration file if it doesn't exist
     */
    initialize(): Promise<void>;
}
//# sourceMappingURL=extensionConfig.d.ts.map