import { PluginKey } from 'prosemirror-state';
import { Extension } from '../../core/Extension.js';
/**
 * Resolves the PM position at a given goalX within a line's position range.
 *
 * Uses binary search with computeCaretLayoutRect to find the position within
 * [pmStart, pmEnd] whose layout X is closest to goalX. This avoids relying on
 * screen-space hit testing, which fails when the target line is outside the
 * visible viewport (e.g., after crossing a page boundary).
 *
 * @param {Object} editor
 * @param {number} pmStart - Start PM position of the target line.
 * @param {number} pmEnd - End PM position of the target line.
 * @param {number} goalX - Target X coordinate in layout space.
 * @returns {{ pos: number } | null}
 */
export function resolvePositionAtGoalX(editor: Object, pmStart: number, pmEnd: number, goalX: number): {
    pos: number;
} | null;
export const VerticalNavigationPluginKey: PluginKey<any>;
/**
 * Enables vertical caret navigation in presentation mode by preserving a goal X
 * column and translating Up/Down arrow presses into layout-engine hit tests.
 * This keeps the caret aligned across wrapped lines, fragments, and pages while
 * respecting selection extension and avoiding non-text selections.
 */
export const VerticalNavigation: Extension<Record<string, never>, Record<string, never>>;
//# sourceMappingURL=vertical-navigation.d.ts.map