import { EditorView } from '@codemirror/view';
import { JupyterFrontEndPlugin } from '@jupyterlab/application';
import { IVirtualPosition, WidgetLSPAdapter, Document } from '@jupyterlab/lsp';
import { LabIcon } from '@jupyterlab/ui-components';
import { Debouncer } from '@lumino/polling';
import type * as lsProtocol from 'vscode-languageserver-protocol';
import { CodeHighlights as LSPHighlightsSettings } from '../_highlights';
import { FeatureSettings, Feature } from '../feature';
import { DocumentHighlightKind } from '../lsp';
import { ISimpleMarkManager } from '../marks';
import { BrowserConsole } from '../virtual/console';
import { VirtualDocument } from '../virtual/document';
export declare const highlightIcon: LabIcon;
export declare class HighlightsFeature extends Feature {
    readonly capabilities: lsProtocol.ClientCapabilities;
    readonly id: string;
    protected settings: FeatureSettings<LSPHighlightsSettings>;
    protected markManager: ISimpleMarkManager<DocumentHighlightKind>;
    protected console: BrowserConsole;
    private _debouncedGetHighlight;
    private _virtualPosition;
    private _versionSent;
    private _lastToken;
    constructor(options: HighlightsFeature.IOptions);
    protected onBlur(view: EditorView): void;
    protected handleHighlight(items: lsProtocol.DocumentHighlight[] | null, adapter: WidgetLSPAdapter<any>, document: VirtualDocument): void;
    protected createDebouncer(): Debouncer<lsProtocol.DocumentHighlight[] | null, void, [VirtualDocument, IVirtualPosition]>;
    protected requestHighlights: (virtualDocument: VirtualDocument, virtualPosition: IVirtualPosition) => Promise<lsProtocol.DocumentHighlight[] | null>;
    protected onCursorActivity(editorAccessor: Document.IEditor, adapter: WidgetLSPAdapter<any>): Promise<void>;
}
export declare namespace HighlightsFeature {
    interface IOptions extends Feature.IOptions {
        settings: FeatureSettings<LSPHighlightsSettings>;
    }
    const id: string;
}
export declare const HIGHLIGHTS_PLUGIN: JupyterFrontEndPlugin<void>;
