import React, { Component } from 'react';
import { Range, UnprivilegedEditor } from 'react-quill/lib';
import 'react-quill/dist/quill.snow.css';
import { DeltaOperation, DeltaStatic, Sources, StringMap } from './quill';
import { RichTextToolbarType } from './enum';
import { RichTextToolbarHook } from './RichText';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
export interface BaseEditorProps {
    dataSet?: DataSet;
    record?: Record;
    value: DeltaStatic;
    saveRef?: Function;
    onChange?: Function;
    bounds?: string | HTMLElement;
    children?: React.ReactElement<any>;
    className?: string;
    defaultValue?: string | DeltaStatic;
    formats?: string[];
    id?: string;
    modules?: StringMap;
    onChangeSelection?(selection: Range, source: Sources, editor: UnprivilegedEditor): void;
    onFocus?(selection: Range, source: Sources, editor: UnprivilegedEditor): void;
    onBlur?(previousSelection: Range, source: Sources, editor: UnprivilegedEditor): void;
    onKeyDown?: React.EventHandler<any>;
    onKeyPress?: React.EventHandler<any>;
    onKeyUp?: React.EventHandler<any>;
    placeholder?: string;
    preserveWhitespace?: boolean;
    readOnly?: boolean;
    scrollingContainer?: string | HTMLElement;
    style?: React.CSSProperties;
    tabIndex?: number;
    theme?: string;
    autoFocus?: boolean;
    mode?: 'preview' | 'editor';
    toolbarId?: string;
    toolbar?: RichTextToolbarType | RichTextToolbarHook;
}
export default class BaseEditor extends Component<BaseEditorProps> {
    state: {
        imgOpen: boolean;
        images: never[];
        srcIndex: number;
    };
    editor: any;
    deltaOps?: DeltaOperation[];
    setValue(value: any): void;
    handleRichTextChange(_: any, __: any, ___: any, editor: UnprivilegedEditor): void;
    componentDidUpdate(): void;
    getOtherProps(): Partial<Readonly<BaseEditorProps> & Readonly<{
        children?: React.ReactNode;
    }>>;
    handleOpenLightBox: (e: any) => void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    blur(): void;
    renderContent(): JSX.Element | undefined;
    render(): JSX.Element;
    saveRef: (name: any) => (ref: any) => void;
}
