/** * 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 { DecoratorComponentProps } from './shared/types'; import type { JSX } from 'react'; import { type AnyLexicalExtension, type LexicalEditor, type LexicalExtensionOutput } from 'lexical'; import * as React from 'react'; import { type Container, type Root } from 'react-dom/client'; export type { DecoratorComponentProps }; export interface HostMountCommandArg { root: Root; } export interface MountPluginCommandArg { key: string; element: JSX.Element | null; domNode?: Element | DocumentFragment | null; } export declare function mountReactExtensionComponent(editor: LexicalEditor, opts: { extension: Extension; props: [LexicalExtensionOutput] extends [ { Component: infer OutputComponentType extends React.ComponentType; } ] ? /** The Props from the Extension output Component */ React.ComponentProps | null : never; } & Omit): void; export declare function mountReactPluginComponent

= Record>(editor: LexicalEditor, opts: { Component: React.ComponentType

; props: (P & React.Attributes) | null; } & Omit): void; export declare function mountReactPluginElement(editor: LexicalEditor, opts: MountPluginCommandArg): void; export declare function mountReactPluginHost(editor: LexicalEditor, container: Container): void; export declare const REACT_PLUGIN_HOST_MOUNT_ROOT_COMMAND: import("lexical").LexicalCommand; export declare const REACT_PLUGIN_HOST_MOUNT_PLUGIN_COMMAND: import("lexical").LexicalCommand; /** * This extension provides a React host for editors that are not built * with LexicalExtensionComposer (e.g. you are using Vanilla JS or some * other framework). * * You must use {@link mountReactPluginHost} for any React content to work. * Afterwards, you may use {@link mountReactExtensionComponent} to * render UI for a specific React Extension. * {@link mountReactPluginComponent} and * {@link mountReactPluginElement} can be used to render * legacy React plug-ins (or any React content). */ export declare const ReactPluginHostExtension: import("lexical").LexicalExtension void; mountReactPluginHost: (container: Container) => boolean; mountedPluginsStore: import("@preact/signals-core").Signal<{ plugins: Map; }>; }, unknown>;