import { default as React, PropsWithChildren } from 'react';
export type EditableContentProps = {
    /**
     * Visibility flag used to control edit mode from outside.
     *
     * @default undefined
     */
    show?: boolean;
    /**
     * Callback function triggered when the save button is clicked.
     *
     * @param value
     * @returns
     */
    onSave?: (value: string) => void;
    /**
     * Callback function triggered when the cancel button is clicked.
     */
    onCancel?: VoidFunction;
    /**
     * Callback function triggered when the input gets focused.
     */
    onFocus?: VoidFunction;
    /**
     * Callback function triggered when input looses it's focus.
     */
    onBlur?: VoidFunction;
    /**
     * Callback function triggered when entering the edit mode.
     */
    onEditMode?: VoidFunction;
    /**
     * Validation function to intercept saving and prevent save on error.
     */
    onSaveValidation?: (value: string) => boolean;
    /**
     * Controls the error message visibility from outside. This is useful when using a custom input
     * where the validation happens outside of this component.
     * @default true
     */
    isValid?: boolean;
    /**
     * The error message that shall be shown to the user in case the validation fails.
     */
    errorMessage?: React.ReactNode;
    /**
     * Use this prop to define a custom editor input component like Select, NumberInput, TimePicker or DatePicker.
     * Handling input state changes of a custom editor need to be handled outside of this component.
     * By default the EditableContent uses a built-in textarea to allow resizing for larger text.
     */
    customEditor?: React.ReactNode;
    /**
     * Offset value to control the vertical position for the editor in case the text element has
     * borders, spacings different text sizes.
     *
     * @default 0
     */
    editorOffsetTop?: number;
    /**
     * Offset value to control the horizontal position for the editor in case the text element has
     * borders, spacings different text sizes.
     *
     * @default 0
     */
    editorOffsetLeft?: number;
    /**
     * Defines the input and button size. Use 'lg' for headlines.
     *
     * @default 'md'
     */
    size?: 'md' | 'lg';
    /**
     * Defines if the internal textarea is allowed to resize vertically.
     * This comes in handy for larger text and when using multiple input rows.
     *
     * @default false
     */
    allowResize?: boolean;
    /**
     * Defines the number of rows to use by the internal textarea component.
     * When a single line is used, the input is saved on "enter" key.
     *
     * @default 1
     */
    inputRows?: number;
    /**
     * Additional classes to be set on the editor input itself.
     */
    inputClassName?: string;
    /**
     * Additional classes to be set on the editor wrapper element.
     */
    editorClassName?: string;
    /**
     * Additional classes to be set on the text wrapper element.
     */
    className?: string;
};
declare const EditableContent: (props: PropsWithChildren<EditableContentProps>) => import("react/jsx-runtime").JSX.Element;
export default EditableContent;
