import { HtmlEditService } from '../../../services/html/htmlEditService'; import { ContentEditableElement } from '../contentEditableEditor'; export interface TextNodeAndCursorPosition { node: Text; cursorPosition?: number; } export interface ContentEditableEditorPlugin { handleDataTransfer?: (dataTransfer: DataTransfer, editService: HtmlEditService, element: ContentEditableElement) => boolean; populateDataTransfer?: (dataTransfer: DataTransfer, element: ContentEditableElement) => boolean; preProcessInsertedHtml?: (dirtyHtml: string, document?: Document) => string; postProcessInsertedHtml?: (cleanHtml: string) => string; processText?: (container: Element, textNodeAndCursorPositions: Iterable) => void; decorateText?: (text: string) => ReadonlyArray; processTree?: (container: Element) => void; } export interface ContentEditableEditorDecoration { index: number; length: number; className: string; shouldDisableSpellcheck?: boolean; }