import { RichTextElement, BlockElement, BoxElement } from "../../interface"; import "../remote-carets/FakeCaretBox"; export declare function getNodeTextLength(node: Node): number; export declare function convertToTextWithFillChar(textElement: RichTextElement): string; export declare function getTextElementLength(textElement: RichTextElement): number; export declare function createRange(richTextElement: RichTextElement, offset: number, options?: { selectNext: boolean; }): Range; export declare function getNodeOffsetInTextElement(richTextElement: RichTextElement, node: Node, offset: number): number; export declare function isRangeAtTextBegin(textElement: RichTextElement, range: Range): boolean; export declare function isRangeAtTextEnd(textElement: RichTextElement, range: Range): boolean; export declare function getTextCaretPos(richTextElement: RichTextElement, node: Node, nodeOffset: number): number; export declare function splitTextBlock(block: BlockElement, offset: number, options: { keepFormat: boolean; }): BlockElement; export declare function isAfterVirtualNode(range: Range): boolean; export declare function isAfterBox(range: Range): boolean; export declare function isBeforeVirtualNode(range: Range): boolean; export declare function getNodeNeighbors(range: Range): { prev: Node | undefined | null; next: Node | undefined | null; }; export declare function getParentSpan(textElement: RichTextElement, node: Node): HTMLElement | null; export declare function getChildRange(textElement: RichTextElement, node: Node): { start: number; end: number; }; export declare function getBoxOffsetInBlock(block: BlockElement, boxElem: BoxElement): number; export declare function isEndWithRemoteCaret(textElement: RichTextElement): boolean; export declare function isInChildSpan(range: Range): boolean; export declare function getFocusedInlineCode(range: Range): HTMLSpanElement | null; export declare function isChildSpanWillBeRemoved(range: Range, direction: 'forward' | 'backward'): boolean;