import type { Logger } from '../utils/logger.js'; import type { ParseResult } from '../java/parser.js'; import type { SymbolTable } from '../java/symbol-table.js'; export interface SourceEntry { qualifiedName: string; sourceText: string; parseResult: ParseResult; symbolTable: SymbolTable; } export interface SourceJarInfo { jarPath: string; groupId: string; artifactId: string; version: string; } /** * Manages source JAR extraction, parsing, and caching for go-to-definition * into dependency sources. */ export declare class SourceJarCache { private cache; private jarPaths; private logger; private loadedJars; constructor(logger: Logger); /** * Register source JARs from resolved classpath. * This just stores the JAR paths; actual extraction is lazy (on demand). */ registerSourceJars(jars: SourceJarInfo[]): void; /** * Find source for a fully qualified type name. * Returns the parsed source entry, or undefined if not available. * Lazy-loads from source JAR on first access. */ findSource(qualifiedName: string): Promise; /** * Eagerly index an entire source JAR (extract and parse all .java files). * Useful for preloading commonly-used dependencies. */ indexSourceJar(jarPath: string): Promise; /** * Extract a single file from a JAR. */ private extractFromJar; /** * Create a virtual URI for a source JAR entry. * Format: jj-source-jar:///path/to/Class.java */ static createVirtualUri(qualifiedName: string): string; /** * Check if a URI is a virtual source JAR URI. */ static isVirtualUri(uri: string): boolean; /** * Extract the qualified name from a virtual URI. */ static qualifiedNameFromUri(uri: string): string; get size(): number; clear(): void; } //# sourceMappingURL=source-jar.d.ts.map