import Parser from 'web-tree-sitter';
import { ServiceIdentifier } from '../instantiation/instantiation';
import { LanguageIdentifier } from './languages';
export declare const ILanguageServiceProvider: ServiceIdentifier<ILanguageServiceProvider>;
export interface ILanguageServiceProvider {
    isSupportLanguage(identifier: LanguageIdentifier): boolean;
    ready(): Promise<void>;
    parse(identifier: LanguageIdentifier, input: string): Promise<Parser.Tree | undefined>;
    getParser(identifier: LanguageIdentifier): Promise<Parser | undefined>;
    getLanguage(identifier: LanguageIdentifier): Promise<Parser.Language | undefined>;
    dispose(): void;
}
export declare class LanguageServiceProvider implements ILanguageServiceProvider {
    private _loader;
    constructor();
    ready(): Promise<void>;
    parse(identifier: LanguageIdentifier, input: string): Promise<Parser.Tree>;
    getParser(identifier: LanguageIdentifier): Promise<Parser | undefined>;
    getLanguage(identifier: LanguageIdentifier): Promise<Parser.Language | undefined>;
    isSupportLanguage(identifier: LanguageIdentifier): boolean;
    dispose(): void;
}
