import type { IFunctionIndexReader, IFunctionIndexWriter, ILanguageParser, IRecordStore, IStalenessChecker, IDocstringParser, Config, TestDetectionMetadata, LanguageConventions } from "../types/interfaces.js"; import type { FunctionRecord } from "../types/index.js"; export declare class FunctionIndex implements IFunctionIndexReader, IFunctionIndexWriter { private parsers; private recordStore; private stalenessChecker; private docstringParser; private config; readonly projectRoot: string; private testMetadata; private conventions; private records; private fileIndex; private moduleIndex; private tagIndex; private nameIndex; private fileHashes; private fileMtimes; constructor(parsers: ILanguageParser[], recordStore: IRecordStore, stalenessChecker: IStalenessChecker, docstringParser: IDocstringParser, config: Config, projectRoot: string, testMetadata: TestDetectionMetadata, conventions: LanguageConventions); getById(id: string): FunctionRecord | null; getByModule(module: string): FunctionRecord[]; private getByModuleExact; getByFile(filePath: string): FunctionRecord[]; getByTags(tags: string[], matchMode: "all" | "any"): FunctionRecord[]; findByName(name: string, module?: string): FunctionRecord[]; findByExactName(name: string): FunctionRecord[]; findByClassAware(query: string): FunctionRecord[]; getAllNames(): string[]; getAllModules(): string[]; getAll(): FunctionRecord[]; getAllFilePaths(): string[]; getFileRecordIds(filePath: string): string[]; getFileHashes(): Map; getStats(): { files: number; functions: number; classes: number; }; getDocstringCoverage(): number; getLanguageStats(): Record; loadFromDisk(): Promise; saveToDisk(): Promise; buildFull(projectRoot: string): Promise; updateFiles(changedFiles: string[]): Promise; refreshStale(projectRoot: string): Promise; private addRecord; private removeRecord; clear(): void; private toFunctionRecord; private toRelativePath; } //# sourceMappingURL=function-index.d.ts.map