import type { DecorationWithType, NodeView, NodeViewRendererOptions } from '../tiptap/core/index';
import type { Node as ProseMirrorNode } from '../tiptap/pm/model';
import type { DecorationSource } from '../tiptap/pm/view';
import type { Editor } from '../tiptap/react';
export interface ReactNodeViewRendererOptions extends NodeViewRendererOptions {
    /**
     * This function is called when the node view is updated.
     * It allows you to compare the old node with the new node and decide if the component should update.
     */
    update: ((this: NodeView<any>, props: {
        oldNode: ProseMirrorNode;
        oldDecorations: DecorationWithType[];
        oldInnerDecorations: DecorationSource;
        newNode: ProseMirrorNode;
        newDecorations: DecorationWithType[];
        innerDecorations: DecorationSource;
        updateProps: () => void;
    }) => boolean) | null;
    /**
     * The tag name of the element wrapping the React component.
     */
    as?: string;
    /**
     * The class name of the element wrapping the React component.
     */
    className?: string;
    /**
     * Attributes that should be applied to the element wrapping the React component.
     * If this is a function, it will be called each time the node view is updated.
     * If this is an object, it will be applied once when the node view is mounted.
     */
    attrs?: Record<string, string> | ((props: {
        node: ProseMirrorNode;
        HTMLAttributes: Record<string, any>;
    }) => Record<string, string>);
    onDragStart: (this: NodeView<any>, props: {
        editor: Editor;
        dragHandle: Element | null | undefined;
        target: HTMLElement;
        event: React.DragEvent<HTMLElement> | DragEvent;
    }) => void;
    onSelectNode: (this: NodeView<any>, props: {
        editor: Editor;
    }) => void;
    stopEvent: (this: NodeView<any>, props: {
        event: Event;
    }) => boolean;
}
//# sourceMappingURL=react-node-view-rendering-options.d.ts.map