import { ReactElement } from 'react'; import { ReactEditor, RenderElementProps, RenderLeafProps } from 'slate-react'; import { Element, Text } from 'slate'; interface EditorDto { serverId?: string; } export interface DefaultElement extends Element, EditorDto { type: 'li' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'todo' | 'ol-li' | 'file' | 'img' | 'quote'; deep: number; children: DefaultLeaf[]; index?: number; readonly?: boolean; } export interface DefaultRenderElementProps extends RenderElementProps { element: DefaultElement; } interface DefaultLeafMark { bold?: boolean; italic?: boolean; underline?: boolean; tag?: boolean; code?: boolean; link?: boolean; strikethrough?: boolean; inlineMark?: boolean; } export declare type LeafMark = keyof DefaultLeafMark; export interface DefaultLeaf extends Text, DefaultLeafMark, EditorDto { } export interface DefaultRenderLeafProps extends RenderLeafProps { leaf: DefaultLeaf; } export declare type OnKeyDown = (e: KeyboardEvent, editor: ReactEditor, options?: any) => boolean | void; export interface OnlyEditorPlugin { renderElement?: (props: DefaultRenderElementProps, payload: { width: number; }) => ReactElement | undefined; renderLeaf?: (props: DefaultRenderLeafProps) => ReactElement | undefined; onKeydown?: OnKeyDown; } export interface PluginsWithOptions { (options: any): OnlyEditorPlugin; } export declare type Descendant = Array; export {};