import { IFeature, ILSPDocumentConnectionManager, EditorAdapter } from '@jupyterlab/lsp'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { Signal } from '@lumino/signaling'; import * as lsProtocol from 'vscode-languageserver-protocol'; export interface IFeatureSettings { readonly composite: Required; readonly changed: Signal, void>; readonly ready?: Promise; set(setting: keyof T, value: any): void; } export declare namespace Feature { interface IOptions { connectionManager: ILSPDocumentConnectionManager; } } export declare abstract class Feature implements IFeature { /** * The feature identifier. It must be the same as the feature plugin id. */ abstract readonly id: string; /** * LSP capabilities implemented by the feature. */ abstract readonly capabilities?: lsProtocol.ClientCapabilities; /** * Editor extension factory linked to the LSP feature. */ extensionFactory?: EditorAdapter.ILSPEditorExtensionFactory; protected connectionManager: ILSPDocumentConnectionManager; constructor(options: Feature.IOptions); } export declare class FeatureSettings implements IFeatureSettings { protected settingRegistry: ISettingRegistry; protected settings: ISettingRegistry.ISettings; changed: Signal, void>; private _ready; constructor(settingRegistry: ISettingRegistry, featureID: string); get ready(): Promise; get composite(): Required; set(setting: keyof T, value: any): void; }