import type { PropsWithChildren, MouseEvent, InputHTMLAttributes, HTMLAttributes } from "react"; import type { ClassName, InputTexts, TComponentIcon } from "@helpers/types"; export declare enum InputAddonsVariants { PREFIX_AND_SUFFIX = "withPrefixAndSuffix", SUFFIX = "withSuffix", PREFIX = "withPrefix", DEFAULT = "default" } export declare enum AddonsContentVariants { TEXT = "text", DROPDOWN = "dropdown", ICON = "icon", ICON_AND_DROPDOWN = "iconAndDropdown", DROPDOWN_AND_ICON = "dropdownAndIcon" } export interface BaseInputProps extends InputHTMLAttributes, PropsWithChildren { error?: boolean; addonsVariant?: InputAddonsVariants; containerClassName?: string; } export interface InputProps extends Omit, InputTexts { prefixProps?: InputAddonProps; suffixProps?: InputAddonProps; inputClassName?: string; } export interface InputAddonProps extends ClassName, Pick, Pick, "aria-label" | "onClick"> { text?: string; icon?: TComponentIcon; variant: AddonsContentVariants; disabled?: boolean; error?: boolean; hasErrorIcon?: boolean; testId?: string; } export interface DropdownButtonProps extends Pick, "aria-label"> { text?: string; disabled?: boolean; onDropdownButtonClick?: (e: MouseEvent) => void; } export interface IconProps extends Pick, "aria-label" | "onClick"> { icon: TComponentIcon; error?: boolean; hasErrorIcon?: boolean; }