/** Updates the mouse-down tracking flag used to skip selection normalization during drag. */
export declare function setMouseDown(value: boolean): void;
/** Returns whether the mouse is currently pressed. */
export declare function getMouseDown(): boolean;
/**
 * Checks whether a node is inside a reference element's internals or directly
 * on the contentEditable div (not inside a paragraph). These are non-typeable
 * positions where the caret should not rest.
 */
export declare function isNonTypeablePosition(node: Node | null): boolean;
/**
 * Finds the reference wrapper element that contains the given node, if any.
 * Returns null if the node is not inside a reference element.
 */
export declare function findContainingReference(node: Node | null): HTMLElement | null;
/**
 * Moves a collapsed caret out of non-typeable positions into the parent paragraph.
 * Handles caret inside reference element internals (caret spots, token container)
 * and caret on the contentEditable div itself (clicking on padding).
 * Some browsers (notably Firefox) may place the caret in these positions on focus
 * or imprecise clicks.
 */
export declare function normalizeCollapsedCaret(selection: Selection | null): void;
/** Adjusts non-collapsed selection boundaries to exclude caret spot elements. */
export declare function normalizeSelection(selection: Selection | null, skipCaretSpots?: boolean): void;
//# sourceMappingURL=caret-utils.d.ts.map