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;