/** * 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 {LexicalCommand, LexicalEditor, LexicalNode} from 'lexical'; import {MenuOption} from '@lexical/react/LexicalMenuOption'; export type EmbedMatchResult = { url: string, id: string, data?: TEmbedMatchResult, }; export interface EmbedConfig< TEmbedMatchResultData = unknown, TEmbedMatchResult = EmbedMatchResult, > { type: string; parseUrl: ( text: string, ) => Promise | TEmbedMatchResult | null; insertNode: (editor: LexicalEditor, result: TEmbedMatchResult) => void; } declare export var URL_MATCHER: RegExp; declare export var INSERT_EMBED_COMMAND: LexicalCommand['type']>; declare export class AutoEmbedOption extends MenuOption { onSelect: (targetNode: LexicalNode | null) => void; constructor( title: string, options: {onSelect: (targetNode: LexicalNode | null) => void}, ): void; }