import Parser from "web-tree-sitter";
export declare function initParser(): Promise<void>;
export declare function getParser(language: string): Promise<Parser | null>;
export declare function getLanguageForExtension(ext: string): string | null;
/**
 * Full-path language resolver. Checks multi-dot suffixes first (e.g.
 * `.gradle.kts` beats `.kts`) so build scripts can be routed to a dedicated
 * extractor while regular `.kts` scripts still use the plain Kotlin pipeline.
 *
 * Returns the language string or null if the path has no recognized
 * extension / suffix.
 */
export declare function getLanguageForPath(filePath: string): string | null;
/**
 * Languages that do NOT produce structured symbols through the normal parser
 * pipeline. A `FileEntry.language` falling in this set means the file is only
 * indexed via its file entry + ripgrep + secret scanning — symbol tools
 * (search_symbols, get_file_outline, etc.) will return empty results for it.
 *
 * Used by the H11 hint to warn agents when symbol queries come back empty
 * because of missing parsers, rather than because of a legitimately empty
 * search space.
 *
 * Note: this set must NOT contain any language that has a real tree-sitter
 * extractor. When a new parser is added (e.g. kotlin → full extractor), its
 * language string must be removed from here so H11 stops firing for those
 * files.
 */
export { STUB_LANGUAGES } from "./stub-languages.js";
/**
 * Returns true when the given `FileEntry.language` value is known to produce
 * structured symbols (i.e. not in `STUB_LANGUAGES`). This is the dynamic
 * lookup used by H11 — adding a new parser to EXTENSION_MAP with any string
 * outside STUB_LANGUAGES automatically opts it out of the H11 warning.
 */
export declare function languageHasParser(language: string): boolean;
/**
 * Default per-file parse timeout. Tree-sitter is synchronous and can hang on
 * pathological inputs (deeply nested AST, malformed source). 30s is generous
 * for normal files; anything slower likely indicates a parser bug or a file
 * that should be skipped. Override via CODESIFT_PARSE_TIMEOUT_MS env var.
 */
export declare const DEFAULT_PARSE_TIMEOUT_MS = 30000;
export declare function parseFile(filePath: string, source: string, options?: {
    timeoutMs?: number;
}): Promise<Parser.Tree | null>;
//# sourceMappingURL=parser-manager.d.ts.map