import { pack } from 'repomix'; import { NervusDB } from '@nervusdb/core'; import type { IndexMetadata, GitFingerprint } from '../types/indexMetadata.js'; export interface IndexingServiceOptions { dbRoot?: string; tempDir?: string; } interface IndexResult { projectDir: string; metadata: IndexMetadata; processedFiles: number; } interface IndexingDependencies { pack: typeof pack; openDatabase: typeof NervusDB.open; getGitFingerprint: (projectPath: string) => Promise; uuid: () => string; } export declare class IndexingService { private readonly dbRoot; private readonly tempRoot; private readonly deps; constructor(options?: IndexingServiceOptions, deps?: Partial); index(projectPath: string): Promise; private runRepomix; private buildKnowledgeGraph; /** * 构建文件级知识图谱(回退方案) */ private buildFileLevelGraph; /** * 构建代码级知识图谱(使用多语言解析器) */ private buildCodeLevelGraph; /** * 推断实体类型(基于语法关键字) */ private inferEntityType; /** * 提取实体名称 */ private extractEntityName; /** * 提取函数调用(简单的正则匹配) * 支持:foo()、obj.method()、Class.staticMethod()、this.method() */ private extractFunctionCalls; /** * 提取类继承(extends) */ private extractExtendsClass; /** * 提取接口实现(implements) */ private extractImplementsInterfaces; /** * 提取 import 的模块路径 */ private extractImportModule; /** * 解析 import 路径为文件节点 ID */ private resolveImportPath; private getPackageVersion; private writeMetadata; } export {};