import { InputHTMLAttributes, ReactNode, default as React } from 'react';
import { TLeftOrCenter, TRegularSizes, TRightOrBottom } from '../../../types.ts';
import { PatternFormatProps } from 'react-number-format';
import { CustomTypeObject } from './type-handlers';
export type Variants = "fill" | "outline";
export type Status = "neutral" | "success" | "error";
export type Types = "text" | "email" | "password" | "tel" | "select" | "number" | "date";
export type TValidationMessage = {
validationMessage: ReactNode;
status: Status;
};
export type CustomTypes = keyof typeof CustomTypeObject;
export interface InputProps extends InputHTMLAttributes {
type?: Types;
leftIcon?: ReactNode;
rightIcon?: ReactNode;
inputSize?: TRegularSizes;
status?: Status;
hasPasswordStrengthValidation?: boolean;
validationMessages?: TValidationMessage[];
disabled?: boolean;
dropdown?: boolean;
passwordLockIcon?: ReactNode;
isDropdownOpen?: boolean;
variant?: Variants;
message?: ReactNode;
hideMessage?: boolean;
show_counter?: boolean;
textAlignment?: TLeftOrCenter;
label?: ReactNode;
value?: string | number;
triggerActionIcon?: ReactNode;
fieldMarker?: boolean;
showInputButton?: boolean;
shouldRound?: boolean;
button_position?: TRightOrBottom;
inputButton?: ReactNode;
leftPlaceholder?: string;
rightPlaceholder?: string;
addOn?: ReactNode;
addOnIcon?: ReactNode;
formatProps?: PatternFormatProps;
id?: string;
allowDecimals?: boolean;
decimals?: number;
allowSign?: boolean;
regex?: RegExp;
customType?: CustomTypes;
noStatusIcon?: boolean;
}
declare const Input: React.ForwardRefExoticComponent>;
export default Input;