import React from 'react';

interface InputProps {
    label?: string;
    placeholder?: string;
    type?: string;
    defaultValue?: string;
    value?: string;
    name?: string;
    id?: string;
    disabled?: boolean;
    required?: boolean;
    error?: string;
    success?: boolean;
    icon?: React.ReactNode;
    iconPosition?: "left" | "right";
    variant?: "default" | "primary" | "secondary" | "success" | "warning" | "danger";
    size?: "sm" | "md" | "lg";
    radius?: "none" | "sm" | "md" | "full";
    fullWidth?: boolean;
    className?: string;
    inputClassName?: string;
    labelClassName?: string;
    onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
    onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
    onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
    pattern?: string;
    validate?: string | ((value: string) => string | undefined);
    successMessage?: string;
    "aria-label"?: string;
    "aria-describedby"?: string;
    description?: string;
    errorId?: string;
    descriptionId?: string;
    hideLabel?: boolean;
    autoComplete?: string;
    readOnly?: boolean;
}
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;

export { Input as default };
export type { InputProps };
