/** * @nahisaho/musubix-codegraph - Extractor Registry * * Registry for language-specific extractors with lazy loading support * * @see REQ-CG-REG-001 * @see DES-CG-REGISTRY * @see TSK-CG-002 */ import type { Language } from '../../types.js'; import type { BaseExtractor } from './base-extractor.js'; type ExtractorFactory = () => Promise; /** * Registry for language extractors * * Supports lazy loading to minimize memory footprint */ declare class ExtractorRegistry { private readonly extractors; private readonly factories; private readonly loading; /** * Register an extractor instance directly */ register(language: Language, extractor: BaseExtractor): void; /** * Register a lazy extractor factory * The factory will be called only when the extractor is first requested */ registerFactory(language: Language, factory: ExtractorFactory): void; /** * Get an extractor for a language * Returns undefined if not registered */ getExtractor(language: Language): Promise; /** * Get an extractor synchronously (returns undefined if not yet loaded) */ getExtractorSync(language: Language): BaseExtractor | undefined; /** * Check if an extractor is registered for a language */ hasExtractor(language: Language): boolean; /** * Get all registered languages */ getRegisteredLanguages(): Language[]; /** * Get all loaded extractors */ getLoadedExtractors(): Map; /** * Preload all extractors */ preloadAll(): Promise; /** * Clear all registered extractors */ clear(): void; } export declare const extractorRegistry: ExtractorRegistry; /** * Register all language extractors * Uses lazy loading to minimize initial load time */ export declare function registerAllExtractors(): void; export type { BaseExtractor, LanguageConfig, SyntaxTree, SyntaxNode } from './base-extractor.js'; //# sourceMappingURL=index.d.ts.map