/** * Tree-sitter AST parser — native Node bindings query execution engine. * * Uses the tree-sitter native Node module to parse source files in-process, * executing S-expression query patterns directly against the AST without * spawning a subprocess or writing temp files. * * @task T509 */ import type { BatchParseResult, ParseResult } from '@cleocode/contracts'; /** * Probe and cache tree-sitter native module availability. * * Loads the tree-sitter native module once and caches the result. * Subsequent calls return the cached value with no I/O. * * @returns True if the native module loaded successfully */ export declare function isTreeSitterAvailable(): boolean; /** * Parse a single file and extract code symbols using the native tree-sitter * Node module. * * Loads the grammar for the detected language, sets it on the shared parser * singleton, runs the compiled Query against the AST, and converts captures * into CodeSymbol objects. * * @param filePath - Absolute or relative path to source file * @param projectRoot - Project root for relative path computation * @returns Parse result with symbols and any errors */ export declare function parseFile(filePath: string, projectRoot?: string): ParseResult; /** * Batch-parse multiple files, grouping by language for efficiency. * * Files are parsed individually; the parser singleton is reused across all * files. Grammar loading is cached so each grammar is loaded at most once * per process. * * @param filePaths - Array of file paths to parse * @param projectRoot - Project root for relative path computation * @returns Aggregated results with per-file breakdowns */ export declare function batchParse(filePaths: string[], projectRoot?: string): BatchParseResult; //# sourceMappingURL=parser.d.ts.map