import React from 'react';
import { IAllProps } from '@tinymce/tinymce-react';
import 'tinymce/tinymce';
import 'tinymce/models/dom/model';
import 'tinymce/themes/silver';
import 'tinymce/icons/default';
import 'tinymce/skins/ui/oxide/skin.min.css';
import 'tinymce/plugins/advlist';
import 'tinymce/plugins/anchor';
import 'tinymce/plugins/autolink';
import 'tinymce/plugins/code';
import 'tinymce/plugins/emoticons';
import 'tinymce/plugins/image';
import 'tinymce/plugins/link';
import 'tinymce/plugins/lists';
import 'tinymce/plugins/searchreplace';
import 'tinymce/plugins/table';
import 'tinymce/plugins/wordcount';
import 'tinymce/plugins/emoticons/js/emojis';
import { CodeEditorPopupProps } from './CodeEditorPopup';
type CustomToolbarGroup = {
    icon: string;
    tooltip: string;
    items: string;
};
type CustomToolbarGroups = {
    [key: string]: CustomToolbarGroup;
};
export declare const textEditorVariants: readonly ["normal", "simple", "reduced"];
type TextEditorVariant = (typeof textEditorVariants)[number];
export type TextEditorProps = Omit<IAllProps, 'value' | 'onEditorChange' | 'onChange' | 'onDirty'> & Pick<CodeEditorPopupProps, 'linterFunction'> & {
    /**
     * This bool turn on/off the top menuBar on the textEditor
     * @default false
     */
    menuBar?: boolean;
    /**
     * This bool set dirty as false
     * @default false
     */
    resetDirty?: boolean;
    /**
     * This property allows you to change the editor model between 3
     * options from more complete to less complete.
     * @default 'normal'
     */
    variant?: TextEditorVariant;
    /**
     *  Custom component's height
     * @default undefined
     */
    height?: string;
    /**
     *  This is a boolean which allows you to turn on/off the full height of the editor.
     *  If set to true, the height property will be ignored.
     * @default false
     */
    fullHeight?: boolean;
    /**
     *  This is an object which contains custom toolbar groups defined by the user
     * @default {}
     */
    customToolbarGroups?: CustomToolbarGroups;
    /**
     * Variable to set value when changes from outside component
     */
    newValue?: string;
    /**
     * If true, code editor selector will be hidden. @default false
     */
    hideCodeEditor?: boolean;
    /**
     * Index of the code editor button in the toolbar.
     * If not set, it will be added at the end of the toolbar.
     * If customToolbarGroups is not set or is set but 'insert' group is not declared, maximum value is 6.
     */
    codeEditorButtonIndex?: number;
    /**
     * Text to display as subtitle when code editor is opened.
     */
    codeEditorSubtitle?: string;
    /**
     * Message to show in codeEditorPopup, below the code.
     */
    codeEditorMessageNode?: React.ReactNode;
    /**
     * New Tiny behavior to change code editor as readonly.
     */
    isCodeEditorReadonly?: boolean;
    /**
     * force to close code editor popup
     */
    forceCloseCodeEditor?: boolean;
    /**
     * Function called when code editor has been forcibly closed
     */
    onForceCloseCodeEditor?: () => void;
    /**
     * Function called when a new value is setter
     */
    onNewValueSetter?: () => void;
    /**
     *  onChange method called when content changes.
     */
    onChange: (value: string) => void;
    /**
     *  Set dirty value when dirty state changes.
     */
    onDirty?: (value: boolean) => void;
    /**
     *  Method called when dirty is reset.
     */
    onResetDirty?: () => void;
    /**
     *  Method called when copy to clipboard button is pressed in source code.
     */
    onCopyToClipboard?: (html: string) => void;
};
/**
 * This is a rich-text editor that allows users to create formatted content within a user-friendly interface
 * The output created is in HTML5 and can include lists, tables, and other useful elements, depending on your configuration.
 * The functionality of the editor can be extended through plugins and customizations, or limited to suit your use-case.
 */
declare const TextEditor: ({ id, disabled, customToolbarGroups, resetDirty, initialValue, inline, height, fullHeight, toolbar, menuBar, variant, newValue, hideCodeEditor, codeEditorButtonIndex, codeEditorSubtitle, codeEditorMessageNode, isCodeEditorReadonly, forceCloseCodeEditor, onForceCloseCodeEditor, onNewValueSetter, onChange, onDirty, onResetDirty, onCopyToClipboard, linterFunction, init, ...rest }: TextEditorProps) => import("react/jsx-runtime").JSX.Element;
export default TextEditor;
