import type { FileToParse, MetadataUpdate } from '../../../../types.js';
import type { PipelineContext } from '../context.js';
/** Shape of precomputed file data gathered from filesToParse entries. */
interface PrecomputedFileData {
    file: string;
    relPath?: string;
    content?: string;
    hash?: string;
    stat?: {
        mtime: number;
        size: number;
    } | null;
    _reverseDepOnly?: boolean;
}
/** A single file_hashes row. */
interface FileHashRecord {
    file: string;
    hash: string;
    mtime: number;
    size: number;
}
/**
 * Build file hash entries for every collected file, including those that
 * produced zero symbols (empty files, parsers that silently no-op'd, or
 * optional-language extensions whose grammar wasn't installed). Iterating the
 * symbol map instead would skip such files and leave them missing from
 * `file_hashes`, which permanently breaks the JS-side fast-skip pre-flight on
 * any subsequent no-op rebuild (#1068).
 *
 * Exported for unit testing.
 */
export declare function buildFileHashes(filesToParse: FileToParse[], precomputedData: Map<string, PrecomputedFileData>, metadataUpdates: MetadataUpdate[], rootDir: string): FileHashRecord[];
export declare function insertNodes(ctx: PipelineContext): Promise<void>;
export {};
//# sourceMappingURL=insert-nodes.d.ts.map