import React from 'react'; import { BaseEditor } from 'slate'; import { HistoryEditor } from 'slate-history'; import { ReactEditor } from 'slate-react'; import { MarkdownEditorProps } from '../../BaseMarkdownEditor'; import { EditorStore } from '../store'; /** * 键盘事件处理 Hook - 管理 Markdown 编辑器的所有键盘交互 * * 该 Hook 负责拦截和处理各种键盘快捷键和特殊按键操作,提供丰富的编辑体验: * * 支持的快捷键操作: * - Tab/Shift+Tab:代码块缩进控制、列表层级调整 * - Backspace:智能删除、格式清理、列表处理 * - Enter:段落分割、列表项创建、代码块换行 * - 方向键:光标移动、选择范围调整 * - Ctrl/Cmd 组合键:文本格式化(粗体、斜体等) * * 特殊功能: * - 自动补全面板的键盘导航 * - 表格单元格间的 Tab 导航 * - 代码块的语法高亮触发 * - Markdown 语法的智能识别和转换 * * @param store - 编辑器的全局状态管理对象 * @param markdownEditorRef - 指向 Slate.js 编辑器实例的引用 * @param props - 编辑器的属性配置对象 * @returns 返回键盘事件处理函数,用于绑定到 Slate.js 的 onKeyDown 属性 * * @example * ```typescript * const onKeyDown = useKeyboard(store, editorRef, editorProps); * * return ( * * * * ); * ``` * * @remarks * - 所有按键处理都经过 isHotkey 库进行精确匹配 * - 支持跨平台快捷键(Windows/Mac) * - 与编辑器状态深度集成,实现上下文相关的行为 * - 提供良好的用户体验和 Markdown 编辑效率 */ export declare const useKeyboard: (store: EditorStore, markdownEditorRef: React.MutableRefObject, props: MarkdownEditorProps) => (e: React.KeyboardEvent) => void;