/** * JSDoc Parser Utilities * Extracts JSDoc documentation from tree-sitter AST nodes * * ## Migration: TypeScript Compiler API → tree-sitter * * Tree-sitter treats comments as real grammar nodes (`comment` type). JSDoc content * (@tags, descriptions) is parsed textually from comment text — the same effective * approach the TS API used (it walked JSDoc trivia). One path, no fallback. * * All `ts.Node`/`ts.SourceFile`/`ts.JSDoc`/`ts.JSDocTag` usage replaced with * tree-sitter `ASTNode` + plain-text parsing of comment content. */ import type { ASTNode } from '../languages/types.js'; import { EnhancedFunctionMetadata } from '../types.js'; /** * JSDoc information extracted from a node */ export interface JSDocInfo { description?: string; examples?: string[]; tags?: Record; params?: Array<{ name: string; type?: string; description?: string; optional?: boolean; defaultValue?: string; }>; returns?: { type?: string; description?: string; }; throws?: Array<{ type?: string; description?: string; }>; } /** * Extract JSDoc information from a tree-sitter AST node. * @param node The AST node to extract JSDoc from * @returns Extracted JSDoc information */ export declare function extractJSDoc(node: ASTNode): JSDocInfo; /** * Extract JSDoc for function-like declarations. * @param node Function declaration, method definition, or arrow function AST node * @returns JSDoc information formatted for EnhancedFunctionMetadata */ export declare function extractFunctionJSDoc(node: ASTNode): EnhancedFunctionMetadata['jsDoc']; /** * Extract parameter information including JSDoc. * @param node Function-like declaration AST node * @returns Array of parameter information */ export declare function extractParameters(node: ASTNode): EnhancedFunctionMetadata['parameters']; /** * Extract return type information including JSDoc. * @param node Function-like declaration AST node * @returns Return type string or undefined */ export declare function extractReturnType(node: ASTNode): string | undefined; /** * Check if a function has JSDoc documentation. * @param node The AST node * @returns True if the function has JSDoc */ export declare function hasJSDoc(node: ASTNode): boolean; /** * Extract all JSDoc tags from a node. * @param node The AST node * @returns Map of tag names to their values */ export declare function extractAllJSDocTags(node: ASTNode): Record; /** * Create a searchable text representation of JSDoc. * @param jsDoc JSDoc information * @returns Searchable text string */ export declare function createSearchableJSDocText(jsDoc: EnhancedFunctionMetadata['jsDoc']): string; //# sourceMappingURL=jsDocParser.d.ts.map