/**
 * Module Catalog
 *
 * Provides a registry of available module experts and their capabilities.
 * Helps cross-domain experts discover and route to appropriate modules.
 *
 * The catalog can be populated from:
 * 1. Skill registry (auto-discover skills with module metadata)
 * 2. Static configuration (predefined module mappings)
 */
import { ModuleCatalogEntry, ModuleCapability } from './types';
import { ModuleLayer } from '../../../services/skillEngine/types';
/**
 * ModuleCatalog - Registry of module experts
 */
export declare class ModuleCatalog {
    private modules;
    private skillToModule;
    private initialized;
    constructor();
    /**
     * Initialize catalog from skill registry and static mappings
     */
    initialize(): Promise<void>;
    /**
     * Ensure catalog is initialized
     */
    private ensureInitialized;
    /**
     * Add a module to the catalog
     */
    addModule(entry: ModuleCatalogEntry): void;
    /**
     * Get a module by name
     */
    getModule(name: string): ModuleCatalogEntry | undefined;
    /**
     * Check if a module exists
     */
    hasModule(name: string): boolean;
    /**
     * Get all modules
     */
    getAllModules(): ModuleCatalogEntry[];
    /**
     * Get modules by layer
     */
    getModulesByLayer(layer: ModuleLayer): ModuleCatalogEntry[];
    /**
     * Get module by component name
     */
    getModuleByComponent(component: string): ModuleCatalogEntry | undefined;
    /**
     * Get the module that owns a skill
     */
    getModuleForSkill(skillName: string): string | undefined;
    /**
     * Get skills for a module
     */
    getSkillsForModule(moduleId: string): string[];
    /**
     * Map a skill to a module
     */
    mapSkillToModule(skillName: string, moduleId: string): void;
    /**
     * Get related modules for a given module
     */
    getRelatedModules(moduleId: string): string[];
    /**
     * Find modules that can help with a specific analysis type
     */
    findModulesForAnalysis(analysisType: string): string[];
    /**
     * Find modules that can answer a specific question type
     */
    findModulesByCapability(capabilityId: string): string[];
    /**
     * Get all available capabilities across all modules
     */
    getAllCapabilities(): Array<{
        moduleId: string;
        capability: ModuleCapability;
    }>;
    /**
     * Get module hierarchy path (layer -> component -> subsystems)
     */
    getModulePath(moduleId: string): string;
    /**
     * Print catalog summary for debugging
     */
    printSummary(): void;
}
/**
 * Singleton instance for global access
 */
export declare const moduleCatalog: ModuleCatalog;
//# sourceMappingURL=moduleCatalog.d.ts.map