import React, { ChangeEvent, ReactNode } from 'react'; import { Merge } from 'type-fest'; export declare enum InputType { Text = "text", Password = "password", Number = "number", Search = "search", Date = "date", Time = "time", Month = "month", Email = "email", Tel = "tel", Url = "url" } export declare enum InputScale { Small = "small", Normal = "normal", Large = "large" } export interface InputChangeHandlerProps { element: HTMLInputElement; event?: ChangeEvent; } export interface InputChangeHandler { (value: string, props: InputChangeHandlerProps): void; } export declare enum InputIconPosition { Left = "left", Right = "right" } export type InputProps = Merge, { /** Тип контрола */ type?: InputType; /** Дефолтное значение для uncontrolled-варианта */ defaultValue?: string; /** Значение контрола для controlled-варианта */ value?: string; /** Обработчик onChange */ onChange?: InputChangeHandler; /** Значение placeholder контрола */ placeholder?: string; /** Размеры контрола */ scale?: InputScale; /** Ширина контрола. Допустимые значения от "2" до "40" */ size?: number; /** Флаг капитализации текста */ capitalize?: boolean; /** Флаг недоступности контрола */ disabled?: boolean; /** Флаг невалидности контрола */ invalid?: boolean; /** Указывает на строку с компонентом в исходном коде в режиме разработки. Генерируется babel-plugin-react-source */ source?: string; /** Иконка */ icon?: ReactNode; /** Положение иконки */ iconPosition?: InputIconPosition; /** Текст префикса внутри инпута */ prefix?: ReactNode; /** Текст постфикса внутри инпута */ postfix?: ReactNode; /** Показывать кнопку очистки, когда инпут не пуст и нет иконки */ showClearButton?: boolean; /** Показывать иконку загрузки */ showLoading?: boolean; /** Флаг для отключения рамок у контрола */ light?: boolean; /** Внутренний элемент справа, на который не накладывается текст инпута */ innerRightElement?: ReactNode; }>; declare const InputText: (props: import("type-fest").Simplify, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes>, { /** Тип контрола */ type?: InputType | undefined; /** Дефолтное значение для uncontrolled-варианта */ defaultValue?: string | undefined; /** Значение контрола для controlled-варианта */ value?: string | undefined; /** Обработчик onChange */ onChange?: InputChangeHandler | undefined; /** Значение placeholder контрола */ placeholder?: string | undefined; /** Размеры контрола */ scale?: InputScale | undefined; /** Ширина контрола. Допустимые значения от "2" до "40" */ size?: number | undefined; /** Флаг капитализации текста */ capitalize?: boolean | undefined; /** Флаг недоступности контрола */ disabled?: boolean | undefined; /** Флаг невалидности контрола */ invalid?: boolean | undefined; /** Указывает на строку с компонентом в исходном коде в режиме разработки. Генерируется babel-plugin-react-source */ source?: string | undefined; /** Иконка */ icon?: ReactNode; /** Положение иконки */ iconPosition?: InputIconPosition | undefined; /** Текст префикса внутри инпута */ prefix?: ReactNode; /** Текст постфикса внутри инпута */ postfix?: ReactNode; /** Показывать кнопку очистки, когда инпут не пуст и нет иконки */ showClearButton?: boolean | undefined; /** Показывать иконку загрузки */ showLoading?: boolean | undefined; /** Флаг для отключения рамок у контрола */ light?: boolean | undefined; /** Внутренний элемент справа, на который не накладывается текст инпута */ innerRightElement?: ReactNode; }>> & React.RefAttributes) => React.ReactElement> | null; export default InputText;