import type { Decorate, Extension, OnDOMBeforeInput, OnKeyDown, RenderElement, RenderLeaf } from '@prezly/slate-commons'; import type { SlateEditor } from '@udecode/plate-common'; import React from 'react'; export interface Props { className?: string; decorate?: Decorate; editor: SlateEditor; /** * Each extension fields will be combined by role. * * To render `Editable`: * - decorate * - renderElement * - renderLeaf * - onDOMBeforeInput * - onKeyDown.ts */ extensions?: Extension[]; onCut?: (event: React.ClipboardEvent) => void; onDOMBeforeInput?: OnDOMBeforeInput[]; onDOMBeforeInputDeps?: any[]; /** * Handlers when we press a key */ onKeyDown?: OnKeyDown[]; onKeyDownDeps?: any[]; placeholder?: string; readOnly?: boolean; /** * To customize the rendering of each element components. * Element properties are for contiguous, semantic elements in the document. */ renderElement?: RenderElement[]; renderElementDeps?: any[]; /** * To customize the rendering of each leaf. * When text-level formatting is rendered, the characters are grouped into * "leaves" of text that each contain the same formatting applied to them. * Text properties are for non-contiguous, character-level formatting. */ renderLeaf?: RenderLeaf[]; renderLeafDeps?: any[]; role?: string; style?: React.CSSProperties; } export declare function EditableWithExtensions({ className, decorate, editor, extensions, onDOMBeforeInput: onDOMBeforeInputList, onDOMBeforeInputDeps, onKeyDown: onKeyDownList, onKeyDownDeps, renderElement: renderElementList, renderElementDeps, renderLeaf: renderLeafList, renderLeafDeps, ...props }: Props): React.JSX.Element;