/**
 * Side menu utils
 *
 * @author YousefED@BlockNote
 * see https://github.com/TypeCellOS/BlockNote/blob/main/packages/core/src/extensions/SideMenu/SideMenuPlugin.ts
 */
import type { Editor } from '@tiptap/core';
import type { EditorView } from '@tiptap/pm/view';
import type { Node, NodeType } from '@tiptap/pm/model';
import type { Selection } from '@tiptap/pm/state';
export declare function getNodeElementFromCoords(coords: {
    left: number;
    top: number;
}, view: EditorView): HTMLElement;
export declare function getNodeElementFromPos(pos: number, view: EditorView): HTMLElement;
export declare function getNodeViewElementFromPos(pos: number, view: EditorView): HTMLElement;
export declare function getNodePosFromCoords(coords: {
    left: number;
    top: number;
}, view: EditorView): any;
export declare function getNodePosFromSelection(selection: Selection, doc: Node): {
    from: number;
    to: number;
};
export type BlockInfoWithoutPositions = {
    id: string;
    node: Node;
    contentNode: Node;
    contentType: NodeType;
    numChildBlocks: number;
};
export type BlockInfo = BlockInfoWithoutPositions & {
    startPos: number;
    endPos: number;
    depth: number;
};
export declare function getNodeInfo(blockContainer: Node): BlockInfoWithoutPositions;
export declare function getNodeInfoFromPos(doc: Node, pos: number): BlockInfo;
export declare function getNodeInfoFromCoords(editor: Editor, view: EditorView, coords: {
    left: number;
    top: number;
}): BlockInfo;
export type NodeInfo = {
    node: Node | null;
    pos: number;
};
/**
 * Get top level node
 * @param coords
 * @param editor
 */
export declare function getTopNodeFromCoords(coords: {
    left: number;
    top: number;
}, editor: Editor): NodeInfo;
export declare function getNodeFromCoords(coords: {
    left: number;
    top: number;
}, editor: Editor): NodeInfo;
