///
import { WorkspaceSymbolParams } from 'vscode-languageserver-protocol';
import { CancellationToken, Disposable, MaybePromise, Mutable } from '@tartjs/core/lib/common';
import { SymbolInformation } from 'vscode-languageserver-types';
import { Language, LanguageService } from '@tartjs/core/lib/browser/language-service';
import URI from '@tartjs/core/lib/common/uri';
import { MonacoDiagnosticCollection } from './monaco-diagnostic-collection';
import { ProtocolToMonacoConverter } from './protocol-to-monaco-converter';
export interface WorkspaceSymbolProvider {
provideWorkspaceSymbols(params: WorkspaceSymbolParams, token: CancellationToken): MaybePromise;
resolveWorkspaceSymbol?(symbol: SymbolInformation, token: CancellationToken): Thenable;
}
export declare class MonacoLanguages implements LanguageService {
readonly workspaceSymbolProviders: WorkspaceSymbolProvider[];
protected readonly makers: Map;
protected readonly p2m: ProtocolToMonacoConverter;
get languages(): Language[];
registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider): Disposable;
getLanguage(languageId: string): Language | undefined;
protected init(): void;
protected updateMarkers(uri: URI): void;
protected mergeLanguages(registered: monaco.languages.ILanguageExtensionPoint[]): Map>;
}