import type { DOMConversionMap, DOMExportOutput, EditorConfig, ElementFormatType, LexicalEditor, LexicalNode, NodeKey, Spread } from 'lexical'; import { DecoratorBlockNode, SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode'; import type { JSX } from 'react'; export interface BookmarkInfo { url: string; title: string; description?: string; image?: string; favicon?: string; loading?: boolean; selfLoad?: boolean; } export type SerializedBookmarkNode = Spread<{ bookmark: BookmarkInfo; type: 'bookmark'; version: 1; }, SerializedDecoratorBlockNode>; export declare class BookmarkNode extends DecoratorBlockNode { __bookmark: BookmarkInfo; static getType(): string; static clone(node: BookmarkNode): BookmarkNode; static importJSON(serializedNode: SerializedBookmarkNode): BookmarkNode; exportJSON(): SerializedBookmarkNode; constructor(__bookmark: BookmarkInfo, format?: ElementFormatType, key?: NodeKey); exportDOM(): DOMExportOutput; static importDOM(): DOMConversionMap | null; updateDOM(): false; getId(): string; getTextContent(_includeInert?: boolean | undefined, _includeDirectionless?: false | undefined): string; setBookmark(bookmark: BookmarkInfo): void; decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element; isInline(): false; } export declare function $createBookmarkNode(bookmark: BookmarkInfo | string): BookmarkNode; export declare function $isBookmarkNode(node: BookmarkNode | LexicalNode | null | undefined): node is BookmarkNode;