import type { ClassFileInfo } from '../java/class-file-reader.js'; import type { ResolvedDependency } from './classpath-resolver.js'; import type { Logger } from '../utils/logger.js'; export interface IndexedType { className: string; simpleName: string; packageName: string; jarPath: string; sourceJarPath?: string; dependency: { groupId: string; artifactId: string; version: string; }; classInfo: ClassFileInfo; } export interface ZipEntry { fileName: string; compressedSize: number; uncompressedSize: number; compressionMethod: number; localHeaderOffset: number; } /** * Parse the central directory of a ZIP buffer and return all entries. */ export declare function parseZipEntries(buf: Buffer): ZipEntry[]; /** * Extract a single entry's uncompressed data from the ZIP buffer. */ export declare function extractEntry(buf: Buffer, entry: ZipEntry): Buffer | null; export declare class JarIndex { private typesByName; private typesBySimpleName; private logger; constructor(logger: Logger); /** * Index all JARs from resolved dependencies. */ indexDependencies(dependencies: ResolvedDependency[]): Promise; /** * Index a single JAR file. Returns the number of types indexed. */ indexJar(jarPath: string, dep: ResolvedDependency): Promise; /** * Find a type by fully qualified name. */ findType(qualifiedName: string): IndexedType | undefined; /** * Find types by simple name (may return multiple from different packages). */ findTypesBySimpleName(simpleName: string): IndexedType[]; /** * Search types by prefix (for completion). Matches against both simple names * and fully qualified names. Returns up to `limit` results (default 50). */ searchTypes(query: string, limit?: number): IndexedType[]; /** * Get all types in a package. */ getTypesInPackage(packageName: string): IndexedType[]; /** * Get total number of indexed types. */ get size(): number; /** * Clear the index. */ clear(): void; } //# sourceMappingURL=jar-index.d.ts.map