import * as React from 'react'; import { WebView, WebViewProps } from 'react-native-webview'; import { StyleProp, ViewStyle } from 'react-native'; import type { CustomFont, GetLeafResponse, QuillConfig } from '../types'; import type { EditorEventHandler, EditorEventType, SelectionChangeData, EditorChangeData, TextChangeData, HtmlChangeData, DimensionsChangeData, Range } from '../constants/editor-event'; export interface EditorState { webviewContent: string | null; height?: number; } export interface EditorProps { autoSize?: boolean; style?: StyleProp; quill?: QuillConfig; customFonts?: Array; defaultFontFamily?: string; initialHtml?: string; customStyles?: string[]; import3rdParties?: 'local' | 'cdn'; containerId?: string; theme?: { background: string; color: string; placeholder: string; }; loading?: string | React.ReactNode; container?: boolean | React.ComponentType; onSelectionChange?: (data: SelectionChangeData) => void; onTextChange?: (data: TextChangeData) => void; onHtmlChange?: (data: HtmlChangeData) => void; onEditorChange?: (data: EditorChangeData) => void; onDimensionsChange?: (data: DimensionsChangeData) => void; webview?: WebViewProps; onBlur?: () => void; onFocus?: () => void; customJS?: string; customRef?: React.RefObject; } export default class QuillEditor extends React.Component { private _webview; private _handlers; private _promises; constructor(props: EditorProps); private getInitalHtml; private getKey; private postAwait; private post; private toMessage; private onMessage; blur: () => void; focus: () => void; hasFocus: () => Promise; enable: (enable?: boolean) => void; disable: () => void; update: () => void; format: (name: string, value: any) => void; deleteText: (index: number, length: number) => void; removeFormat: (index: number, length: number) => Promise; getDimensions: () => Promise; getContents: (index?: number | undefined, length?: number | undefined) => Promise; getHtml: () => Promise; getLength: () => Promise; getText: (index?: number | undefined, length?: number | undefined) => Promise; getBounds: (index: number, length?: number | undefined) => Promise<{ left: number; top: number; height: number; width: number; }>; getSelection: (focus?: boolean) => Promise; setSelection: (index: number, length?: number | undefined, source?: String | undefined) => void; insertEmbed: (index: number, type: string, value: any) => void; insertText: (index: number, text: string, formats?: Record | undefined) => void; setContents: (delta: any) => void; setText: (text: string) => void; updateContents: (delta: any) => void; getFormat: (index: number | { index: number; length: number; }, length?: number | undefined) => Promise>; getLeaf: (index: number) => Promise; formatText: (index: number, length: number, formats: Record, source?: string) => Promise; on: (event: EditorEventType, handler: EditorEventHandler) => void; off: (event: EditorEventType, handler: Function) => void; dangerouslyPasteHTML: (index: number, html: string) => void; renderWebview: (content: string, style: StyleProp, props?: WebViewProps) => JSX.Element; render(): JSX.Element; }