import { SessionContext } from '@jupyterlab/apputils';
import { ICellModel } from '@jupyterlab/cells';
import { CodeEditor } from '@jupyterlab/codeeditor';
import * as nbformat from '@jupyterlab/nbformat';
import { Notebook, NotebookPanel } from '@jupyterlab/notebook';
import { IObservableList, IObservableUndoableList } from '@jupyterlab/observables';
import { Session } from '@jupyterlab/services';
import { ICommandContext } from '../../command_manager';
import { LSPExtension } from '../../index';
import { IVirtualPosition } from '../../positioning';
import { VirtualDocument } from '../../virtual/document';
import { WidgetAdapter } from '../adapter';
import ILanguageInfoMetadata = nbformat.ILanguageInfoMetadata;
export declare class NotebookAdapter extends WidgetAdapter<NotebookPanel> {
    editor: Notebook;
    private ce_editor_to_cell;
    private known_editors_ids;
    private _language_info;
    private type;
    constructor(extension: LSPExtension, editor_widget: NotebookPanel);
    private update_language_info;
    on_kernel_changed(_session: SessionContext, change: Session.ISessionConnection.IKernelChangedArgs): Promise<void>;
    dispose(): void;
    is_ready: () => boolean;
    get document_path(): string;
    protected language_info(): ILanguageInfoMetadata;
    get mime_type(): string;
    get language_file_extension(): string | undefined;
    get wrapper_element(): HTMLElement;
    protected init_once_ready(): Promise<void>;
    private _connectModelSignals;
    handle_cell_change(cells: IObservableUndoableList<ICellModel>, change: IObservableList.IChangedArgs<ICellModel>): Promise<void>;
    get editors(): CodeEditor.IEditor[];
    create_virtual_document(): VirtualDocument;
    get activeEditor(): CodeEditor.IEditor | undefined;
    private activeCellChanged;
    context_from_active_document(): ICommandContext | null;
    get_editor_index_at(position: IVirtualPosition): number;
    get_editor_index(ce_editor: CodeEditor.IEditor): number;
    get_editor_wrapper(ce_editor: CodeEditor.IEditor): HTMLElement;
    private get_cell_at;
}
