import React from 'react'; import { IconProps, IconPropSize } from '../../icons/Icon/Icon'; import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes'; export declare type TextFieldPropValue = string | null; export declare type TextFieldPropName = string; export declare type TextFieldPropId = string | number; export declare const textFieldPropSize: readonly ["m", "xs", "s", "l"]; export declare type TextFieldPropSize = typeof textFieldPropSize[number]; export declare const textFieldPropSizeDefault: TextFieldPropSize; export declare type TextFieldPropOnChange = (args: TextFieldOnChangeArguments) => void; export declare type TextFieldOnChangeArguments = { e: React.ChangeEvent | React.MouseEvent; id?: TextFieldPropId; name?: TextFieldPropName; value: TextFieldPropValue; }; export declare const textFieldPropView: readonly ["default", "clear"]; export declare type TextFieldPropView = typeof textFieldPropView[number]; export declare const textFieldPropViewDefault: TextFieldPropView; export declare const textFieldPropForm: readonly ["default", "defaultClear", "defaultBrick", "brick", "brickDefault", "brickClear", "brickRound", "round", "roundClear", "roundBrick", "clearRound", "clearDefault", "clearBrick", "clearClear"]; export declare type TextFieldPropForm = typeof textFieldPropForm[number]; export declare const textFieldPropFormDefault: TextFieldPropForm; export declare const textFieldPropStatus: readonly ["alert", "success", "warning"]; export declare type TextFieldPropStatus = typeof textFieldPropStatus[number]; export declare const textFieldPropWidth: readonly ["default", "full"]; export declare type TextFieldPropWidth = typeof textFieldPropWidth[number]; export declare const textFieldPropWidthDefault: TextFieldPropWidth; export declare type TextFieldPropAutoComplete = 'on' | 'off'; export declare type TextFieldPropsTextareaType = TYPE extends 'textarea' ? { minRows?: never; maxRows?: never; rows?: number; } | { rows?: never; minRows?: number; maxRows?: number; } : { rows?: never; minRows?: never; maxRows?: never; }; export declare type TextFieldPropRightSide = TYPE extends 'number' ? { rightSide?: never; } : { rightSide?: string | React.FC; }; export declare type Props = { className?: string; value?: TextFieldPropValue; cols?: number; onChange?: TextFieldPropOnChange; id?: TextFieldPropId; name?: TextFieldPropName; type?: TYPE; disabled?: boolean; maxLength?: number; size?: TextFieldPropSize; view?: TextFieldPropView; form?: TextFieldPropForm; state?: TextFieldPropStatus; status?: TextFieldPropStatus; width?: TextFieldPropWidth; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; autoFocus?: boolean; placeholder?: string; leftSide?: string | React.FC; rightSide?: string | React.FC; withClearButton?: boolean; autoComplete?: TextFieldPropAutoComplete; max?: number | string; min?: number | string; readOnly?: boolean; required?: boolean; step?: number | string; tabIndex?: number; inputRef?: React.Ref; ariaLabel?: string; iconSize?: IconPropSize; children?: never; label?: string; caption?: string; labelPosition?: 'top' | 'left'; focused?: boolean; } & TextFieldPropsTextareaType & TextFieldPropRightSide; export declare type TextFieldProps = PropsWithHTMLAttributes, HTMLDivElement>; export declare type TextFieldComponent = (props: TextFieldProps & React.RefAttributes) => React.ReactElement | null; export declare const sizeMap: Record;