import type { CstNode } from 'chevrotain'; export type SymbolKind = 'class' | 'interface' | 'enum' | 'record' | 'method' | 'constructor' | 'field' | 'variable' | 'parameter' | 'enumConstant' | 'annotation'; export interface JavaSymbol { name: string; kind: SymbolKind; type?: string; modifiers: string[]; /** 0-based line */ line: number; /** 0-based column */ column: number; endLine: number; endColumn: number; /** Parameters for methods/constructors: [{type, name}] */ parameters?: { type: string; name: string; }[]; /** Return type for methods */ returnType?: string; /** Parent symbol name (e.g., class name for a method) */ parent?: string; /** Children symbols (members of a class/interface) */ children: JavaSymbol[]; /** Superclass name (for classes) */ superclass?: string; /** Implemented/extended interface names */ interfaces?: string[]; /** Generic type parameters, e.g., ["T", "K", "V"] */ typeParameters?: string[]; /** Bounds for type parameters, e.g., {"T": "extends Comparable"} */ typeParameterBounds?: Record; } export interface SymbolTable { symbols: JavaSymbol[]; /** Flat list for quick lookup */ allSymbols: JavaSymbol[]; } /** * Build a symbol table from a java-parser CST. */ export declare function buildSymbolTable(cst: CstNode): SymbolTable; //# sourceMappingURL=symbol-table.d.ts.map