import { type LanguageContext } from '@volar/language-core'; import type * as vscode from 'vscode-languageserver-protocol'; import type { ServiceContext, ServiceEnvironment, ServicePlugin } from './types'; export type LanguageService = ReturnType; export declare function createLanguageService(languageContext: LanguageContext, servicePlugins: ServicePlugin[], env: ServiceEnvironment): { getTriggerCharacters: () => string[]; getAutoFormatTriggerCharacters: () => string[]; getSignatureHelpTriggerCharacters: () => string[]; getSignatureHelpRetriggerCharacters: () => string[]; format: (uri: string, options: vscode.FormattingOptions, range: vscode.Range | undefined, onTypeParams: { ch: string; position: vscode.Position; } | undefined, token?: vscode.CancellationToken) => Promise; getFoldingRanges: (uri: string, token?: vscode.CancellationToken) => Promise; getSelectionRanges: (uri: string, positions: vscode.Position[], token?: vscode.CancellationToken) => Promise; findLinkedEditingRanges: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; findDocumentSymbols: (uri: string, token?: vscode.CancellationToken) => Promise; findDocumentColors: (uri: string, token?: vscode.CancellationToken) => Promise; getColorPresentations: (uri: string, color: vscode.Color, range: vscode.Range, token?: vscode.CancellationToken) => Promise; doValidation: (uri: string, token?: vscode.CancellationToken, response?: ((result: vscode.Diagnostic[]) => void) | undefined) => Promise; findReferences: (uri: string, position: vscode.Position, referenceContext: vscode.ReferenceContext, token?: vscode.CancellationToken) => Promise; findFileReferences: (uri: string, token?: vscode.CancellationToken) => import("./types").NullableResult; findDefinition: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; findTypeDefinition: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; findImplementations: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; prepareRename: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; doRename: (uri: string, position: vscode.Position, newName: string, token?: vscode.CancellationToken) => Promise; getEditsForFileRename: (oldUri: string, newUri: string, token?: vscode.CancellationToken) => Promise; getSemanticTokens: (uri: string, range: vscode.Range | undefined, legend: vscode.SemanticTokensLegend, token?: vscode.CancellationToken, _reportProgress?: ((tokens: vscode.SemanticTokens) => void) | undefined) => Promise; doHover: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; doComplete: (uri: string, position: vscode.Position, completionContext?: vscode.CompletionContext, token?: vscode.CancellationToken) => Promise; doCodeActions: (uri: string, range: vscode.Range, codeActionContext: vscode.CodeActionContext, token?: vscode.CancellationToken) => Promise; doCodeActionResolve: (item: vscode.CodeAction, token?: vscode.CancellationToken) => Promise; doCompletionResolve: (item: vscode.CompletionItem, token?: vscode.CancellationToken) => Promise; getSignatureHelp: (uri: string, position: vscode.Position, signatureHelpContext?: vscode.SignatureHelpContext, token?: vscode.CancellationToken) => Promise; doCodeLens: (uri: string, token?: vscode.CancellationToken) => Promise; doCodeLensResolve: (item: vscode.CodeLens, token?: vscode.CancellationToken) => Promise; findDocumentHighlights: (uri: string, position: vscode.Position, token?: vscode.CancellationToken) => Promise; findDocumentLinks: (uri: string, token?: vscode.CancellationToken) => Promise; doDocumentLinkResolve: (item: vscode.DocumentLink, token?: vscode.CancellationToken) => Promise; findWorkspaceSymbols: (query: string, token?: vscode.CancellationToken) => Promise; doAutoInsert: (uri: string, position: vscode.Position, lastChange: { range: vscode.Range; text: string; }, token?: vscode.CancellationToken) => Promise; doDocumentDrop: (uri: string, position: vscode.Position, dataTransfer: Map, token?: vscode.CancellationToken) => Promise; getInlayHints: (uri: string, range: vscode.Range, token?: vscode.CancellationToken) => Promise; doInlayHintResolve: (item: vscode.InlayHint, token?: vscode.CancellationToken) => Promise; callHierarchy: { doPrepare(uri: string, position: vscode.Position, token?: vscode.CancellationToken): Promise; getIncomingCalls(item: vscode.CallHierarchyItem, token: vscode.CancellationToken): Promise; getOutgoingCalls(item: vscode.CallHierarchyItem, token: vscode.CancellationToken): Promise; }; dispose: () => void; context: ServiceContext; };