import React from 'react'; /** * Visual variants for the TextInput component */ type TextInputVariant = 'default' | 'message'; /** * Size options for the TextInput component */ type TextInputSize = 'sm' | 'md' | 'lg'; /** * Props for the TextInput component */ export interface TextInputProps extends Omit & React.TextareaHTMLAttributes, 'size' | 'prefix' | 'suffix'> { /** * Visual variant of the input field * - 'default': Standard form input with rectangular borders * - 'message': Rounded chat message input optimized for messaging interfaces * @default 'default' */ variant?: TextInputVariant; /** * Size of the input field * - 'sm': Small padding and text * - 'md': Medium padding and text (default) * - 'lg': Large padding and text * @default 'md' */ size?: TextInputSize; /** * Error state styling * When true, applies error styling (red borders, etc.) */ error?: boolean; /** * Success state styling * When true, applies success styling (green borders, etc.) */ success?: boolean; /** * Additional CSS classes to apply to the input */ className?: string; /** * Prefix icon or element to display before the input text */ prefix?: React.ReactNode; /** * Suffix icon or element to display after the input text */ suffix?: React.ReactNode; /** * Whether to use a multi-line textarea instead of a single-line input * @default false */ multiline?: boolean; /** * Maximum height for the textarea when multiline is true * After this height is reached, the textarea becomes scrollable * @default '150px' */ maxHeight?: string; } /** * TextInput component provides a customizable input field with multiple variants and states * * Features: * - Multiple visual variants (default form input, message input) * - Size variations (sm, md, lg) * - Error and success states with appropriate styling * - Dark mode support * - Accessibility: Basic ARIA attributes for error states * - Forward ref support for form libraries * - Prefix/suffix support for icons and buttons * - Support for multi-line input with auto-expansion * - Auto-scrolling to bottom when typing in multi-line mode * * @example * // Basic usage * * * @example * // Message variant for chat interfaces * * * @example * // Multi-line input for longer messages * * * @example * // With error state * * * @example * // With prefix and suffix * } * suffix={} * placeholder="Search..." * /> */ export declare const TextInput: React.ForwardRefExoticComponent>; export {};