import { JupyterFrontEnd } from '@jupyterlab/application';
import { CompletionHandler, ICompletionManager, CompleterModel } from '@jupyterlab/completer';
import { IDocumentWidget } from '@jupyterlab/docregistry';
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
import { ILSPCompletionThemeManager } from '@krassowski/completion-theme/lib/types';
import type * as CodeMirror from 'codemirror';
import { CodeCompletion as LSPCompletionSettings } from '../../_completion';
import { IEditorChangedData, WidgetAdapter } from '../../adapters/adapter';
import { IDocumentConnectionData } from '../../connection_manager';
import { CodeMirrorIntegration } from '../../editor_integration/codemirror';
import { FeatureSettings, IFeatureLabIntegration } from '../../feature';
import { ExtendedCompletionTriggerKind } from '../../lsp';
import { ILSPAdapterManager, ILSPLogConsole } from '../../tokens';
import { LSPConnector } from './completion_handler';
import { LazyCompletionItem } from './item';
import { LSPCompleterModel } from './model';
import { ICompletionData, LSPCompletionRenderer } from './renderer';
export declare class CompletionCM extends CodeMirrorIntegration {
    private _completionCharacters;
    get settings(): FeatureSettings<LSPCompletionSettings>;
    get completionCharacters(): string[];
    afterChange(change: CodeMirror.EditorChange): void;
}
export declare class CompletionLabIntegration implements IFeatureLabIntegration {
    private app;
    private completionManager;
    settings: FeatureSettings<LSPCompletionSettings>;
    private adapterManager;
    private completionThemeManager;
    private console;
    private renderMimeRegistry;
    protected current_completion_connector: LSPConnector;
    protected current_completion_handler: CompletionHandler;
    protected current_adapter: WidgetAdapter<IDocumentWidget> | null;
    protected renderer: LSPCompletionRenderer;
    private _latestActiveItem;
    private _signalConnected;
    private _disabled;
    constructor(app: JupyterFrontEnd, completionManager: ICompletionManager, settings: FeatureSettings<LSPCompletionSettings>, adapterManager: ILSPAdapterManager, completionThemeManager: ILSPCompletionThemeManager, console: ILSPLogConsole, renderMimeRegistry: IRenderMimeRegistry);
    protected fetchDocumentation(item: LazyCompletionItem): void;
    active_completion_changed(renderer: LSPCompletionRenderer, active_completion: ICompletionData): void;
    private resolve_and_update_from_item;
    private resolve_and_update;
    private swap_adapter;
    connect_completion(adapter: WidgetAdapter<IDocumentWidget>, data?: IDocumentConnectionData): void;
    protected get completer(): import("@jupyterlab/completer").Completer;
    protected get model(): LSPCompleterModel | CompleterModel;
    invoke_completer(kind: ExtendedCompletionTriggerKind): Promise<any>;
    set_connector(adapter: WidgetAdapter<IDocumentWidget>, editor_changed: IEditorChangedData): void;
    private get current_items();
    private get current_index();
    refresh_doc_panel(item: LazyCompletionItem): void;
    set_doc_panel_placeholder(enable: boolean): void;
    private set_completion_connector;
}
