/** @module @lexical/utils */ /** * 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 { EditorState, ElementNode, Klass, LexicalEditor, LexicalNode } from 'lexical'; import { InitialEditorStateType } from '@lexical/react/LexicalComposer'; export type DFSNode = Readonly<{ depth: number; node: LexicalNode; }>; export declare function addClassNamesToElement(element: HTMLElement, ...classNames: Array): void; export declare function removeClassNamesFromElement(element: HTMLElement, ...classNames: Array): void; export declare function isMimeType(file: File, acceptableMimeTypes: Array): boolean; /** * Lexical File Reader with: * 1. MIME type support * 2. batched results (HistoryPlugin compatibility) * 3. Order aware (respects the order when multiple Files are passed) * * const filesResult = await mediaFileReader(files, ['image/']); * filesResult.forEach(file => editor.dispatchCommand('INSERT_IMAGE', { * src: file.result, * })); */ export declare function mediaFileReader(files: Array, acceptableMimeTypes: Array): Promise>; export declare function $dfs(startingNode?: LexicalNode, endingNode?: LexicalNode): Array; export declare function $getDepth(node: LexicalNode): number; export declare function $getNearestNodeOfType(node: LexicalNode, klass: Klass): T | null; export declare function $getNearestBlockElementAncestorOrThrow(startNode: LexicalNode): ElementNode; export type DOMNodeToLexicalConversion = (element: Node) => LexicalNode; export type DOMNodeToLexicalConversionMap = Record; export declare function $findMatchingParent(startingNode: LexicalNode, findFn: (node: LexicalNode) => boolean): LexicalNode | null; type Func = () => void; export declare function mergeRegister(...func: Array): () => void; export declare function registerNestedElementResolver(editor: LexicalEditor, targetNode: Klass, cloneNode: (from: N) => N, handleOverlap: (from: N, to: N) => void): () => void; export declare function $restoreEditorState(editor: LexicalEditor, editorState: EditorState): void; export declare function $wrapNodeInElement(node: LexicalNode, createElementNode: () => ElementNode): ElementNode; export declare function getInitialEditorState(content: string, markdown?: boolean): InitialEditorStateType; export {};