/** * 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. * */ import type { JSX } from 'react'; import { DecoratorNode, type ElementFormatType, type LexicalNode, type LexicalParseJSON, type NodeKey, type SerializedLexicalNode, type SerializedPartial, type Spread } from 'lexical'; /** * The serialized form of a {@link DecoratorBlockNode}: the base serialized node * data plus the block's element `format` (alignment). */ export type SerializedDecoratorBlockNode = Spread<{ format: ElementFormatType; }, SerializedLexicalNode>; export interface DecoratorBlockNode { exportJSON(compact?: false): SerializedDecoratorBlockNode; exportJSON(compact: boolean): SerializedPartial; updateFromJSON(serializedNode: LexicalParseJSON): this; } /** * A base class for block-level {@link DecoratorNode}s (decorator nodes rendered * on their own line rather than inline). It stores an {@link ElementFormatType} * alignment, is not indentable, and renders into a `
`. Extend it for custom * block embeds such as images, videos, or tweets, typically pairing it with * {@link BlockWithAlignableContents} to handle selection and alignment. */ export declare class DecoratorBlockNode extends DecoratorNode { __format: ElementFormatType; constructor(format?: ElementFormatType, key?: NodeKey); $config(): import("lexical").BaseStaticNodeConfig & import("lexical").StaticNodeConfigAccessor<{ readonly extends: typeof DecoratorNode; readonly generated: import("lexical").GeneratedJSONFactory; readonly json: import("lexical").NodeSerializationSchema; }>; canIndent(): false; createDOM(): HTMLElement; updateDOM(): false; setFormat(format: ElementFormatType): this; getFormat(): ElementFormatType; isInline(): false; } /** * @returns `true` if `node` is a {@link DecoratorBlockNode}, narrowing its type. */ export declare function $isDecoratorBlockNode(node: LexicalNode | null | undefined): node is DecoratorBlockNode;