import { CallHierarchyIncomingCall, CallHierarchyItem, CallHierarchyOutgoingCall, CancellationToken, CodeAction, CodeActionContext, CodeLens, Color, ColorInformation, ColorPresentation, CompletionContext, CompletionItem, CompletionList, DefinitionLink, Diagnostic, DocumentHighlight, FoldingRange, FormattingOptions, Hover, LinkedEditingRanges, Location, Position, Range, ReferenceContext, SelectionRange, SemanticTokens, SignatureHelp, SignatureHelpContext, SymbolInformation, TextDocumentContentChangeEvent, TextDocumentIdentifier, TextEdit, WorkspaceEdit, InlayHint, WorkspaceSymbol, DocumentSymbol, DocumentDiagnosticReport } from 'vscode-languageserver'; import { DocumentManager } from '../lib/documents'; import { AppCompletionItem, FileRename, LSPProviderConfig, LSProvider, OnWatchFileChanges, OnWatchFileChangesPara, Plugin } from './interfaces'; export declare class PluginHost implements LSProvider, OnWatchFileChanges { private documentsManager; private plugins; private pluginHostConfig; private deferredRequests; private requestTimings; constructor(documentsManager: DocumentManager); initialize(pluginHostConfig: LSPProviderConfig): void; register(plugin: Plugin): void; didUpdateDocument(): void; getDiagnostics(textDocument: TextDocumentIdentifier, cancellationToken?: CancellationToken): Promise; private canSkipDiagnostics; getDiagnosticsForPullMode(textDocument: TextDocumentIdentifier, previousResultId: string | undefined, cancellationToken?: CancellationToken): Promise; doHover(textDocument: TextDocumentIdentifier, position: Position): Promise; getCompletions(textDocument: TextDocumentIdentifier, position: Position, completionContext?: CompletionContext, cancellationToken?: CancellationToken): Promise; resolveCompletion(textDocument: TextDocumentIdentifier, completionItem: AppCompletionItem, cancellationToken: CancellationToken): Promise; formatDocument(textDocument: TextDocumentIdentifier, options: FormattingOptions): Promise; doTagComplete(textDocument: TextDocumentIdentifier, position: Position): Promise; getDocumentColors(textDocument: TextDocumentIdentifier): Promise; getColorPresentations(textDocument: TextDocumentIdentifier, range: Range, color: Color): Promise; getDocumentSymbols(textDocument: TextDocumentIdentifier, cancellationToken: CancellationToken): Promise; private comparePosition; private rangeContains; getHierarchicalDocumentSymbols(textDocument: TextDocumentIdentifier, cancellationToken: CancellationToken): Promise; getDefinitions(textDocument: TextDocumentIdentifier, position: Position): Promise; getCodeActions(textDocument: TextDocumentIdentifier, range: Range, context: CodeActionContext, cancellationToken: CancellationToken): Promise; executeCommand(textDocument: TextDocumentIdentifier, command: string, args?: any[]): Promise; resolveCodeAction(textDocument: TextDocumentIdentifier, codeAction: CodeAction, cancellationToken: CancellationToken): Promise; updateImports(fileRename: FileRename): Promise; prepareRename(textDocument: TextDocumentIdentifier, position: Position): Promise; rename(textDocument: TextDocumentIdentifier, position: Position, newName: string): Promise; findReferences(textDocument: TextDocumentIdentifier, position: Position, context: ReferenceContext, cancellationToken?: CancellationToken): Promise; fileReferences(uri: string): Promise; findComponentReferences(uri: string): Promise; getSignatureHelp(textDocument: TextDocumentIdentifier, position: Position, context: SignatureHelpContext | undefined, cancellationToken: CancellationToken): Promise; /** * The selection range supports multiple cursors, * each position should return its own selection range tree like `Array.map`. * Quote the LSP spec * > A selection range in the return array is for the position in the provided parameters at the same index. Therefore positions[i] must be contained in result[i].range. * @see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_selectionRange * * Making PluginHost implement the same interface would make it quite hard to get * the corresponding selection range of each position from different plugins. * Therefore the special treatment here. */ getSelectionRanges(textDocument: TextDocumentIdentifier, positions: Position[]): Promise; getSemanticTokens(textDocument: TextDocumentIdentifier, range?: Range, cancellationToken?: CancellationToken): Promise; getLinkedEditingRanges(textDocument: TextDocumentIdentifier, position: Position): Promise; getImplementation(textDocument: TextDocumentIdentifier, position: Position, cancellationToken?: CancellationToken): Promise; getTypeDefinition(textDocument: TextDocumentIdentifier, position: Position): Promise; getInlayHints(textDocument: TextDocumentIdentifier, range: Range, cancellationToken?: CancellationToken): Promise; prepareCallHierarchy(textDocument: TextDocumentIdentifier, position: Position, cancellationToken?: CancellationToken): Promise; getIncomingCalls(item: CallHierarchyItem, cancellationToken?: CancellationToken | undefined): Promise; getOutgoingCalls(item: CallHierarchyItem, cancellationToken?: CancellationToken | undefined): Promise; getCodeLens(textDocument: TextDocumentIdentifier): Promise; getFoldingRanges(textDocument: TextDocumentIdentifier): Promise; resolveCodeLens(textDocument: TextDocumentIdentifier, codeLens: CodeLens, cancellationToken: CancellationToken): Promise; findDocumentHighlight(textDocument: TextDocumentIdentifier, position: Position): Promise; getWorkspaceSymbols(query: string, token: CancellationToken): Promise; onWatchFileChanges(onWatchFileChangesParas: OnWatchFileChangesPara[]): void; updateTsOrJsFile(fileName: string, changes: TextDocumentContentChangeEvent[]): void; private getDocument; private execute; private executePlugins; private tryExecutePlugin; }