/** * Everything that changes *what bytes the model received* has to be part of the key. * Keying on the path alone made reading lines 1-50 suppress a later read of lines 51-100 * as "unchanged", withholding content the model had never seen. */ export interface ReadView { compact: boolean; lineNumbers?: boolean; offset?: number; limit?: number; } export interface ReadDedupCheck { unchanged: boolean; hash: string; } /** Check whether this exact (path, view) content was already sent this session. */ export declare function checkAlreadySent(resolvedPath: string, view: ReadView, rawContent: string): ReadDedupCheck; /** * The text last emitted for this (path, view), or null if we have none — because this is * the first read, or because the entry was evicted under the size cap. A null here means * "send the full file", never "assume it is unchanged". */ export declare function getLastEmitted(resolvedPath: string, view: ReadView): string | null; /** Record that this content was just sent, so future identical reads short-circuit. */ export declare function recordSent(resolvedPath: string, view: ReadView, hash: string, emitted?: string): void; /** Test seam — the maps are process-global and would otherwise leak between test cases. */ export declare function resetReadCache(): void; //# sourceMappingURL=ReadWorkspaceCache.d.ts.map