import { type DOMConversionMap, type DOMExportOutput, type EditorConfig, type ElementFormatType, type LexicalEditor, type LexicalNode, type NodeKey, type Spread } from 'lexical'; import { DecoratorBlockNode, SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode'; import type { JSX } from 'react'; declare const NODE_TYPE = "x-component"; interface CustomComponentData { component: string; properties?: Record; } export type SerializedCustomComponentNode = Spread<{ type: typeof NODE_TYPE; data: CustomComponentData; }, SerializedDecoratorBlockNode>; export declare class CustomComponentNode extends DecoratorBlockNode { __data: CustomComponentData; static getType(): string; static clone(node: CustomComponentNode): CustomComponentNode; constructor(data: CustomComponentData, format?: ElementFormatType, key?: NodeKey); exportDOM(): DOMExportOutput; static importDOM(): DOMConversionMap | null; static importJSON(serializedNode: SerializedCustomComponentNode): CustomComponentNode; exportJSON(): SerializedCustomComponentNode; getData(): CustomComponentData; setData(data: CustomComponentData): void; isInline(): false; decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element; } export declare function $createCustomComponentNode(data: CustomComponentData): CustomComponentNode; export declare function $isCustomComponentNode(node: LexicalNode | null | undefined): node is CustomComponentNode; export {};