import { AnyExtension } from '@tiptap/core';
import { Colors } from '../../types';
/**
 * Props for the `RichTextarea` component.
 *
 * All string values are **HTML strings** produced by TipTap's ProseMirror document model.
 * Use `onChangeValue` to track every keystroke and `onChangeEnd` to act on the final value
 * (e.g. on blur before submitting a form).
 */
export interface RichTextareaProps {
    /**
     * Controlled HTML content.
     * When provided, the editor keeps its content in sync with this value.
     * On change the new value is emitted via `onChangeValue`.
     */
    value?: string;
    /**
     * Uncontrolled initial HTML content.
     * Only read once on mount; subsequent external changes are ignored.
     */
    defaultValue?: string;
    /**
     * Fired on every editor update (keystroke, formatting, etc.).
     * Receives the current document as an **HTML string**.
     */
    onChangeValue?: (html: string) => void;
    /**
     * Fired when the editor loses focus.
     * Useful for form field validation or auto-save triggers.
     * Receives the current document as an **HTML string**.
     */
    onChangeEnd?: (html: string) => void;
    /** Fired when the editor gains focus. */
    onFocus?: () => void;
    /** Visible floating label rendered inside the field border. */
    label: string;
    /** Hint text rendered below the field. Hidden when `error` is set. */
    helperText?: string;
    /**
     * Error message rendered below the field.
     * When set, `helperText` is hidden and the field border turns red.
     */
    error?: string;
    /** Controls the accent color of the label and focus ring. @default "primary" */
    color?: Colors;
    /** When true, the editor is not editable and appears visually muted. @default false */
    disabled?: boolean;
    placeholder?: string;
    className?: string;
    labelClassName?: string;
    /**
     * Minimum height of the editable area as a CSS value (e.g. `"6rem"`, `"120px"`).
     * @default "6rem"
     */
    minHeight?: string;
    /**
     * Maximum height of the editable area as a CSS value.
     * Content scrolls vertically when this limit is reached.
     */
    maxHeight?: string;
    required?: boolean;
    /**
     * Additional TipTap extensions merged into the editor alongside StarterKit.
     *
     * Use this to inject `Collaboration`, `CollaborationCursor`, custom marks, etc.
     * Extensions are applied **after** StarterKit, so they can override defaults.
     *
     * @example
     * ```tsx
     * import { Collaboration } from "@tiptap/extension-collaboration";
     * <RichTextarea extensions={[Collaboration.configure({ document: yjsDoc })]} disableHistory />
     * ```
     */
    extensions?: AnyExtension[];
    /**
     * Disable StarterKit's built-in History (undo/redo) extension.
     *
     * **Must be `true`** when using `@tiptap/extension-collaboration` because Y.js
     * manages undo/redo through its own `UndoManager`. Having both active causes conflicts.
     *
     * @default false
     */
    disableHistory?: boolean;
}
export declare const RichTextarea: ({ value, defaultValue, onChangeValue, onChangeEnd, onFocus, label, helperText, error, color, disabled, className, labelClassName, minHeight, maxHeight, required, extensions: extraExtensions, disableHistory, }: RichTextareaProps) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=RichTextarea.d.ts.map