import * as __VLS_VINE from 'vue-vine/internals'; import type { CommandListenerPriority, LexicalCommand, LexicalEditor, LexicalNode } from 'lexical'; import type { MenuRenderProps } from './shared/LexicalMenu.vine'; import { MenuOption } from './shared/LexicalMenu.vine'; export interface EmbedMatchResult { url: string; id: string; data?: TEmbedMatchResult; } export interface EmbedConfig> { type: string; parseUrl: (text: string) => Promise | TEmbedMatchResult | null; insertNode: (editor: LexicalEditor, result: TEmbedMatchResult) => void; } export declare const URL_MATCHER: RegExp; export declare const INSERT_EMBED_COMMAND: LexicalCommand; export declare class AutoEmbedOption extends MenuOption { title: string; onSelect: (targetNode: LexicalNode | null) => void; constructor(title: string, options: { onSelect: (targetNode: LexicalNode | null) => void; }); } interface LexicalAutoEmbedPluginProps { embedConfigs: TEmbedConfig[]; getMenuOptions: (activeEmbedConfig: TEmbedConfig, embedFn: () => void, dismissFn: () => void) => AutoEmbedOption[]; menuCommandPriority?: CommandListenerPriority; } type __VLS_VINE_LexicalAutoEmbedPlugin_emits__ = __VLS_NormalizeEmits<__VLS_VINE.VueDefineEmits<{ openEmbedModalForConfig: [embedConfig: TEmbedConfig]; }>>; export declare function LexicalAutoEmbedPlugin(props: __VLS_VINE.VineComponentCommonProps & LexicalAutoEmbedPluginProps & { onOpenEmbedModalForConfig: __VLS_VINE_LexicalAutoEmbedPlugin_emits__['openEmbedModalForConfig']; }, context: { slots: { default: (props: MenuRenderProps) => any; }; }): __VLS_VINE.VueVineComponent; export {};