import React from "react";
import { FieldLabel } from "src/primitives/Field";
import { type IconLike } from "src/utils/withIconSize";
type InputSize = "small" | "medium" | "large";
export interface InputProps extends Omit<React.ComponentProps<"input">, "size" | "prefix" | "value"> {
    /** Controlled value. */
    value?: string | number;
    /** Size of the input. */
    size?: InputSize;
    /** Input type. */
    type?: string;
    /** Label displayed above the input. */
    label?: string;
    /** Error message displayed below the input. */
    error?: string;
    /** Help text displayed below the input. Accepts string or ReactNode. */
    helpText?: React.ReactNode;
    /** Content rendered before the input. Accepts an element, a component
     * reference (e.g. `Search` from lucide-react), or any other React node. */
    prefix?: IconLike;
    /** Content rendered after the input. Accepts an element, a component
     * reference (e.g. `Search` from lucide-react), or any other React node. */
    suffix?: IconLike;
    /** Removes borders from the input. */
    nakedInput?: boolean;
    /** HTML size attribute for the input element. */
    contentSize?: number;
    /** Maximum character limit. Counter visible at 85%. */
    maxLength?: number;
    /** Allow typing past maxLength, show error styling on count. */
    unlimitedChars?: boolean;
    /** Regex to reject matching characters from input. */
    rejectCharsRegex?: RegExp;
    /** Prevent trimming whitespace on blur. */
    disableTrimOnBlur?: boolean;
    /** Decimal places for number formatting. -1 to disable. */
    precision?: number;
    /** Props forwarded to the Label element. */
    labelProps?: React.ComponentProps<typeof FieldLabel>;
    /** Additional class name for the outermost wrapper. */
    className?: string;
}
declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
export { Input };
