import React from "react";
import Quill from "quill";
import { VoidFunc, VoidFuncNoParam } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
/**
 * Props for {@link RichText}
 */
export interface RichTextProps {
    /** Current value of the editor (HTML string) */
    value: string;
    /** Event handler called when the editor content changes
     * @param value The new value as an HTML string */
    onChange: VoidFunc<string>;
    /** Placeholder text to display when the editor is empty */
    placeholder?: string;
    /** If `true`, the editor will be read-only */
    readOnly?: boolean;
    /** Additional CSS classes for the editor container */
    className?: string;
    /** Debounce time in milliseconds for updating the value
     * @default 300 */
    debounceTime?: number;
    /** Event handler called when the editor loses focus */
    onBlur?: VoidFuncNoParam;
    /** Event handler called when the editor gains focus */
    onFocus?: VoidFuncNoParam;
    /** Event handler called when the Quill editor instance is created
     * @param quill The Quill editor instance */
    onEditorCreated?: VoidFunc<Quill>;
    /** Default value for an uncontrolled component */
    defaultValue?: string;
    /** Text for the floating label */
    label?: string;
    /** If `true`, the component will appear invalid */
    invalid?: boolean;
    /** Unique identifier for the editor */
    id?: string;
}
/**
 * Rich text editor component with formatting capabilities and floating label
 *
 *  Based on [Quill](https:/quilljs.com/docs/quickstart)
 *
 * @param props - {@link RichTextProps}
 *
 * @example
 * ```tsx
 * function MyComponent() {
 *     const { error } = useFormField();
 *     const [value, setValue] = useState("");
 *
 *     return (
 *         <RichText
 *             value={value}
 *             onChange={setValue}
 *             placeholder="Start typing..."
 *             debounceTime={500}
 *             defaultValue=""
 *             label="Description"
 *             invalid={!!error}
 *             onBlur={() => console.log("Field blurred")}
 *         />
 *     );
 * }
 * ```
 */
export declare function RichText({ value, onChange, placeholder, readOnly, className, debounceTime, onBlur, onFocus, onEditorCreated, defaultValue, label, invalid, id, }: RichTextProps): React.JSX.Element;
