import type { HTMLProps, ReactNode } from 'react';
export type TTextFieldSize = 'sm' | 'md' | 'lg';
export type TTextFieldStatus = 'default' | 'error' | 'success';
export type TTextFieldVariant = 'inline' | 'outline';
export type TTextFieldProps = {
/** Set the TextField to have full width */
block?: boolean;
/** Set the TextField's caption. Have a certain icon according to the TextField's status */
caption?: ReactNode;
/** Set the TextField's caption class name */
captionClassName?: string;
/** Set the TextField to be disabled */
disabled?: boolean;
/** Set the TextField's hint */
hint?: ReactNode;
/** Set the TextField's hint class name */
hintClassName?: string;
/** Set the TextField's icon on the left side */
iconLeft?: ReactNode;
/** Set the TextField's icon on the right side */
iconRight?: ReactNode;
/** Set the TextField's input class name */
inputClassName?: string;
/** Set the TextField's label */
label?: ReactNode;
/** Set the TextField's label class name */
labelClassName?: string;
/** Set the TextField's placeholder */
placeholder?: string;
/** Set the TextField's prefix. The prefix is separated from the icons and the TextField's input by a divider */
prefix?: ReactNode;
/** Set the TextField's size */
size?: TTextFieldSize;
/** Set the TextField's status. This status affects the icon that is shown in caption when the caption is provided */
status?: TTextFieldStatus;
/** Set the TextField's suffix. The suffix is separated from the icons and the TextField's input by a divider */
suffix?: ReactNode;
/** Set the TextField's variant */
variant?: TTextFieldVariant;
} & Omit, 'size' | 'prefix' | 'suffix'>;