import { default as React } from 'react';
import { default as ReactQuill } from 'react-quill-new';
import { TUseValues } from '../../../AHooks/useValues';
import { IABaseProps } from '../../ABase/ABase';
import { IAWrapProps } from '../../AWrap/AWrap';
import { IClipboardOptions } from '../modules/Copy';
export interface IAEditorRef extends ReactQuill {
    copyContent: (options?: IClipboardOptions) => void;
}
export type TAEditorType = 'Primary' | 'ReadOnly' | 'Raw' | 'Error';
export type TAEditorToolbarType = 'Default' | 'Title';
export type TAEditorSize = 'Med' | 'Large';
export type TAEditorLimitPosition = 'Top' | 'Bottom' | 'None';
export type TValueSyncMode = 'immediate' | 'deferred';
export interface IAEditorProps extends IABaseProps, IAWrapProps {
    autoFocus?: boolean;
    contentHeight?: number;
    deferredSyncMs?: number;
    editorClassName?: string;
    editorProps?: ReactQuill.ReactQuillProps;
    editorRef?: React.RefObject<IAEditorRef | null> | ((instance: IAEditorRef | null) => void);
    editorStyle?: React.CSSProperties;
    limitPosition?: TAEditorLimitPosition;
    maxHeight?: number;
    maxLength?: number;
    minHeight?: number;
    noImageResize?: boolean;
    placeholder?: string;
    readOnly?: boolean;
    size?: number;
    tabIndex?: number;
    toolbarSize?: TAEditorSize;
    toolbarType?: TAEditorToolbarType;
    type?: TAEditorType;
    useError?: TUseValues<boolean>;
    useValue?: TUseValues<string>;
    valueSyncMode?: TValueSyncMode;
}
