import * as Parser from "@vscode/tree-sitter-wasm";
import { Event } from "../../../base/common/event.js";
import { ITextModel } from "../model.js";
import { ITextModelTreeSitter, TreeUpdateEvent } from "@codingame/monaco-vscode-treesitter-service-override/vscode/vs/editor/common/services/treeSitterParserService";
export declare const ITreeSitterParserService: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ITreeSitterParserService>;
export interface ITreeSitterParserService {
    readonly _serviceBrand: undefined;
    onDidAddLanguage: Event<{
        id: string;
        language: Parser.Language;
    }>;
    getOrInitLanguage(languageId: string): Parser.Language | undefined;
    getLanguage(languageId: string): Promise<Parser.Language | undefined>;
    getParseResult(textModel: ITextModel): ITextModelTreeSitter | undefined;
    getTree(content: string, languageId: string): Promise<Parser.Tree | undefined>;
    getTreeSync(content: string, languageId: string): Parser.Tree | undefined;
    onDidUpdateTree: Event<TreeUpdateEvent>;
    getTextModelTreeSitter(model: ITextModel, parseImmediately?: boolean): Promise<ITextModelTreeSitter | undefined>;
}
export declare const ITreeSitterImporter: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ITreeSitterImporter>;
export interface ITreeSitterImporter {
    readonly _serviceBrand: undefined;
    getParserClass(): Promise<typeof Parser.Parser>;
    readonly parserClass: typeof Parser.Parser | undefined;
    getLanguageClass(): Promise<typeof Parser.Language>;
    getQueryClass(): Promise<typeof Parser.Query>;
}
