import Parser, { type Language } from 'web-tree-sitter'; import type { IDocContext } from '../document_transformer_service'; import type { TreeSitterLanguageInfo, TreeSitterLanguageName } from './languages'; export declare enum TreeSitterParserLoadState { INIT = "init", ERRORED = "errored", READY = "ready", UNIMPLEMENTED = "unimplemented" } export type TreeAndLanguage = { tree: Parser.Tree; languageInfo: TreeSitterLanguageInfo; language: Language; parser: Parser; }; type ParseFileParams = IDocContext & { suggestionText?: string; }; export interface TreeSitterParser { parseFile(context: ParseFileParams): Promise; parseContent(content: string, language: string): Promise; } export declare const TreeSitterParser: import("@gitlab-org/di").InterfaceId; export declare abstract class AbstractTreeSitterParser implements TreeSitterParser { #private; protected loadState: TreeSitterParserLoadState; protected languages: Map; protected readonly parsers: Map; abstract init(): Promise; constructor({ languages }: { languages: TreeSitterLanguageInfo[]; }); get loadStateValue(): TreeSitterParserLoadState; parseFile(context: ParseFileParams): Promise; parseContent(content: string, language: string): Promise; getParser(languageInfo: TreeSitterLanguageInfo): Promise; getLanguageInfoForFile(filename: string): TreeSitterLanguageInfo | undefined; buildTreeSitterInfoByExtMap(languages: TreeSitterLanguageInfo[]): Map; } export {};