import type { EditorPlugin, IEditor, PluginEvent } from 'roosterjs-content-model-types'; /** * Options for DragAndDrop plugin */ export interface DragAndDropOptions { /** * Forbidden elements that cannot be dropped in the editor * @default ['iframe'] */ forbiddenElements?: string[]; } /** * DragAndDrop plugin, handles ContentChanged event when change source is "Drop" * to sanitize dropped content, similar to how PastePlugin sanitizes pasted content. */ export declare class DragAndDropPlugin implements EditorPlugin { private editor; private forbiddenElements; private isInternalDragging; private disposer; /** * Construct a new instance of DragAndDropPlugin */ constructor(options?: DragAndDropOptions); /** * Get name of this plugin */ getName(): string; /** * The first method that editor will call to a plugin when editor is initializing. * It will pass in the editor instance, plugin should take this chance to save the * editor reference so that it can call to any editor method or format API later. * @param editor The editor object */ initialize(editor: IEditor): void; /** * The last method that editor will call to a plugin before it is disposed. * Plugin can take this chance to clear the reference to editor. After this method is * called, plugin should not call to any editor method since it will result in error. */ dispose(): void; /** * Core method for a plugin. Once an event happens in editor, editor will call this * method of each plugin to handle the event as long as the event is not handled * exclusively by another plugin. * @param event The event to handle: */ onPluginEvent(event: PluginEvent): void; }