import { DOMConversionMap, DOMExportOutput, EditorConfig, NodeKey, SerializedLexicalNode, DecoratorNode } from 'lexical'; export interface EntityLinkPayload { id: string; title: string; icon: string | null; order?: number; inlineElement?: boolean; placeholder?: boolean; isPublic?: boolean; previewUrl?: string; } export interface EntityLinkNodeConfig { nodeType: string; idJsonKey: string; attrPrefix: string; cssBase: string; } export type SerializedEntityLinkNode = SerializedLexicalNode & { title: string; icon: string | null; order?: number; inlineElement: boolean; placeholder?: boolean; isPublic?: boolean; } & Record; export declare abstract class EntityLinkNode extends DecoratorNode { __entityId: string; __title: string; __icon: string | null; __order?: number; __inlineElement: boolean; __placeholder: boolean; __isPublic?: boolean; protected abstract entityConfig(): EntityLinkNodeConfig; constructor(entityId: string, title: string, icon: string | null, order: number | undefined, inlineElement?: boolean, placeholder?: boolean, isPublic?: boolean, key?: NodeKey); getIsPublic(): boolean | undefined; setIsPublic(isPublic: boolean | undefined): void; getEntityId(): string; setEntityId(id: string): void; isPlaceholderLink(): boolean; getMeta(): { title: string; icon: string | null; }; setMeta(title: string, icon: string | null): void; exportJSON(): SerializedEntityLinkNode; createDOM(_config: EditorConfig): HTMLElement; updateDOM(prevNode: EntityLinkNode): boolean; getTextContent(): string; isInline(): boolean; getInlineElement(): boolean; exportDOM(): DOMExportOutput; } export declare function buildEntityLinkDOMConversion(attrPrefix: string, $create: (payload: EntityLinkPayload) => EntityLinkNode): DOMConversionMap; //# sourceMappingURL=node.d.ts.map