import type { RuntimeAdapter } from "../../../platform/adapters/base.js"; export interface ProjectSourceFile { /** Logical path used for relative module resolution. */ readonly logicalPath: string; /** Authorized path supplied to the adapter for I/O. */ readonly readPath: string; readonly contents: string; } export interface ProjectSourceSnapshot { read(path: string): Promise; readTextFile(path: string): Promise; readTextFileWithinLimit(path: string, maximumBytes: number, label: string): Promise; } export declare class ProjectBoundaryViolationError extends TypeError { name: string; } export declare function rethrowProjectBoundaryViolation(error: unknown): void; /** * Capture project source through one canonical, memoized read boundary. * * All host-backed reads use the authorized canonical path. Repeated consumers * (dependency discovery, bundling, and post-build rewriting) receive the same * immutable source bytes rather than reopening a path that may have changed. */ export declare function createProjectSourceSnapshot(projectDir: string, adapter: RuntimeAdapter): Promise; //# sourceMappingURL=project-source-snapshot.d.ts.map