import { Crepe } from '@milkdown/crepe'; import { useNodeViewFactory, usePluginViewFactory } from '@prosemirror-adapter/react'; import { SlashMenuItemConfig } from './slash-items'; /** Minimal interface for slash menu group returned by builder.addGroup() */ interface SlashMenuGroup { addItem: (key: string, item: SlashMenuItemConfig) => SlashMenuGroup; } export interface ConfigureEmbedsOptions { /** Node view factory from useNodeViewFactory() */ nodeViewFactory: ReturnType; /** Plugin view factory from usePluginViewFactory() */ pluginViewFactory: ReturnType; } /** * Configure embed blocks feature for the editor. * Installs all embed plugins, NodeView, and tooltip. * * Usage: * ```ts * const nodeViewFactory = useNodeViewFactory(); * const pluginViewFactory = usePluginViewFactory(); * * // In useEditor callback: * configureEmbeds(crepe, { nodeViewFactory, pluginViewFactory }); * ``` */ export declare function configureEmbeds(crepe: Crepe, { nodeViewFactory, pluginViewFactory }: ConfigureEmbedsOptions): void; /** * Adds embed items to a slash menu group. * Call this in Crepe's buildMenu callback. * * Usage: * ```ts * [Crepe.Feature.BlockEdit]: { * buildMenu: (builder) => { * const embedsGroup = builder.addGroup('embeds', 'Embeds'); * configureEmbedSlashMenu(embedsGroup); * }, * }, * ``` */ export declare function configureEmbedSlashMenu(group: SlashMenuGroup): void; export {};