/** * Module Discovery Service * * Orchestrates multiple discovery strategies to automatically find and load * modules from various sources (packages, configs, runtime registration). */ import type { ModuleMetadata } from '../types/ModuleMetadata'; export interface DiscoveryOptions { packageScanPaths?: string[]; configScanPaths?: string[]; packageNamePattern?: string; configFilePattern?: string; enablePackageScanning?: boolean; enableConfigDetection?: boolean; enableRuntimeRegistration?: boolean; validateModules?: boolean; ignorePatterns?: string[]; } export interface DiscoveryResult { modules: ModuleMetadata[]; errors: DiscoveryError[]; warnings: DiscoveryWarning[]; stats: DiscoveryStats; } export interface DiscoveryError { source: string; message: string; details?: any; } export interface DiscoveryWarning { source: string; message: string; details?: any; } export interface DiscoveryStats { packagesScanned: number; configsFound: number; modulesDiscovered: number; validationErrors: number; discoveryTime: number; } export declare class ModuleDiscoveryService { private options; private runtimeModules; private logger; private platformInfo; constructor(options?: DiscoveryOptions); /** * Discover modules from all enabled sources */ discoverModules(): Promise; /** * Discover modules from package.json files */ private discoverFromPackages; /** * Discover modules from module.config.ts files */ private discoverFromConfigs; /** * Get modules registered at runtime */ private discoverFromRuntime; /** * Register a module at runtime */ registerRuntimeModule(module: ModuleMetadata): void; /** * Scan workspace for packages matching the pattern */ private scanWorkspacePackages; /** * Find module configuration files */ private findConfigFiles; /** * Load module metadata from package candidate */ private loadModuleFromPackage; /** * Load module metadata from configuration file */ private loadModuleFromConfig; /** * Generate module metadata from package.json */ private generateMetadataFromPackage; /** * Check if package is a module package */ private isModulePackage; /** * Extract module ID from package name */ private extractModuleId; /** * Format module name from ID */ private formatModuleName; /** * Infer category from module ID */ private inferCategoryFromId; /** * Read and parse package.json file */ private readPackageJson; /** * Remove duplicate modules (prefer first occurrence) */ private deduplicateModules; /** * Validate discovered modules */ private validateDiscoveredModules; } //# sourceMappingURL=ModuleDiscoveryService.d.ts.map