export type Cleanup = () => void; export type TextareaSize = "sm" | "md" | "lg"; export type TextareaVariant = "default" | "filled" | "outlined"; export interface TextareaInputProps { id?: string; name?: string; label?: string; placeholder?: string; helperText?: string; value?: string; defaultValue?: string; disabled?: boolean; readOnly?: boolean; required?: boolean; minLength?: number; maxLength?: number; pattern?: string; validate?: (value: string) => string | null; validateOn?: "change" | "blur" | "submit"; trimOnBlur?: boolean; collapseWhitespace?: boolean; debounceMs?: number; spellcheck?: boolean; autoComplete?: "on" | "off"; rows?: number; autoGrow?: boolean; maxHeight?: number; clearable?: boolean; counter?: boolean; warnAt?: number; errorAt?: number; size?: TextareaSize; variant?: TextareaVariant; fullWidth?: boolean; className?: string; onChange?: (value: string) => void; onBlur?: (value: string) => void; onFocus?: (value: string) => void; onValidate?: (isValid: boolean, error?: string) => void; onEnter?: (value: string) => void; onEscape?: () => void; ariaLabel?: string; ariaDescribedBy?: string; invalid?: boolean; } export declare function createTextareaInput(el: HTMLElement, props?: TextareaInputProps): { destroy: Cleanup; };