import { CodeEditor } from '@jupyterlab/codeeditor';
import type { IVirtualPosition, IRootPosition, Document, ForeignDocumentsMap } from '@jupyterlab/lsp';
import { VirtualDocument as VirtualDocumentBase } from '@jupyterlab/lsp';
import { ICodeOverridesRegistry } from '../overrides/tokens';
export declare namespace VirtualDocument {
    interface IOptions extends VirtualDocumentBase.IOptions {
        overridesRegistry: ICodeOverridesRegistry;
    }
}
export declare class VirtualDocument extends VirtualDocumentBase {
    private cellMagicsOverrides;
    private lineMagicsOverrides;
    constructor(options: VirtualDocument.IOptions);
    decodeCodeBlock(rawCode: string): string;
    /**
     * Extends parent method to hook cell magics overrides.
     */
    prepareCodeBlock(block: Document.ICodeBlockOptions, editorShift?: CodeEditor.IPosition): {
        lines: string[];
        foreignDocumentsMap: Map<CodeEditor.IRange, Document.IVirtualDocumentBlock>;
        skipInspect: string[][];
    };
    appendCodeBlock(block: Document.ICodeBlockOptions, editorShift?: CodeEditor.IPosition, virtualShift?: CodeEditor.IPosition): void;
    /**
     * @experimental
     */
    transformVirtualToRoot(position: IVirtualPosition): IRootPosition | null;
    /**
     * @experimental
     */
    getForeignDocuments(editorAccessor: Document.IEditor): ForeignDocumentsMap[];
}
