///
import { VDomModel, VDomRenderer } from '@jupyterlab/apputils';
import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry';
import { INotebookModel, NotebookPanel } from '@jupyterlab/notebook';
import { Popup } from '@jupyterlab/statusbar';
import { TranslationBundle } from '@jupyterlab/translation';
import { LabIcon } from '@jupyterlab/ui-components';
import '../../style/statusbar.css';
import * as SCHEMA from '../_schema';
import { WidgetAdapter } from '../adapters/adapter';
import { LSPConnection } from '../connection';
import { DocumentConnectionManager } from '../connection_manager';
import { LanguageServerManager } from '../manager';
import { ILSPAdapterManager, ILanguageServerManager, TSessionMap } from '../tokens';
import { VirtualDocument } from '../virtual/document';
export interface IListProps {
/**
* A title to display.
*/
title: string;
list: any[];
/**
* By default the list will be expanded; to change the initial state to collapsed, set to true.
*/
startCollapsed?: boolean;
}
export interface ICollapsibleListStates {
isCollapsed: boolean;
}
/**
* StatusBar item.
*/
export declare class LSPStatus extends VDomRenderer {
protected displayText: boolean;
protected _popup: Popup | null;
private interactiveStateObserver;
private trans;
/**
* Construct a new VDomRenderer for the status item.
*/
constructor(widget_manager: ILSPAdapterManager, displayText: boolean, trans: TranslationBundle);
protected onAfterAttach(msg: any): void;
protected onBeforeDetach(msg: any): void;
/**
* Render the status item.
*/
render(): JSX.Element | null;
handleClick: () => void;
}
export declare class StatusButtonExtension implements DocumentRegistry.IWidgetExtension {
private options;
constructor(options: {
language_server_manager: LanguageServerManager;
connection_manager: DocumentConnectionManager;
adapter_manager: ILSPAdapterManager;
translator_bundle: TranslationBundle;
});
/**
* For statusbar registration and for internal use.
*/
createItem(displayText?: boolean): LSPStatus;
/**
* For registration on notebook panels.
*/
createNew(panel: NotebookPanel, context: DocumentRegistry.IContext): LSPStatus;
}
declare type StatusCode = 'no_server_extension' | 'waiting' | 'initializing' | 'initialized' | 'connecting' | 'initialized_but_some_missing';
export interface IStatus {
connected_documents: Set;
initialized_documents: Set;
open_connections: Array;
detected_documents: Set;
status: StatusCode;
}
export declare namespace LSPStatus {
/**
* A VDomModel for the LSP of current file editor/notebook.
*/
class Model extends VDomModel {
server_extension_status: SCHEMA.ServersResponse | null;
language_server_manager: ILanguageServerManager;
trans: TranslationBundle;
private _connection_manager;
constructor(widget_adapter_manager: ILSPAdapterManager, trans: TranslationBundle);
get available_servers(): TSessionMap;
get supported_languages(): Set;
private is_server_running;
get documents_by_server(): Map>;
get servers_available_not_in_use(): Array;
get detected_languages(): Set;
get missing_languages(): Array;
get status(): IStatus;
get status_icon(): LabIcon;
get short_message(): string;
get feature_message(): string;
get long_message(): string;
get adapter(): WidgetAdapter | null;
change_adapter(adapter: WidgetAdapter | null): void;
get connection_manager(): DocumentConnectionManager;
/**
* Note: it is ever only set once, as connection_manager is a singleton.
*/
set connection_manager(connection_manager: DocumentConnectionManager);
private _onChange;
private _adapter;
}
}
export {};