/**
 * 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 {
  LexicalExtension,
  ExtensionConfigBase,
  DOMConversionOutput,
  LexicalCommand,
  LexicalNode,
  SerializedLexicalNode,
} from 'lexical';
import {DecoratorNode} from 'lexical';

export type SerializedHorizontalRuleNode = SerializedLexicalNode;

declare export var INSERT_HORIZONTAL_RULE_COMMAND: LexicalCommand<void>;

declare export class HorizontalRuleNode extends DecoratorNode<React.Node> {
  createDOM(): HTMLElement;
  getTextContent(): '\n';
  updateDOM(): false;
  decorate(): React.Node;
}

declare function $convertHorizontalRuleElement(): DOMConversionOutput;

declare export function $createHorizontalRuleNode(): HorizontalRuleNode;

declare export function $isHorizontalRuleNode(
  node: ?LexicalNode,
): node is HorizontalRuleNode;

declare export var HorizontalRuleExtension: LexicalExtension<
  ExtensionConfigBase,
  '@lexical/extension/HorizontalRule',
  void,
  void,
>;
