import { Editor as Editor$1, EditorOptions, Storage, MarkViewRendererOptions, MarkViewProps, MarkView, MarkViewRenderer, NodeViewProps, NodeViewRendererOptions, NodeViewRenderer } from '@tiptap/core'; export * from '@tiptap/core'; import { EditorState, Plugin, PluginKey } from '@tiptap/pm/state'; import * as vue from 'vue'; import { ComponentInternalInstance, ComponentPublicInstance, AppContext, PropType, Ref, h, Component } from 'vue'; import { Node } from '@tiptap/pm/model'; import { Decoration, DecorationSource } from '@tiptap/pm/view'; type ContentComponent = ComponentInternalInstance & { ctx: ComponentPublicInstance; }; declare class Editor extends Editor$1 { private reactiveState; private reactiveExtensionStorage; contentComponent: ContentComponent | null; appContext: AppContext | null; constructor(options?: Partial); get state(): EditorState; get storage(): Storage; /** * Register a ProseMirror plugin. */ registerPlugin(plugin: Plugin, handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[]): EditorState; /** * Unregister a ProseMirror plugin. */ unregisterPlugin(nameOrPluginKey: string | PluginKey): EditorState | undefined; } declare const EditorContent: vue.DefineComponent; }; }>, { rootEl: Ref; }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly; }; }>> & Readonly<{}>, { editor: Editor; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; declare const NodeViewContent: vue.DefineComponent, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly> & Readonly<{}>, { as: string; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; declare const NodeViewWrapper: vue.DefineComponent, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly> & Readonly<{}>, { as: string; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; declare const useEditor: (options?: Partial) => vue.ShallowRef; interface VueRendererOptions { editor: Editor$1; props?: Record; } type ExtendedVNode = ReturnType | null; interface RenderedComponent { vNode: ExtendedVNode; destroy: () => void; el: Element | null; } /** * This class is used to render Vue components inside the editor. */ declare class VueRenderer { renderedComponent: RenderedComponent; editor: Editor; component: Component; el: Element | null; props: Record; /** * Flag to track if the renderer has been destroyed, preventing queued or asynchronous renders from executing after teardown. */ destroyed: boolean; constructor(component: Component, { props, editor }: VueRendererOptions); get element(): Element | null; get ref(): any; renderComponent(): RenderedComponent; updateProps(props?: Record): void; destroy(): void; } interface VueMarkViewRendererOptions extends MarkViewRendererOptions { as?: string; className?: string; attrs?: { [key: string]: string; }; } declare const markViewProps: { editor: { type: PropType; required: true; }; mark: { type: PropType; required: true; }; extension: { type: PropType; required: true; }; inline: { type: PropType; required: true; }; view: { type: PropType; required: true; }; updateAttributes: { type: PropType; required: true; }; HTMLAttributes: { type: PropType; required: true; }; }; declare const MarkViewContent: vue.DefineComponent, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly> & Readonly<{}>, { as: string; }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>; declare class VueMarkView extends MarkView { renderer: VueRenderer; constructor(component: Component, props: MarkViewProps, options?: Partial); get dom(): HTMLElement; get contentDOM(): HTMLElement | null; updateAttributes(attrs: Record): void; destroy(): void; } declare function VueMarkViewRenderer(component: Component, options?: Partial): MarkViewRenderer; declare const nodeViewProps: { editor: { type: PropType; required: true; }; node: { type: PropType; required: true; }; decorations: { type: PropType; required: true; }; selected: { type: PropType; required: true; }; extension: { type: PropType; required: true; }; getPos: { type: PropType; required: true; }; updateAttributes: { type: PropType; required: true; }; deleteNode: { type: PropType; required: true; }; view: { type: PropType; required: true; }; innerDecorations: { type: PropType; required: true; }; HTMLAttributes: { type: PropType; required: true; }; }; interface VueNodeViewRendererOptions extends NodeViewRendererOptions { update: ((props: { oldNode: Node; oldDecorations: readonly Decoration[]; oldInnerDecorations: DecorationSource; newNode: Node; newDecorations: readonly Decoration[]; innerDecorations: DecorationSource; updateProps: () => void; }) => boolean) | null; } declare function VueNodeViewRenderer(component: Component, options?: Partial): NodeViewRenderer; export { Editor, EditorContent, MarkViewContent, NodeViewContent, NodeViewWrapper, VueMarkView, VueMarkViewRenderer, type VueMarkViewRendererOptions, VueNodeViewRenderer, type VueNodeViewRendererOptions, VueRenderer, type VueRendererOptions, markViewProps, nodeViewProps, useEditor };