import { KnowledgeGraph } from '../graph/types.js'; import type { SymbolTableWriter, ExtractedHeritage } from './model/index.js'; import { ASTCache } from './ast-cache.js'; import type { ParsedFile } from '../../_shared/index.js'; import { WorkerPool } from './workers/worker-pool.js'; import type { ExtractedImport, ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, ExtractedDecoratorRoute, ExtractedToolDef, FileConstructorBindings, FileScopeBindings, ExtractedORMQuery } from './workers/parse-worker.js'; export type FileProgressCallback = (current: number, total: number, filePath: string) => void; export interface WorkerExtractedData { imports: ExtractedImport[]; calls: ExtractedCall[]; assignments: ExtractedAssignment[]; heritage: ExtractedHeritage[]; routes: ExtractedRoute[]; fetchCalls: ExtractedFetchCall[]; decoratorRoutes: ExtractedDecoratorRoute[]; toolDefs: ExtractedToolDef[]; ormQueries: ExtractedORMQuery[]; constructorBindings: FileConstructorBindings[]; fileScopeBindings: FileScopeBindings[]; /** * Per-file `ParsedFile` artifacts from the new scope-based resolution * pipeline (RFC #909 Ring 2). Empty until a provider implements * `emitScopeCaptures` — additive to the legacy DAG path. Aggregated * from every worker chunk; consumed downstream by #921's * finalize-orchestrator. */ parsedFiles: ParsedFile[]; } export declare const processParsing: (graph: KnowledgeGraph, files: { path: string; content: string; }[], symbolTable: SymbolTableWriter, astCache: ASTCache, /** * Persistent tree cache (separate from `astCache`, which the caller * clears between chunks). Sequential parses additionally write the * Tree here so cross-phase consumers (scope-resolution) can read it. * Worker-mode parses skip — Trees can't cross MessageChannels. * Pass `undefined` if no consumer needs cross-phase access. */ scopeTreeCache: ASTCache | undefined, onFileProgress?: FileProgressCallback, workerPool?: WorkerPool) => Promise;