import { EditorPluginKit } from '../types/plugin-types'; /** * 可用的插件功能 */ export type PluginFeature = 'basicBlocks' | 'basicMarks' | 'codeBlock' | 'table' | 'toggle' | 'toc' | 'media' | 'callout' | 'column' | 'math' | 'date' | 'link' | 'mention' | 'font' | 'list' | 'align' | 'lineHeight' | 'slash' | 'autoformat' | 'blockMenu' | 'dnd' | 'emoji' | 'exitBreak' | 'placeholder' | 'trailingBlock' | 'fixedToolbar' | 'floatingToolbar' | 'docx' | 'markdown' | 'ai' | 'copilot' | 'comment' | 'discussion' | 'suggestion' | 'cursorOverlay'; /** * 预设配置 */ export declare const PLUGIN_PRESETS: { /** * 最小配置:仅基础编辑功能 */ readonly minimal: PluginFeature[]; /** * 基础配置:常用编辑功能,无 AI/协作 */ readonly basic: PluginFeature[]; /** * 完整配置:所有功能,无 AI/协作 */ readonly full: PluginFeature[]; /** * 完整配置 + AI */ readonly fullWithAI: PluginFeature[]; /** * 完整配置 + 协作 */ readonly fullWithCollaboration: PluginFeature[]; /** * 完整配置 + AI + 协作 */ readonly enterprise: PluginFeature[]; }; export type PluginPreset = keyof typeof PLUGIN_PRESETS; /** * 创建编辑器插件配置选项 */ export interface CreateEditorKitOptions { /** * 使用预设配置 */ preset?: PluginPreset; /** * 启用的功能列表(与 preset 合并) */ features?: PluginFeature[]; /** * 禁用的功能列表(从 preset 中排除) */ exclude?: PluginFeature[]; /** * 额外的自定义插件 */ extraPlugins?: EditorPluginKit; } /** * 创建编辑器插件集合 * @param options 配置选项 * @returns 插件数组 * * @example * // 使用预设 * const plugins = createEditorKit({ preset: 'basic' }); * * @example * // 使用预设并排除某些功能 * const plugins = createEditorKit({ * preset: 'full', * exclude: ['math', 'mention'] * }); * * @example * // 自定义功能列表 * const plugins = createEditorKit({ * features: ['basicBlocks', 'basicMarks', 'link', 'list'] * }); * * @example * // 基于预设添加功能 * const plugins = createEditorKit({ * preset: 'basic', * features: ['ai', 'copilot'] * }); */ export declare function createEditorKit(options?: CreateEditorKitOptions): EditorPluginKit; /** * 获取预设的功能列表 * @param preset 预设名称 * @returns 功能列表 */ export declare function getPresetFeatures(preset: PluginPreset): PluginFeature[]; /** * 检查功能是否在预设中 * @param preset 预设名称 * @param feature 功能名称 * @returns 是否包含 */ export declare function isFeatureInPreset(preset: PluginPreset, feature: PluginFeature): boolean;