import { InputSize, VisualSlotType, Colors, IconFontColor, PillSize } from './types';
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
    label?: string;
    error?: string;
    helperText?: string;
    size?: InputSize;
    color?: Colors;
    leftSlot?: VisualSlotType | null;
    rightSlot?: VisualSlotType | null;
    extraSlot?: VisualSlotType | null;
    /** Clase CSS aplicada al contenedor del leftSlot (p. ej. ui-animate-spin para icono de carga) */
    leftSlotClassName?: string;
    caret?: boolean;
    errorCursor?: boolean;
    disabled?: boolean;
    defaultValue?: string;
    fullWidth?: boolean;
    /**
     * Si es `true` (por defecto) y `fullWidth` es `false`, el control del input aplica un ancho mínimo de diseño (`ui-min-w-72`).
     * Ponlo en `false` para que el campo no imponga ese mínimo (p. ej. contenedores estrechos o `ui-w-fit`).
     */
    minWidthEnabled?: boolean;
    autosize?: boolean;
    infoTooltip?: string;
    onValueChange?: (value: string) => void;
    onClickExtraSlot?: () => void;
    /** Muestra una X para vaciar el valor cuando hay contenido (no con `disabled`). */
    clearable?: boolean;
    onClear?: (e: React.MouseEvent<HTMLButtonElement>) => void;
    colorLeftIcon?: IconFontColor;
    colorRightIcon?: IconFontColor;
    colorExtraIcon?: IconFontColor;
    leftSlotDuotonePrimary?: IconFontColor;
    leftSlotDuotoneSecondary?: IconFontColor;
    leftSlotDuotoneOpacityPrimary?: number;
    leftSlotDuotoneOpacitySecondary?: number;
    rightSlotDuotonePrimary?: IconFontColor;
    rightSlotDuotoneSecondary?: IconFontColor;
    rightSlotDuotoneOpacityPrimary?: number;
    rightSlotDuotoneOpacitySecondary?: number;
    extraSlotDuotonePrimary?: IconFontColor;
    extraSlotDuotoneSecondary?: IconFontColor;
    extraSlotDuotoneOpacityPrimary?: number;
    extraSlotDuotoneOpacitySecondary?: number;
    pill?: PillSize;
}
export interface InputRef {
    getValue: () => string;
    setValue: (value: string) => void;
    focus: () => void;
    blur: () => void;
    clear: () => void;
    getInputElement: () => HTMLInputElement | null;
}
//# sourceMappingURL=input.d.ts.map