import type { CstNode } from 'chevrotain'; import type { JavaSymbol } from './symbol-table.js'; export interface AnnotationInfo { /** Simple name, e.g. "Data" */ name: string; /** Fully-qualified name, e.g. "lombok.Data" */ qualifiedName?: string; /** What kind of element the annotation was found on */ target: 'class' | 'field' | 'method' | 'parameter'; } export interface GeneratedSymbol { name: string; kind: JavaSymbol['kind']; type?: string; modifiers: string[]; parameters?: { name: string; type: string; }[]; isGenerated: true; generatedBy: string; } /** * Extract annotations from a class / field / method CST node by inspecting * its modifier children. */ export declare function extractAnnotations(node: CstNode): AnnotationInfo[]; /** * Generate virtual symbols for a class based on its Lombok annotations. * * The caller controls scope by which `fields` are passed in: * - Class-level annotation → pass all class fields * - Field-level annotation → pass only the annotated field */ export declare function processAnnotations(classSymbol: JavaSymbol, annotations: AnnotationInfo[], fields: JavaSymbol[]): GeneratedSymbol[]; /** * Check if any of the given annotations mark the class as a Spring bean. */ export declare function isSpringBean(annotations: AnnotationInfo[]): boolean; /** * If the annotations include a Spring endpoint mapping, return the HTTP * method (or `null` if the annotations do not describe an endpoint). */ export declare function isSpringEndpoint(annotations: AnnotationInfo[]): { method: string; path?: string; } | null; /** * Return Spring endpoint info (HTTP method + path) when the annotations * describe an endpoint. Path defaults to `""` since annotation values * are not parsed from the CST. */ export declare function getSpringEndpointInfo(annotations: AnnotationInfo[]): { httpMethod: string; path: string; } | null; //# sourceMappingURL=annotation-processor.d.ts.map