import type { ProjectMap } from "../../core/domain/project-map.js"; import type { ResolvedConfig } from "../../core/ports/config.port.js"; import type { IFileReader, IFileWalker } from "../../core/ports/filesystem.port.js"; import type { IClock } from "../../core/ports/clock.port.js"; import type { ILogger } from "../../core/ports/logger.port.js"; import type { ISourceParser } from "../../core/ports/parser.port.js"; import type { IRevisionProvider } from "../../core/ports/revision.port.js"; import { type ExtractorSet } from "./extractor-set.js"; export type BuildDeps = { readonly config: ResolvedConfig; readonly walker: IFileWalker; readonly reader: IFileReader; readonly parser: ISourceParser; readonly clock: IClock; readonly logger: ILogger; readonly revision: IRevisionProvider; readonly toolVersion: string; readonly extractors?: ExtractorSet; }; export type BuildResult = { readonly map: ProjectMap; readonly projectRoot: string; }; export declare class BuildProjectMapUseCase { private readonly deps; constructor(deps: BuildDeps); execute(cwd: string): Promise; private buildExtractionContext; private runExtractors; private assembleMap; /** * Parses what the source set holds. Nothing here reads the filesystem or * sees an absolute path: extraction is a function of the text alone, the * same discipline project-map:POL-003 gives detection. */ private parseAll; private loadOverview; }