import type { LanguageParser, FrameworkExtractor, ParsedFile } from "./types.js"; import { type RepoConfig } from "./file-classifier.js"; import type { IgnoreConfig } from "../config/ignore.js"; export declare class ParserRegistry { private parsers; private extractors; private extensionMap; private activeExtractors; /** Register a language parser and index its file extensions. */ registerParser(parser: LanguageParser): void; /** Register a framework extractor for later detection. */ registerExtractor(extractor: FrameworkExtractor): void; /** * Scan `rootPaths` for files and run each registered extractor's `detect` * method. Active extractors are stored for use during parsing. * * @returns IDs of the extractors that matched. */ detectFrameworks(rootPaths: string[]): Promise; /** * Parse a single file. The appropriate language parser is selected by file * extension. Active framework extractors are applied in registration order. * File role is classified immediately after parsing. */ parseFile(filePath: string, repo: string, repoConfig?: RepoConfig): Promise; /** * Parse a "virtual" file where the caller provides the file contents. * Used for remote sync (VPS engine) where the engine cannot read from a local * checkout path. */ parseVirtualFile(filePath: string, repo: string, source: string, repoConfig?: RepoConfig): Promise; /** * Recursively parse every supported file under `dirPath`. * Skips `node_modules`, `vendor`, `dist`, and `.git`. Files are * processed in batches of {@link BATCH_SIZE} for backpressure control. * After parsing, applies graph-based role promotion (entry_point by * inbound import degree, shared_utility by polymorphic associations). */ parseDirectory(dirPath: string, repo: string, repoConfig?: RepoConfig, ignoreConfig?: IgnoreConfig): Promise; /** All file extensions handled by registered parsers. */ getSupportedExtensions(): string[]; /** All registered language parsers. */ getRegisteredParsers(): LanguageParser[]; /** Extractors that matched during the last `detectFrameworks` call. */ getActiveExtractors(): FrameworkExtractor[]; } export declare const registry: ParserRegistry; //# sourceMappingURL=parser-registry.d.ts.map