import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';
import { ICodeMirror } from '@jupyterlab/codemirror';
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
import * as lsProtocol from 'vscode-languageserver-protocol';
import { CodeSignature as LSPSignatureSettings } from '../_signature';
import { EditorTooltipManager } from '../components/free_tooltip';
import { CodeMirrorIntegration } from '../editor_integration/codemirror';
import { FeatureSettings, IFeatureLabIntegration } from '../feature';
import { IRootPosition } from '../positioning';
import { ILogConsoleCore } from '../tokens';
import { CodeMirrorVirtualEditor } from '../virtual/codemirror_editor';
import { IEditorChange } from '../virtual/editor';
interface ISplit {
    lead: string;
    remainder: string;
}
export declare function extractLead(lines: string[], size: number): ISplit | null;
/**
 * Represent signature as a Markdown element.
 */
export declare function signatureToMarkdown(item: lsProtocol.SignatureInformation, language: string | undefined, codeHighlighter: (source: string, variable: string, language: string) => string, logger: ILogConsoleCore, activeParameterFallback?: number | null, maxLinesBeforeCollapse?: number): string;
export declare class SignatureCM extends CodeMirrorIntegration {
    protected signatureCharacter: IRootPosition;
    protected _signatureCharacters: string[];
    get settings(): FeatureSettings<LSPSignatureSettings>;
    get _closeCharacters(): string[];
    register(): void;
    onBlur(virtualEditor: CodeMirrorVirtualEditor, event: FocusEvent): void;
    onCursorActivity(): void;
    get lab_integration(): SignatureLabIntegration;
    protected get_markup_for_signature_help(response: lsProtocol.SignatureHelp, language?: string): lsProtocol.MarkupContent;
    protected highlightCode(source: string, variable: string, language: string): string;
    /**
     * Represent signature as a Markdown element.
     */
    protected signatureToMarkdown(item: lsProtocol.SignatureInformation, language: string, activeParameterFallback?: number | null): string;
    private _hideTooltip;
    private handleSignature;
    get signatureCharacters(): string[];
    protected isSignatureShown(): boolean;
    afterChange(change: IEditorChange, root_position: IRootPosition): void;
    private requestSignature;
}
declare class SignatureLabIntegration implements IFeatureLabIntegration {
    codeMirror: ICodeMirror;
    tooltip: EditorTooltipManager;
    settings: FeatureSettings<LSPSignatureSettings>;
    constructor(app: JupyterFrontEnd, settings: FeatureSettings<LSPSignatureSettings>, renderMimeRegistry: IRenderMimeRegistry, codeMirror: ICodeMirror);
}
export declare const SIGNATURE_PLUGIN: JupyterFrontEndPlugin<void>;
export {};
