import * as React from "react"; export interface CommonInputProps { placeholder?: string; onChange: (text: string) => void; value?: string | number; className?: string; disabled?: boolean; errorMessage?: string; fixLabelAtTop?: boolean; inputClassName?: string; highlightClassName?: string; loadingClassName?: string; inputWrapperClassName?: string; loading?: boolean; message?: string; onClick?: React.MouseEventHandler; readOnly?: boolean; required?: boolean; successMessage?: string; leftElement?: () => React.ReactNode; rightElement?: () => React.ReactNode; } export type InputType = | "text" | "date" | "password" | "number" | "email" | "tel"; export interface SimpleInputProps extends CommonInputProps { inputProps?: React.InputHTMLAttributes & React.RefAttributes; textArea?: false; type?: InputType; } export interface TextAreaInputProps extends CommonInputProps { inputProps?: React.InputHTMLAttributes & React.RefAttributes; textArea: true; type?: undefined; } export type InputProps = SimpleInputProps | TextAreaInputProps; export interface InputState { isFocused: boolean; }