import * as React from 'react';
import { type FieldProps } from '@/components/atoms/forms/_shared';
import { type InputState } from '@/components/atoms/forms/Input';
/** Visual state of the textarea (alias for InputState) */
export type TextareaState = InputState;
/**
 * Textarea renders a textarea control. Pass field props (label, error,
 * description, etc.) to automatically wrap in a Field. Without field props,
 * renders a bare textarea with zero overhead.
 *
 * @example
 * ```tsx
 * // Bare textarea
 * <Textarea placeholder="Enter message" />
 *
 * // With field props — auto-wraps in Field
 * <Textarea label="Message" error={errors.message} placeholder="Enter message" />
 *
 * // With icons
 * <Textarea startIcon={<MessageIcon />} placeholder="Message..." />
 * ```
 */
interface TextareaControlProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
    /** Visual state of the textarea (default, success, destructive) */
    state?: TextareaState;
    /** Icon displayed at the start (inline-start) of the textarea - respects RTL */
    startIcon?: React.ReactNode;
    /** Icon displayed at the end (inline-end) of the textarea - respects RTL */
    endIcon?: React.ReactNode;
    /** Whether to show an outline/border variant */
    hasOutline?: boolean;
}
export interface TextareaProps extends TextareaControlProps, FieldProps {
}
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
export { Textarea };
