import { PluginKey } from 'prosemirror-state';
/**
 * Returns true when the caret should be treated as being at the effective end
 * of the paragraph for horizontal navigation purposes.
 *
 * This is run-aware: the end of the final run in the paragraph counts as the
 * end of the text block even when the selection has not advanced to the raw
 * paragraph boundary position yet. Trailing inline atoms (bookmarks,
 * permission markers, etc.) are ignored.
 *
 * @param {import('prosemirror-model').ResolvedPos} $head
 * @returns {boolean}
 */
export function isAtEffectiveParagraphEnd($head: import('prosemirror-model').ResolvedPos): boolean;
/**
 * Returns true when the caret should be treated as being at the effective start
 * of the paragraph for horizontal navigation purposes.
 *
 * Leading inline atoms (bookmarks, permission markers, etc.) are ignored.
 *
 * @param {import('prosemirror-model').ResolvedPos} $head
 * @returns {boolean}
 */
export function isAtEffectiveParagraphStart($head: import('prosemirror-model').ResolvedPos): boolean;
/**
 * Returns true when the position is inside the protected trailing empty
 * paragraph that follows the last table in the document.
 *
 * @param {import('prosemirror-state').EditorState} state
 * @returns {boolean}
 */
export function isInProtectedTrailingTableParagraph(state: import('prosemirror-state').EditorState): boolean;
/**
 * Computes the selection to apply when a horizontal arrow key should exit a
 * table from the first or last cell. Returns null when no custom handling is
 * required and native/ProseMirror behavior should continue.
 *
 * @param {import('prosemirror-state').EditorState} state
 * @param {-1 | 1} dir
 * @returns {import('prosemirror-state').Selection | null}
 */
export function getTableBoundaryExitSelection(state: import('prosemirror-state').EditorState, dir: -1 | 1): import('prosemirror-state').Selection | null;
/**
 * Computes intra-table horizontal navigation selection between adjacent cells.
 * Returns null when native behavior should continue.
 *
 * @param {import('prosemirror-state').EditorState} state
 * @param {-1 | 1} dir
 * @param {boolean} expandSelection
 * @returns {import('prosemirror-state').Selection | null}
 */
export function getIntraTableArrowSelection(state: import('prosemirror-state').EditorState, dir: -1 | 1, expandSelection: boolean): import('prosemirror-state').Selection | null;
/**
 * Computes the selection to apply when a horizontal arrow key should enter a
 * table from an adjacent paragraph. Returns null when no custom handling is
 * required and native/ProseMirror behavior should continue.
 *
 * @param {import('prosemirror-state').EditorState} state
 * @param {-1 | 1} dir
 * @returns {import('prosemirror-state').Selection | null}
 */
export function getAdjacentTableEntrySelection(state: import('prosemirror-state').EditorState, dir: -1 | 1): import('prosemirror-state').Selection | null;
/**
 * Creates a plugin that exits the table when ArrowLeft/ArrowRight is pressed at
 * the effective start/end of the first/last cell.
 *
 * @returns {import('prosemirror-state').Plugin}
 */
export function createTableBoundaryNavigationPlugin(): import('prosemirror-state').Plugin;
/**
 * Plugin key for horizontal table boundary navigation.
 */
export const TableBoundaryNavigationPluginKey: PluginKey<any>;
//# sourceMappingURL=tableBoundaryNavigation.d.ts.map