import { CancellationToken, CodeAction, CodeActionContext, Color, ColorInformation, ColorPresentation, CompletionContext, CompletionItem, CompletionList, DefinitionLink, Diagnostic, FoldingRange, FormattingOptions, Hover, InlayHint, LinkedEditingRanges, Location, Position, Range, ReferenceContext, SemanticTokens, SignatureHelp, SignatureHelpContext, SymbolInformation, TextDocumentContentChangeEvent, TextDocumentIdentifier, TextEdit, WorkspaceEdit } from 'vscode-languageserver'; import type { DocumentManager } from '../core/documents/DocumentManager'; import type { AppCompletionItem, Plugin } from './interfaces'; export interface PluginHostConfig { filterIncompleteCompletions: boolean; definitionLinkSupport: boolean; } export declare class PluginHost { private docManager; private plugins; private pluginHostConfig; constructor(docManager: DocumentManager); initialize(pluginHostConfig: PluginHostConfig): void; registerPlugin(plugin: Plugin): void; getCompletions(textDocument: TextDocumentIdentifier, position: Position, completionContext?: CompletionContext, cancellationToken?: CancellationToken): Promise; resolveCompletion(textDocument: TextDocumentIdentifier, completionItem: AppCompletionItem): Promise; getDiagnostics(textDocument: TextDocumentIdentifier): Promise; doHover(textDocument: TextDocumentIdentifier, position: Position): Promise; formatDocument(textDocument: TextDocumentIdentifier, options: FormattingOptions): Promise; getCodeActions(textDocument: TextDocumentIdentifier, range: Range, context: CodeActionContext, cancellationToken?: CancellationToken): Promise; doTagComplete(textDocument: TextDocumentIdentifier, position: Position): Promise; getFoldingRanges(textDocument: TextDocumentIdentifier): Promise; getDocumentSymbols(textDocument: TextDocumentIdentifier, cancellationToken?: CancellationToken): Promise; getSemanticTokens(textDocument: TextDocumentIdentifier, range?: Range, cancellationToken?: CancellationToken): Promise; getLinkedEditingRanges(textDocument: TextDocumentIdentifier, position: Position): Promise; fileReferences(textDocument: TextDocumentIdentifier): Promise; getDefinitions(textDocument: TextDocumentIdentifier, position: Position): Promise; getTypeDefinitions(textDocument: TextDocumentIdentifier, position: Position): Promise; getImplementations(textDocument: TextDocumentIdentifier, position: Position): Promise; getReferences(textdocument: TextDocumentIdentifier, position: Position, context: ReferenceContext): Promise; prepareRename(textDocument: TextDocumentIdentifier, position: Position): Promise; rename(textDocument: TextDocumentIdentifier, position: Position, newName: string): Promise; getDocumentColors(textDocument: TextDocumentIdentifier): Promise; getColorPresentations(textDocument: TextDocumentIdentifier, range: Range, color: Color): Promise; getInlayHints(textDocument: TextDocumentIdentifier, range: Range, cancellationToken?: CancellationToken): Promise; getSignatureHelp(textDocument: TextDocumentIdentifier, position: Position, context: SignatureHelpContext | undefined, cancellationToken?: CancellationToken): Promise; onWatchFileChanges(onWatchFileChangesParams: any[]): Promise; updateNonAstroFile(fileName: string, changes: TextDocumentContentChangeEvent[], text?: string): void; private getDocument; private execute; private tryExecutePlugin; }