/** * Read capability — reads files with line numbers. */ import type { CapabilityHandler } from '../agent/types.js'; /** * Tracks files that were only partially read (offset or limit applied). * Stores the read range so Edit tool can give smarter warnings — * only warns if the edit target is near/beyond the boundary of what was read. * Exported so edit.ts can check and clear entries. */ export declare const partiallyReadFiles: Map; /** * Tracks files that have been read in this session — enables read-before-edit enforcement. * Stores the file's mtime at read time so we can detect stale writes. * Exported so edit.ts and write.ts can check. */ export declare const fileReadTracker: Map; /** Invalidate the content cache for a file (call after Edit/Write modifies it). */ export declare function invalidateFileCache(resolvedPath: string): void; /** * Reset all module-level tracking state for a fresh session. * * These Maps live at module scope (not inside a class) because read/edit/write * tools share them to enforce "read-before-edit" and to cache unchanged files. * When a library caller invokes `interactiveSession()` a second time in the * same process, stale entries from the prior session would: * - make Edit/Write falsely believe files were read in this session * - serve cached content for files that may have changed externally * - keep partial-read bounds from the wrong session * Called from the agent loop at session start to guarantee a clean slate. */ export declare function clearSessionState(): void; export declare const readCapability: CapabilityHandler;