import { CodeEditor } from '@jupyterlab/codeeditor';
import { IFeatureEditorIntegration } from '../feature';
import { ILSPLogConsole } from '../tokens';
import { VirtualDocument } from '../virtual/document';
import { IEditorChange, IVirtualEditor } from '../virtual/editor';
import IEditor = CodeEditor.IEditor;
export declare class EditorAdapter<T extends IVirtualEditor<IEditor>> {
    protected editor: IVirtualEditor<CodeEditor.IEditor>;
    protected virtual_document: VirtualDocument;
    features: Map<string, IFeatureEditorIntegration<T>>;
    isDisposed: boolean;
    private last_change;
    private console;
    constructor(editor: IVirtualEditor<CodeEditor.IEditor>, virtual_document: VirtualDocument, features: IFeatureEditorIntegration<T>[] | undefined, console: ILSPLogConsole);
    updateAfterChange(): Promise<true | undefined>;
    invalidateLastChange(): void;
    saveChange(sender: IVirtualEditor<IEditor>, change: IEditorChange): void;
    dispose(): void;
}
