import { SourceConfigResolver as Resolver } from "./SourceConfigResolver.js"; import { SourceRecord, DiffEntry } from "./types.js"; import { StorageRepository } from "./repository/StorageRepository.js"; import { SourceLoader } from "./SourceLoader"; import { LoggerProvider } from "./logger/LoggerProvider"; import { IIndexReader } from "./IIndexReader.js"; export type { DiffEntry, DirectRelationMap, ThroughRelationMap } from "./types.js"; /** * IndexBuilder: handles full and incremental index building. */ export declare class IndexBuilder { private readonly sourceLoader; private readonly repository; private readonly resolver; private readonly logger; private readonly reader; private customIndexers; constructor(sourceLoader: SourceLoader, repository: StorageRepository, resolver: Resolver, logger: LoggerProvider, reader: IIndexReader, customIndexers?: Record any>); /** * Saves indexes and slug lists for all sources. * * @throws Error if writing to storage fails. */ save(): Promise; /** * Incrementally updates affected indexes based on diff entries. * * @param diffEntries - List of file change entries. */ updateIndexesForFiles(diffEntries: DiffEntry[]): Promise; /** * Builds indexable records for a single source (with joined relations). */ private buildRecords; /** * Organize the prefix directory paths for each index file location from resolved records. */ private getPrefixIndexPathByResolvedRecords; /** * Organize the map of search keys for the PrefixIndexLine. */ private createIndexLines; /** * Get converted PrefixIndex paths. */ private collectPrefixDirs; /** * Get incremental index entry status. */ private getStatus; /** * Extract index field from SourceRecord. */ private extractIndexField; }