import { FC } from 'react';
import { FormFieldValidity } from '../form-field/validity-shape';
import { ElementProps, LeafProps } from './text-editor-content';
import { TOOLBAR_POSITION, TextEditorTool, TextEditorValue, TextEditorToolbarLabels, INLINE_EDITOR_TYPES } from './text-editor-constants';
import './text-editor.less';
export type TextEditorComponentProps = {
    name: string;
    type?: INLINE_EDITOR_TYPES;
    value?: TextEditorValue[] | null;
    initialValue?: TextEditorValue[] | null;
    label?: string;
    header?: {
        title?: string;
        titlePlaceholder?: string;
        isEditable?: boolean;
        maxLength?: number;
        onChangeTitle?: (value: string) => void;
        onDelete?: () => void;
        hasDeleteButton?: boolean;
        inputAriaLabel?: string;
    };
    toolbarLabels: TextEditorToolbarLabels;
    toolbarPosition: TOOLBAR_POSITION;
    validity?: FormFieldValidity | null;
    placeholder?: string;
    autoFocus?: boolean;
    readOnly?: boolean;
    height?: number;
    contentTestId?: string;
    contentAriaLabel?: string;
    enabledTools?: TextEditorTool[];
    elementRender?: FC<ElementProps>;
    leafRender?: FC<LeafProps>;
    onChange?: (newValue: TextEditorValue[]) => void;
    onCancel?: () => void;
    onSave?: () => void;
    onFocus?: () => void;
    onBlur?: () => void;
    deleteEditorContentButtonAriaLabel: string;
    id: string;
    maxLength?: number;
    getCharactersCounterString?: (count: number) => string;
};
export type TextEditorProps = {
    name: string;
    type?: INLINE_EDITOR_TYPES;
    value?: TextEditorValue[] | null;
    initialValue?: TextEditorValue[] | null;
    label?: string;
    /** Optional Header title and/or delete action */
    header?: {
        title?: string;
        titlePlaceholder?: string;
        isEditable?: boolean;
        maxLength?: number;
        onChangeTitle?: (titleValue: string) => void;
        onDelete?: () => void;
        hasDeleteButton?: boolean;
        inputAriaLabel?: string;
    };
    /** To place the toolbar either at TOP or BOTTOM */
    toolbarPosition?: TOOLBAR_POSITION;
    onCancel?: () => void;
    onSave?: () => void;
    validity?: FormFieldValidity | null;
    placeholder?: string;
    autoFocus?: boolean;
    readOnly?: boolean;
    height?: number;
    contentTestId?: string;
    contentAriaLabel?: string;
    enabledTools?: TextEditorTool[];
    elementRender?: FC<ElementProps>;
    leafRender?: FC<LeafProps>;
    onChange?: (newValue: TextEditorValue[]) => void;
    testId?: string;
    className?: string;
    tooltipTextBold?: string;
    tooltipTextItalic?: string;
    tooltipTextUnderline?: string;
    tooltipTextSuperscript?: string;
    tooltipTextLink?: string;
    tooltipTextRemoveLink?: string;
    tooltipTextBulletedList?: string;
    tooltipTextNumberedList?: string;
    tooltipTextClearFormatting?: string;
    tooltipTextCode?: string;
    urlIsRequiredMessage?: string;
    enterValidUrlMessage?: string;
    saveButtonText?: string;
    headingLargeText?: string;
    headingMediumText?: string;
    headingSmallText?: string;
    regularText?: string;
    validationErrorWarningMessage?: string;
    linkInputLabelText?: string;
    deleteEditorContentButtonAriaLabel: string;
    id?: string;
    maxLength?: number;
    getCharactersCounterString?: (count: number) => string;
};
/**
 * @midnight-gray-supported
 * @alpine-light-supported
 * */
export default function TextEditor({ name, header, type, value, initialValue, validity, label, placeholder, autoFocus, readOnly, testId, contentTestId, contentAriaLabel, className, height, enabledTools, toolbarPosition, elementRender, leafRender, onChange, onCancel, onSave, tooltipTextBold, tooltipTextItalic, tooltipTextUnderline, tooltipTextSuperscript, tooltipTextLink, tooltipTextRemoveLink, tooltipTextBulletedList, tooltipTextNumberedList, tooltipTextClearFormatting, tooltipTextCode, urlIsRequiredMessage, enterValidUrlMessage, saveButtonText, headingLargeText, headingMediumText, headingSmallText, regularText, validationErrorWarningMessage, linkInputLabelText, deleteEditorContentButtonAriaLabel, id, maxLength, getCharactersCounterString, }: TextEditorProps): import("react/jsx-runtime").JSX.Element;
