import * as lsp from "vscode-languageserver-protocol"; export interface TSLanguageServiceOptions { locale?: string; workspaceFolders?: lsp.WorkspaceFolder[]; clientCapabilities: lsp.ClientCapabilities; hostInfo?: string; tsExtLogPath?: string; extensionUri?: string; } export { TSLanguageServiceConfig } from "./pkgJson"; export interface WorkDoneProgressReporter { readonly token: lsp.CancellationToken; begin(title: string, percentage?: number, message?: string, cancellable?: boolean): void; report(percentage: number): void; report(message: string): void; report(percentage: number, message: string): void; done(): void; } export interface EventHandlersMapping { showDocument: (params: lsp.ShowDocumentParams) => Promise; logMessage: (params: lsp.LogMessageParams) => void; logTrace: (params: lsp.LogTraceParams) => void; showMessage: (params: lsp.ShowMessageRequestParams) => Promise; applyWorkspaceEdit: (params: lsp.ApplyWorkspaceEditParams) => Promise; workDoneProgress: () => Promise; diagnostics: (params: lsp.PublishDiagnosticsParams) => Promise; } export type EventName = keyof EventHandlersMapping; type UppercaseFirst = S extends `${infer H}${infer R}` ? `${Uppercase}${R}` : Uppercase; export type TSLanguageServiceEvents = { [K in keyof EventHandlersMapping as `on${UppercaseFirst}`]: (handler: EventHandlersMapping[K]) => lsp.Disposable; }; //# sourceMappingURL=types.d.ts.map