import type { ParseResult } from '../java/parser.js'; import type { SymbolTable } from '../java/symbol-table.js'; export interface CachedDocument { uri: string; version: number; content: string; parseResult: ParseResult; symbolTable: SymbolTable; lastParsed: number; isDirty: boolean; } /** * Smart document cache that tracks document versions and avoids unnecessary reparsing. */ export declare class DocumentCache { private cache; private parseDebounceTimers; /** * Get cached document. If version is provided, only returns when version matches. */ get(uri: string, version?: number): CachedDocument | undefined; /** * Update document content. Returns true if content actually changed. */ update(uri: string, version: number, content: string, parseResult: ParseResult, symbolTable: SymbolTable): boolean; /** * Mark document as dirty (needs reparse). */ markDirty(uri: string): void; /** * Remove document from cache. */ remove(uri: string): void; /** * Get all cached URIs. */ getUris(): string[]; /** * Get cache size. */ get size(): number; /** * Clear entire cache. */ clear(): void; /** * Schedule a debounced reparse. Cancels any previously scheduled reparse for the same URI. */ scheduleReparse(uri: string, content: string, delayMs: number, parseFn: (content: string) => { parseResult: ParseResult; symbolTable: SymbolTable; }): void; /** * Cancel any pending reparse for a URI. */ cancelReparse(uri: string): void; } //# sourceMappingURL=document-cache.d.ts.map