/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict */ import type { NodeKey, RangeSelection, TextNode, SerializedElementNode, } from 'lexical'; import {ElementNode, LexicalNode} from 'lexical'; export type SerializedMarkNode = SerializedElementNode & { ids: Array, }; declare export class MarkNode extends ElementNode { __ids: Array; static clone(node: this): MarkNode; constructor(ids: Array, key?: NodeKey): void; hasID(id: string): boolean; getIDs(): Array; addID(id: string): void; deleteID(id: string): void; canInsertTextBefore(): false; canInsertTextAfter(): false; isInline(): true; } declare export function $isMarkNode( node: ?LexicalNode, ): node is MarkNode; declare export function $createMarkNode(ids: Array): MarkNode; declare export function $getMarkIDs( node: TextNode, offset: number, ): null | Array; declare export function $wrapSelectionInMarkNode( selection: RangeSelection, isBackward: boolean, id: string, createNode?: (ids: Array) => MarkNode, ): void; declare export function $unwrapMarkNode(node: MarkNode): void;