/**
 * 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