import { type ProjectBlueprint } from "../workflows/project-blueprint.ts"; import { type ConversionUnit, type ProjectMemoryProvider, type ProjectRelationship } from "../workflows/types.ts"; export interface ProjectMemoryOptions { /** Reuse discovery's already-bounded walk instead of walking the tree twice. */ scannedPaths?: readonly string[]; /** Exact names omitted by operator policy. */ ignoredNames?: readonly string[]; /** Project-relative files or directories forbidden from outbound context. */ excludedPaths?: readonly string[]; /** Maximum file size eligible for static contract extraction. */ maxFileBytes?: number; /** Hard cap on source files read for compact contracts. */ maxContractFiles?: number; /** Hard cap for one rendered ProjectMemory block. */ renderCharLimit?: number; } export interface PlannedProjectFile { path: string; sourcePaths: string[]; language: string; purposes: string[]; created: boolean; } /** Shared project-level memory updated after every accepted generation. */ export declare class ProjectMemory implements ProjectMemoryProvider { #private; readonly root: string; readonly currentFiles: readonly string[]; readonly projectedFiles: readonly string[]; constructor(input: { root: string; currentFiles: readonly string[]; planned: ReadonlyMap; existingContracts: ReadonlyMap; contextExcludedTargets: ReadonlySet; renderCharLimit: number; }); remember(unit: ConversionUnit, code: string): void; /** Adopt the shared contract agreed for this run, before any unit is generated. */ adoptBlueprint(blueprint: ProjectBlueprint): void; get blueprint(): ProjectBlueprint | undefined; /** Planned targets, for seeding the blueprint request. */ get plannedTargets(): readonly PlannedProjectFile[]; relationsFor(unit: ConversionUnit): readonly ProjectRelationship[]; renderFor(unit: ConversionUnit, requestedBudget?: number): string; } /** Build one immutable current/projected inventory plus compact current contracts. */ export declare function buildProjectMemory(root: string, units: readonly ConversionUnit[], options?: ProjectMemoryOptions): Promise; //# sourceMappingURL=project-memory.d.ts.map