import { CancellationToken, ProtocolRequestType0, RequestHandler0, ProtocolRequestType, RequestHandler, GenericRequestHandler, StarRequestHandler, HandlerResult, ProtocolNotificationType0, NotificationHandler0, ProtocolNotificationType, NotificationHandler, GenericNotificationHandler, StarNotificationHandler, ProgressType, Disposable, InitializeParams, InitializeResult, InitializeError, InitializedParams, DidChangeConfigurationParams, DidChangeWatchedFilesParams, DidOpenTextDocumentParams, DidChangeTextDocumentParams, DidCloseTextDocumentParams, WillSaveTextDocumentParams, TextEdit, DidSaveTextDocumentParams, PublishDiagnosticsParams, HoverParams, Hover, CompletionParams, CompletionItem, CompletionList, SignatureHelpParams, SignatureHelp, DeclarationParams, Declaration, DeclarationLink, Location, DefinitionParams, Definition, DefinitionLink, TypeDefinitionParams, ImplementationParams, ReferenceParams, DocumentHighlightParams, DocumentHighlight, DocumentSymbolParams, SymbolInformation, DocumentSymbol, WorkspaceSymbolParams, CodeActionParams, Command, CodeAction, CodeLensParams, CodeLens, DocumentFormattingParams, DocumentRangeFormattingParams, DocumentOnTypeFormattingParams, RenameParams, WorkspaceEdit, PrepareRenameParams, Range, DocumentLinkParams, DocumentLink, DocumentColorParams, ColorInformation, ColorPresentationParams, ColorPresentation, FoldingRangeParams, FoldingRange, SelectionRangeParams, SelectionRange, ExecuteCommandParams, MessageActionItem, ClientCapabilities, ServerCapabilities, Logger, ProtocolConnection, MessageSignature, ApplyWorkspaceEditParams, ApplyWorkspaceEditResponse, WorkDoneProgressParams, PartialResultParams, RegistrationType, RequestType0, RequestType, NotificationType0, NotificationType, WorkspaceSymbol } from 'vscode-languageserver-protocol'; import { WorkDoneProgressReporter, ResultProgressReporter, WindowProgress } from './progress'; import { Configuration } from './configuration'; import { WorkspaceFolders } from './workspaceFolder'; import { CallHierarchy } from './callHierarchy'; import { SemanticTokensFeatureShape } from './semanticTokens'; import { ShowDocumentFeatureShape } from './showDocument'; import { FileOperationsFeatureShape } from './fileOperations'; import { LinkedEditingRangeFeatureShape } from './linkedEditingRange'; import { TypeHierarchyFeatureShape } from './typeHierarchy'; import { InlineValueFeatureShape } from './inlineValue'; import { FoldingRangeFeatureShape } from './foldingRange'; import { InlayHintFeatureShape } from './inlayHint'; import { DiagnosticFeatureShape } from './diagnostic'; import { NotebookSyncFeatureShape } from './notebook'; import { MonikerFeatureShape } from './moniker'; /** * Helps tracking error message. Equal occurrences of the same * message are only stored once. This class is for example * useful if text documents are validated in a loop and equal * error message should be folded into one. */ export declare class ErrorMessageTracker { private _messages; constructor(); /** * Add a message to the tracker. * * @param message The message to add. */ add(message: string): void; /** * Send all tracked messages to the connection's window. * * @param connection The connection established between client and server. */ sendErrors(connection: { window: RemoteWindow; }): void; } export interface FeatureBase { /** * Called to initialize the remote with the given * client capabilities * * @param capabilities The client capabilities */ initialize(capabilities: ClientCapabilities): void; /** * Called to fill in the server capabilities this feature implements. * * @param capabilities The server capabilities to fill. */ fillServerCapabilities(capabilities: ServerCapabilities): void; } interface Remote extends FeatureBase { /** * Attach the remote to the given connection. * * @param connection The connection this remote is operating on. */ attach(connection: Connection): void; /** * The connection this remote is attached to. */ connection: Connection; } /** * The RemoteConsole interface contains all functions to interact with * the tools / clients console or log system. Internally it used `window/logMessage` * notifications. */ export interface RemoteConsole extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Show an error message. * * @param message The message to show. */ error(message: string): void; /** * Show a warning message. * * @param message The message to show. */ warn(message: string): void; /** * Show an information message. * * @param message The message to show. */ info(message: string): void; /** * Log a message. * * @param message The message to log. */ log(message: string): void; /** * Log a debug message. * * @param message The message to log. * * @since 3.18.0 */ debug(message: string): void; } /** * The RemoteWindow interface contains all functions to interact with * the visual window of VS Code. */ export interface _RemoteWindow extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Shows an error message in the client's user interface. Depending on the client this might * be a modal dialog with a confirmation button or a notification in a notification center * * @param message The message to show. * @param actions Possible additional actions presented in the user interface. The selected action * will be the value of the resolved promise */ showErrorMessage(message: string): void; showErrorMessage(message: string, ...actions: T[]): Promise; /** * Shows a warning message in the client's user interface. Depending on the client this might * be a modal dialog with a confirmation button or a notification in a notification center * * @param message The message to show. * @param actions Possible additional actions presented in the user interface. The selected action * will be the value of the resolved promise */ showWarningMessage(message: string): void; showWarningMessage(message: string, ...actions: T[]): Promise; /** * Shows an information message in the client's user interface. Depending on the client this might * be a modal dialog with a confirmation button or a notification in a notification center * * @param message The message to show. * @param actions Possible additional actions presented in the user interface. The selected action * will be the value of the resolved promise */ showInformationMessage(message: string): void; showInformationMessage(message: string, ...actions: T[]): Promise; } export type RemoteWindow = _RemoteWindow & WindowProgress & ShowDocumentFeatureShape; /** * A bulk registration manages n single registration to be able to register * for n notifications or requests using one register request. */ export interface BulkRegistration { /** * Adds a single registration. * @param type the notification type to register for. * @param registerParams special registration parameters. */ add(type: ProtocolNotificationType0, registerParams: RO): void; add(type: ProtocolNotificationType, registerParams: RO): void; /** * Adds a single registration. * @param type the request type to register for. * @param registerParams special registration parameters. */ add(type: ProtocolRequestType0, registerParams: RO): void; add(type: ProtocolRequestType, registerParams: RO): void; /** * Adds a single registration. * @param type the notification type to register for. * @param registerParams special registration parameters. */ add(type: RegistrationType, registerParams: RO): void; } export declare namespace BulkRegistration { /** * Creates a new bulk registration. * @return an empty bulk registration. */ function create(): BulkRegistration; } /** * A `BulkUnregistration` manages n unregistrations. */ export interface BulkUnregistration extends Disposable { /** * Disposes a single registration. It will be removed from the * `BulkUnregistration`. */ disposeSingle(arg: string | MessageSignature): boolean; } export declare namespace BulkUnregistration { function create(): BulkUnregistration; } /** * Interface to register and unregister `listeners` on the client / tools side. */ export interface RemoteClient extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Registers a listener for the given request. * * @param type the request type to register for. * @param registerParams special registration parameters. * @return a `Disposable` to unregister the listener again. */ register(type: ProtocolNotificationType, registerParams?: RO): Promise; register(type: ProtocolNotificationType0, registerParams?: RO): Promise; /** * Registers a listener for the given request. * * @param unregisteration the unregistration to add a corresponding unregister action to. * @param type the request type to register for. * @param registerParams special registration parameters. * @return the updated unregistration. */ register(unregisteration: BulkUnregistration, type: ProtocolNotificationType, registerParams?: RO): Promise; register(unregisteration: BulkUnregistration, type: ProtocolNotificationType0, registerParams?: RO): Promise; /** * Registers a listener for the given request. * * @param type the request type to register for. * @param registerParams special registration parameters. * @return a `Disposable` to unregister the listener again. */ register(type: ProtocolRequestType, registerParams?: RO): Promise; register(type: ProtocolRequestType0, registerParams?: RO): Promise; /** * Registers a listener for the given request. * * @param unregisteration the unregistration to add a corresponding unregister action to. * @param type the request type to register for. * @param registerParams special registration parameters. * @return the updated unregistration. */ register(unregisteration: BulkUnregistration, type: ProtocolRequestType, registerParams?: RO): Promise; register(unregisteration: BulkUnregistration, type: ProtocolRequestType0, registerParams?: RO): Promise; /** * Registers a listener for the given registration type. * * @param type the registration type. * @param registerParams special registration parameters. * @return a `Disposable` to unregister the listener again. */ register(type: RegistrationType, registerParams?: RO): Promise; /** * Registers a listener for the given registration type. * * @param unregisteration the unregistration to add a corresponding unregister action to. * @param type the registration type. * @param registerParams special registration parameters. * @return the updated unregistration. */ register(unregisteration: BulkUnregistration, type: RegistrationType, registerParams?: RO): Promise; /** * Registers a set of listeners. * @param registrations the bulk registration * @return a `Disposable` to unregister the listeners again. */ register(registrations: BulkRegistration): Promise; } /** * Represents the workspace managed by the client. */ export interface _RemoteWorkspace extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Applies a `WorkspaceEdit` to the workspace * @param param the workspace edit params. * @return a thenable that resolves to the `ApplyWorkspaceEditResponse`. */ applyEdit(paramOrEdit: ApplyWorkspaceEditParams | WorkspaceEdit): Promise; } export type RemoteWorkspace = _RemoteWorkspace & Configuration & WorkspaceFolders & FileOperationsFeatureShape; /** * Interface to log telemetry events. The events are actually send to the client * and the client needs to feed the event into a proper telemetry system. */ export interface Telemetry extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Log the given data to telemetry. * * @param data The data to log. Must be a JSON serializable object. */ logEvent(data: any): void; } /** * Interface to log traces to the client. The events are sent to the client and the * client needs to log the trace events. */ export interface RemoteTracer extends FeatureBase { /** * The connection this remote is attached to. */ connection: Connection; /** * Log the given data to the trace Log */ log(message: string, verbose?: string): void; } export interface _Languages extends FeatureBase { connection: Connection; attachWorkDoneProgress(params: WorkDoneProgressParams): WorkDoneProgressReporter; attachPartialResultProgress(type: ProgressType, params: PartialResultParams): ResultProgressReporter | undefined; } export declare class _LanguagesImpl implements Remote, _Languages { private _connection; constructor(); attach(connection: Connection): void; get connection(): Connection; initialize(_capabilities: ClientCapabilities): void; fillServerCapabilities(_capabilities: ServerCapabilities): void; attachWorkDoneProgress(params: WorkDoneProgressParams): WorkDoneProgressReporter; attachPartialResultProgress(_type: ProgressType, params: PartialResultParams): ResultProgressReporter | undefined; } export type Languages = _Languages & CallHierarchy & SemanticTokensFeatureShape & LinkedEditingRangeFeatureShape & TypeHierarchyFeatureShape & InlineValueFeatureShape & InlayHintFeatureShape & DiagnosticFeatureShape & MonikerFeatureShape & FoldingRangeFeatureShape; export interface _Notebooks extends FeatureBase { connection: Connection; attachWorkDoneProgress(params: WorkDoneProgressParams): WorkDoneProgressReporter; attachPartialResultProgress(type: ProgressType, params: PartialResultParams): ResultProgressReporter | undefined; } export declare class _NotebooksImpl implements Remote, _Notebooks { private _connection; constructor(); attach(connection: Connection): void; get connection(): Connection; initialize(_capabilities: ClientCapabilities): void; fillServerCapabilities(_capabilities: ServerCapabilities): void; attachWorkDoneProgress(params: WorkDoneProgressParams): WorkDoneProgressReporter; attachPartialResultProgress(_type: ProgressType, params: PartialResultParams): ResultProgressReporter | undefined; } export type Notebooks = _Notebooks & NotebookSyncFeatureShape; /** * An empty interface for new proposed API. */ export interface _ { } export interface ServerRequestHandler { (params: P, token: CancellationToken, workDoneProgress: WorkDoneProgressReporter, resultProgress?: ResultProgressReporter): HandlerResult; } /** * Interface to describe the shape of the server connection. */ export interface _Connection { /** * Start listening on the input stream for messages to process. */ listen(): void; /** * Installs a request handler described by the given {@link RequestType}. * * @param type The {@link RequestType} describing the request. * @param handler The handler to install */ onRequest(type: ProtocolRequestType0, handler: RequestHandler0): Disposable; onRequest(type: ProtocolRequestType, handler: RequestHandler): Disposable; onRequest(type: RequestType0, handler: RequestHandler0): Disposable; onRequest(type: RequestType, handler: RequestHandler): Disposable; /** * Installs a request handler for the given method. * * @param method The method to register a request handler for. * @param handler The handler to install. */ onRequest(method: string, handler: GenericRequestHandler): Disposable; /** * Installs a request handler that is invoked if no specific request handler can be found. * * @param handler a handler that handles all requests. */ onRequest(handler: StarRequestHandler): Disposable; /** * Send a request to the client. * * @param type The {@link RequestType} describing the request. * @param params The request's parameters. */ sendRequest(type: ProtocolRequestType0, token?: CancellationToken): Promise; sendRequest(type: ProtocolRequestType, params: P, token?: CancellationToken): Promise; sendRequest(type: RequestType0, token?: CancellationToken): Promise; sendRequest(type: RequestType, params: P, token?: CancellationToken): Promise; /** * Send a request to the client. * * @param method The method to invoke on the client. * @param params The request's parameters. */ sendRequest(method: string, token?: CancellationToken): Promise; sendRequest(method: string, params: any, token?: CancellationToken): Promise; /** * Installs a notification handler described by the given {@link NotificationType}. * * @param type The {@link NotificationType} describing the notification. * @param handler The handler to install. */ onNotification(type: ProtocolNotificationType0, handler: NotificationHandler0): Disposable; onNotification(type: ProtocolNotificationType, handler: NotificationHandler

): Disposable; onNotification(type: NotificationType0, handler: NotificationHandler0): Disposable; onNotification

(type: NotificationType

, handler: NotificationHandler

): Disposable; /** * Installs a notification handler for the given method. * * @param method The method to register a request handler for. * @param handler The handler to install. */ onNotification(method: string, handler: GenericNotificationHandler): Disposable; /** * Installs a notification handler that is invoked if no specific notification handler can be found. * * @param handler a handler that handles all notifications. */ onNotification(handler: StarNotificationHandler): Disposable; /** * Send a notification to the client. * * @param type The {@link NotificationType} describing the notification. * @param params The notification's parameters. */ sendNotification(type: ProtocolNotificationType0): Promise; sendNotification(type: ProtocolNotificationType, params: P): Promise; sendNotification(type: NotificationType0): Promise; sendNotification

(type: NotificationType

, params: P): Promise; /** * Send a notification to the client. * * @param method The method to invoke on the client. * @param params The notification's parameters. */ sendNotification(method: string, params?: any): Promise; /** * Installs a progress handler for a given token. * @param type the progress type * @param token the token * @param handler the handler */ onProgress

(type: ProgressType

, token: string | number, handler: NotificationHandler

): Disposable; /** * Sends progress. * @param type the progress type * @param token the token to use * @param value the progress value */ sendProgress

(type: ProgressType

, token: string | number, value: P): Promise; /** * Installs a handler for the initialize request. * * @param handler The initialize handler. */ onInitialize(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the initialized notification. * * @param handler The initialized handler. */ onInitialized(handler: NotificationHandler): Disposable; /** * Installs a handler for the shutdown request. * * @param handler The initialize handler. */ onShutdown(handler: RequestHandler0): Disposable; /** * Installs a handler for the exit notification. * * @param handler The exit handler. */ onExit(handler: NotificationHandler0): Disposable; /** * A property to provide access to console specific features. */ console: RemoteConsole & PConsole; /** * A property to provide access to tracer specific features. */ tracer: RemoteTracer & PTracer; /** * A property to provide access to telemetry specific features. */ telemetry: Telemetry & PTelemetry; /** * A property to provide access to client specific features like registering * for requests or notifications. */ client: RemoteClient & PClient; /** * A property to provide access to windows specific features. */ window: RemoteWindow & PWindow; /** * A property to provide access to workspace specific features. */ workspace: RemoteWorkspace & PWorkspace; /** * A property to provide access to language specific features. */ languages: Languages & PLanguages; /** * A property to provide access to notebook specific features. */ notebooks: Notebooks & PNotebooks; /** * Installs a handler for the `DidChangeConfiguration` notification. * * @param handler The corresponding handler. */ onDidChangeConfiguration(handler: NotificationHandler): Disposable; /** * Installs a handler for the `DidChangeWatchedFiles` notification. * * @param handler The corresponding handler. */ onDidChangeWatchedFiles(handler: NotificationHandler): Disposable; /** * Installs a handler for the `DidOpenTextDocument` notification. * * @param handler The corresponding handler. */ onDidOpenTextDocument(handler: NotificationHandler): Disposable; /** * Installs a handler for the `DidChangeTextDocument` notification. * * @param handler The corresponding handler. */ onDidChangeTextDocument(handler: NotificationHandler): Disposable; /** * Installs a handler for the `DidCloseTextDocument` notification. * * @param handler The corresponding handler. */ onDidCloseTextDocument(handler: NotificationHandler): Disposable; /** * Installs a handler for the `WillSaveTextDocument` notification. * * Note that this notification is opt-in. The client will not send it unless * your server has the `textDocumentSync.willSave` capability or you've * dynamically registered for the `textDocument/willSave` method. * * @param handler The corresponding handler. */ onWillSaveTextDocument(handler: NotificationHandler): Disposable; /** * Installs a handler for the `WillSaveTextDocumentWaitUntil` request. * * Note that this request is opt-in. The client will not send it unless * your server has the `textDocumentSync.willSaveWaitUntil` capability, * or you've dynamically registered for the `textDocument/willSaveWaitUntil` * method. * * @param handler The corresponding handler. */ onWillSaveTextDocumentWaitUntil(handler: RequestHandler): Disposable; /** * Installs a handler for the `DidSaveTextDocument` notification. * * @param handler The corresponding handler. */ onDidSaveTextDocument(handler: NotificationHandler): Disposable; /** * Sends diagnostics computed for a given document to VSCode to render them in the * user interface. * * @param params The diagnostic parameters. */ sendDiagnostics(params: PublishDiagnosticsParams): Promise; /** * Installs a handler for the `Hover` request. * * @param handler The corresponding handler. */ onHover(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `Completion` request. * * @param handler The corresponding handler. */ onCompletion(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `CompletionResolve` request. * * @param handler The corresponding handler. */ onCompletionResolve(handler: RequestHandler): Disposable; /** * Installs a handler for the `SignatureHelp` request. * * @param handler The corresponding handler. */ onSignatureHelp(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `Declaration` request. * * @param handler The corresponding handler. */ onDeclaration(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `Definition` request. * * @param handler The corresponding handler. */ onDefinition(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `Type Definition` request. * * @param handler The corresponding handler. */ onTypeDefinition(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `Implementation` request. * * @param handler The corresponding handler. */ onImplementation(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `References` request. * * @param handler The corresponding handler. */ onReferences(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `DocumentHighlight` request. * * @param handler The corresponding handler. */ onDocumentHighlight(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `DocumentSymbol` request. * * @param handler The corresponding handler. */ onDocumentSymbol(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `WorkspaceSymbol` request. * * @param handler The corresponding handler. */ onWorkspaceSymbol(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `WorkspaceSymbol` request. * * @param handler The corresponding handler. */ onWorkspaceSymbolResolve(handler: RequestHandler): Disposable; /** * Installs a handler for the `CodeAction` request. * * @param handler The corresponding handler. */ onCodeAction(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the `CodeAction` resolve request. * * @param handler The corresponding handler. */ onCodeActionResolve(handler: RequestHandler): Disposable; /** * Compute a list of {@link CodeLens lenses}. This call should return as fast as possible and if * computing the commands is expensive implementers should only return code lens objects with the * range set and handle the resolve request. * * @param handler The corresponding handler. */ onCodeLens(handler: ServerRequestHandler): Disposable; /** * This function will be called for each visible code lens, usually when scrolling and after * the onCodeLens has been called. * * @param handler The corresponding handler. */ onCodeLensResolve(handler: RequestHandler): Disposable; /** * Installs a handler for the document formatting request. * * @param handler The corresponding handler. */ onDocumentFormatting(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the document range formatting request. * * @param handler The corresponding handler. */ onDocumentRangeFormatting(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the document on type formatting request. * * @param handler The corresponding handler. */ onDocumentOnTypeFormatting(handler: RequestHandler): Disposable; /** * Installs a handler for the rename request. * * @param handler The corresponding handler. */ onRenameRequest(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the prepare rename request. * * @param handler The corresponding handler. */ onPrepareRename(handler: RequestHandler): Disposable; /** * Installs a handler for the document links request. * * @param handler The corresponding handler. */ onDocumentLinks(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the document links resolve request. * * @param handler The corresponding handler. */ onDocumentLinkResolve(handler: RequestHandler): Disposable; /** * Installs a handler for the document color request. * * @param handler The corresponding handler. */ onDocumentColor(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the document color request. * * @param handler The corresponding handler. */ onColorPresentation(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the folding ranges request. * * @param handler The corresponding handler. */ onFoldingRanges(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the selection ranges request. * * @param handler The corresponding handler. */ onSelectionRanges(handler: ServerRequestHandler): Disposable; /** * Installs a handler for the execute command request. * * @param handler The corresponding handler. */ onExecuteCommand(handler: ServerRequestHandler): Disposable; /** * Disposes the connection */ dispose(): void; } export interface Connection extends _Connection { } export interface Feature { (Base: new () => B): new () => B & P; } export type ConsoleFeature

= Feature; export declare function combineConsoleFeatures(one: ConsoleFeature, two: ConsoleFeature): ConsoleFeature; export type TelemetryFeature

= Feature; export declare function combineTelemetryFeatures(one: TelemetryFeature, two: TelemetryFeature): TelemetryFeature; export type TracerFeature

= Feature; export declare function combineTracerFeatures(one: TracerFeature, two: TracerFeature): TracerFeature; export type ClientFeature

= Feature; export declare function combineClientFeatures(one: ClientFeature, two: ClientFeature): ClientFeature; export type WindowFeature

= Feature<_RemoteWindow, P>; export declare function combineWindowFeatures(one: WindowFeature, two: WindowFeature): WindowFeature; export type WorkspaceFeature

= Feature<_RemoteWorkspace, P>; export declare function combineWorkspaceFeatures(one: WorkspaceFeature, two: WorkspaceFeature): WorkspaceFeature; export type LanguagesFeature

= Feature<_Languages, P>; export declare function combineLanguagesFeatures(one: LanguagesFeature, two: LanguagesFeature): LanguagesFeature; export type NotebooksFeature

= Feature<_Notebooks, P>; export declare function combineNotebooksFeatures(one: NotebooksFeature, two: NotebooksFeature): NotebooksFeature; export interface Features { __brand: 'features'; console?: ConsoleFeature; tracer?: TracerFeature; telemetry?: TelemetryFeature; client?: ClientFeature; window?: WindowFeature; workspace?: WorkspaceFeature; languages?: LanguagesFeature; notebooks?: NotebooksFeature; } export declare function combineFeatures(one: Features, two: Features): Features; export interface WatchDog { shutdownReceived: boolean; initialize(params: InitializeParams): void; exit(code: number): void; } export declare function createConnection(connectionFactory: (logger: Logger) => ProtocolConnection, watchDog: WatchDog, factories?: Features): _Connection; export {};