import React from 'react';
export type InputSize = 'sm' | 'md' | 'lg';
export type InputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'number' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color';
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
    /**
     * Label for the input
     */
    label?: React.ReactNode;
    /**
     * Error message to display
     */
    error?: React.ReactNode;
    /**
     * Helper text to display below the input
     */
    helperText?: React.ReactNode;
    /**
     * Size of the input
     * @default 'md'
     */
    size?: InputSize;
    /**
     * Type of the input
     * @default 'text'
     */
    type?: InputType;
    /**
     * Whether the input is required
     * @default false
     */
    isRequired?: boolean;
    /**
     * Whether the input is disabled
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Whether the input is read-only
     * @default false
     */
    isReadOnly?: boolean;
    /**
     * Whether the input should take up the full width of its container
     * @default false
     */
    isFullWidth?: boolean;
    /**
     * Icon to display inside the input
     */
    icon?: React.ReactNode;
    /**
     * Position of the icon
     * @default 'left'
     */
    iconPosition?: 'left' | 'right';
    /**
     * Additional element to display inside the input
     */
    adornment?: React.ReactNode;
    /**
     * Position of the adornment
     * @default 'right'
     */
    adornmentPosition?: 'left' | 'right';
    /**
     * Additional class name for the container
     */
    containerClassName?: string;
    /**
     * Additional class name for the input element
     */
    inputClassName?: string;
    /**
     * Additional class name for the label
     */
    labelClassName?: string;
}
/**
 * Input component built with Tailwind CSS
 *
 * A flexible input component that supports various sizes, states, and decorations
 * like icons and adornments.
 *
 * @example
 * // Basic usage
 * <TailwindInput label="Email" name="email" type="email" />
 *
 * @example
 * // With validation error
 * <TailwindInput
 *   label="Username"
 *   name="username"
 *   error="Username is already taken"
 * />
 *
 * @example
 * // With icon
 * <TailwindInput
 *   label="Search"
 *   name="search"
 *   type="search"
 *   icon={<SearchIcon />}
 * />
 */
export declare const TailwindInput: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
export default TailwindInput;
//# sourceMappingURL=TailwindInput.d.ts.map