/**
 * Extension Manager
 * Orchestrates extension discovery, configuration, validation, and runtime management
 */
import { ExtensionRuntimeConfig, ValidationResult } from "../config/dxt-config.js";
/**
 * Extension manager coordinates all extension operations
 */
export declare class ExtensionManager {
    private discoveryService;
    private readonly validationService;
    private readonly configManager;
    private runtimeConfigs;
    private initialized;
    constructor(configPath?: string, extensionsBaseDir?: string);
    /**
     * Initialize the extension system
     */
    initialize(): Promise<void>;
    /**
     * Load and validate all extensions
     */
    loadExtensions(): Promise<ExtensionRuntimeConfig[]>;
    /**
     * Get all runtime configurations
     */
    getRuntimeConfigs(): ExtensionRuntimeConfig[];
    /**
     * Get enabled runtime configurations only
     */
    getEnabledConfigs(): ExtensionRuntimeConfig[];
    /**
     * Get runtime configuration for a specific extension
     */
    getExtensionConfig(name: string): ExtensionRuntimeConfig | undefined;
    /**
     * Enable an extension
     */
    enableExtension(name: string): Promise<void>;
    /**
     * Disable an extension
     */
    disableExtension(name: string): Promise<void>;
    /**
     * Update extension user configuration
     */
    updateExtensionUserConfig(name: string, userConfig: Record<string, any>): Promise<ValidationResult>;
    /**
     * Install a new extension from DXT file
     */
    installExtension(dxtPath: string): Promise<{
        success: boolean;
        message: string;
        name?: string;
    }>;
    /**
     * Refresh all extensions (re-unpack if needed)
     */
    refreshExtensions(): Promise<void>;
    /**
     * Get validation report for an extension
     */
    getValidationReport(name: string): string | undefined;
    /**
     * Get configuration suggestions for fixing validation errors
     */
    getConfigSuggestions(name: string): string[];
    /**
     * List all extensions with their status
     */
    listExtensions(): Array<{
        name: string;
        enabled: boolean;
        valid: boolean;
        version: string;
        description?: string;
        errors: string[];
        warnings: string[];
    }>;
    /**
     * Get extension directory path
     */
    getExtensionsDirectory(): string;
    /**
     * Set extension directory and refresh
     */
    setExtensionsDirectory(directory: string): Promise<void>;
    /**
     * Check if auto-discovery is enabled
     */
    isAutoDiscoveryEnabled(): boolean;
    /**
     * Enable/disable auto-discovery
     */
    setAutoDiscovery(enabled: boolean): Promise<void>;
    /**
     * Remove an extension
     */
    removeExtension(name: string): Promise<void>;
    /**
     * Get extension metadata
     */
    getExtensionMetadata(name: string): import("../config/dxt-config.js").ExtensionMetadata | undefined;
    /**
     * Get all extension metadata
     */
    getAllMetadata(): Record<string, import("../config/dxt-config.js").ExtensionMetadata>;
    /**
     * Create a server configuration that can be used with the connection factory
     * This replaces the old DXT server type approach
     */
    createServerConfigForExtension(name: string): any;
    /**
     * Get all enabled extensions as server configs for connection factory
     */
    getEnabledExtensionsAsServerConfigs(): Record<string, any>;
}
//# sourceMappingURL=manager.d.ts.map