import { Completer } from '@jupyterlab/completer';
import { IRenderMime } from '@jupyterlab/rendermime';
import { CodeCompletion as LSPCompletionSettings } from '../../_completion';
import { FeatureSettings } from '../../feature';
import { ILSPLogConsole } from '../../tokens';
import { CompletionItem, IExtendedCompletionItem } from './item';
export interface ICompletionData {
    item: CompletionItem;
    element: HTMLLIElement;
}
export declare class LSPCompletionRenderer extends Completer.Renderer implements Completer.IRenderer {
    protected options: LSPCompletionRenderer.IOptions;
    private visibilityObserver;
    private elementToItem;
    protected ITEM_PLACEHOLDER_CLASS: string;
    protected EXTRA_INFO_CLASS: string;
    protected LABEL_CLASS: string;
    constructor(options: LSPCompletionRenderer.IOptions);
    protected getExtraInfo(item: CompletionItem | IExtendedCompletionItem): string | undefined;
    updateExtraInfo(item: CompletionItem | IExtendedCompletionItem, li: HTMLLIElement): void;
    createCompletionItemNode(item: CompletionItem, orderedTypes: string[]): HTMLLIElement;
    private _elideMark;
    createDocumentationNode(item: CompletionItem): HTMLElement;
    itemWidthHeuristic(item: CompletionItem | IExtendedCompletionItem): number;
}
export declare namespace LSPCompletionRenderer {
    interface IOptions {
        settings: FeatureSettings<LSPCompletionSettings>;
        markdownRenderer: IRenderMime.IRenderer | null;
        latexTypesetter?: IRenderMime.ILatexTypesetter | null;
        console: ILSPLogConsole;
    }
}
