import React from "react";
import { ContentBlock, DraftHandleValue, EditorState, RawDraftContentState, RawDraftEntity, SelectionState } from "draft-js";
import Editor, { EditorPlugin } from "@draft-js-plugins/editor";
import "draft-js/dist/Draft.css";
export declare const AlignmentTool: React.ComponentType<{}>;
export declare const plugins: EditorPlugin[];
interface ToolbarSettingValue {
    view: "editor" | "click to edit";
    showToolbar: boolean;
    toolbar: "on edit" | "top" | "bottom" | "collapsed";
}
export interface RichTextEditorProps {
    value?: string | RawDraftContentState;
    plugins?: EditorPlugin[];
    placeholder?: string;
    tabCommand?: () => void;
    updateCallback?: (value: string) => void;
    readOnly?: boolean;
    hideTools?: boolean;
    hideBorder?: boolean;
    exportFileName?: string;
}
export interface RichTextEditorState {
    editorState: EditorState;
    styleMap: {
        [key: string]: object;
    };
    showSettingsDialog: boolean;
    toolbarSettings: ToolbarSettingValue;
    hideTools?: boolean;
}
export declare class RichTextEditor<T extends RichTextEditorProps = RichTextEditorProps, S extends RichTextEditorState = RichTextEditorState> extends React.Component<T, S> {
    editor: Editor | null;
    plugins: EditorPlugin[];
    constructor(props: T);
    componentDidMount(): void;
    getEntityType(_nodeName: string, _element: HTMLElement, _self: any): RawDraftEntity | undefined;
    getCurrentHTML: () => string;
    onChange: (editorState: EditorState) => void;
    undoAction: () => void;
    redoAction: () => void;
    toggleBlockType: (style: string) => void;
    toggleInlineStyle: (style: string) => void;
    handleKeyCommand: (command: string) => DraftHandleValue;
    getBlockStyle: (block: ContentBlock) => "" | "RichEditor-blockquote" | "RichEditor-block-align-left" | "RichEditor-block-align-right" | "RichEditor-block-align-center";
    toggleColor: (toggledColor: string, selection: SelectionState) => void;
    focus: () => void;
    exportPDF: () => void;
    renderToolbar(): JSX.Element | null;
    render(): JSX.Element;
}
interface IImageUpload {
    editorState: EditorState;
    onChange: (editorState: EditorState) => void;
}
export declare const ImageUpload: ({ editorState, onChange }: IImageUpload) => JSX.Element;
interface IAnchorButton {
    editorState: EditorState;
    onChange: (editState: EditorState) => void;
}
export declare const AnchorButton: ({ editorState, onChange }: IAnchorButton) => JSX.Element;
export declare const ToolButton: (props: {
    onToggle?: ((event: any) => void) | undefined;
    value?: string | undefined;
    active: boolean;
    label?: string | undefined;
    children?: JSX.Element | JSX.Element[] | undefined;
    className?: string | undefined;
}) => JSX.Element;
export declare const BLOCK_TYPES: {
    icon: JSX.Element;
    style: string;
}[];
export declare const ALIGN_STYLES: {
    icon: JSX.Element;
    style: string;
}[];
export declare const INLINE_STYLES: {
    icon: JSX.Element;
    style: string;
}[];
export declare const RichTextEditorRender: import("styled-components").StyledComponent<"div", any, {
    hideBorder?: boolean | undefined;
}, never>;
export declare const RichTextEditorToolsRender: import("styled-components").StyledComponent<"div", any, {
    readOnly?: boolean | undefined;
}, never>;
interface IToolbarSettings {
    onChange: (value: ToolbarSettingValue) => void;
    value: ToolbarSettingValue;
}
export declare const ToolbarSettings: ({ onChange, value }: IToolbarSettings) => JSX.Element;
export declare const ToolbarSettingsRender: import("styled-components").StyledComponent<"div", any, {}, never>;
interface IRadioButton {
    value: string;
    onSelect: (value: string) => void;
    selected: string;
}
export declare const RadioButton: ({ value, onSelect, selected }: IRadioButton) => JSX.Element;
export {};
