import type { Mark, Node } from 'prosemirror-model'; import type { EditorView, NodeView, NodeViewConstructor, ViewMutationRecord } from 'prosemirror-view'; import type { ExtensionDeps, Serializer } from "../core/index.js"; type ReactNodeViewOptions = { isInline?: boolean; reactNodeWrapperCn?: string; extensionOptions?: T; }; export declare const ReactNodeStopEventCn = "prosemirror-stop-event"; export type ReactNodeViewProps = { dom: HTMLElement; view: EditorView; updateAttributes: (attrs: object, marks?: Mark[]) => void; node: Node; getPos: () => number | undefined; serializer: Serializer; extensionOptions?: T; }; export declare class ReactNodeView implements NodeView { readonly dom: HTMLElement; node: Node; readonly view: EditorView; readonly serializer: Serializer; readonly renderItem: import("../extensions/behavior/ReactRenderer/index.js").RendererItem; readonly getPos: () => number | undefined; constructor(Component: React.FC>, opts: { node: Node; view: EditorView; getPos: () => number | undefined; serializer: Serializer; options?: ReactNodeViewOptions; }); update(node: Node): boolean; destroy(): void; ignoreMutation(_mutation: ViewMutationRecord): boolean; updateAttributes(attributes: {}, marks?: Mark[]): void; stopEvent(e: Event): boolean; } export declare const reactNodeViewFactory: (Component: React.FC>, options?: ReactNodeViewOptions) => (deps: ExtensionDeps) => NodeViewConstructor; export {};