/// <reference types="react" />
export type Variant = 'normal' | 'quiet';
export type Size = Pick<Props, 'size'>;
export type Props = {
    className?: string;
    id?: string;
    /** Label should always be presented - A11y */
    label: string;
    /** But you can hide it visually */
    hideLabel?: boolean;
    labelTooltip?: string;
    labelTooltipPosition?: 'top' | 'left' | 'bottom' | 'right';
    labelTooltipInModal?: boolean;
    autoComplete?: string;
    autoFocus?: boolean;
    name?: string;
    error?: string;
    success?: boolean;
    /** TODO: is this needed? */
    extraInfo?: string;
    rightAddon?: React.ReactNode;
    leftAddon?: React.ReactNode;
    disabled?: boolean;
    placeholder?: string;
    fullWidth?: boolean;
    size?: 's';
    /** @default normal */
    variant?: Variant;
    pattern?: string;
    inputMode?: string;
    /**
     * You need to specify width
     * (better in pixels), because
     * that will affect wrapping
     * of the error/info text
     * underneath
     */
    width?: string | number;
    type?: string;
    value?: string;
    defaultValue?: string;
    required?: boolean;
    maxLength?: number;
    visuallyEmphasiseRequired?: boolean;
    onChange?: React.ChangeEventHandler<HTMLInputElement>;
    onClick?: React.MouseEventHandler<HTMLInputElement>;
    onBlur?: React.FocusEventHandler<HTMLInputElement>;
    onFocus?: React.FocusEventHandler<HTMLInputElement>;
    onMouseEnter?: React.FocusEventHandler<HTMLInputElement>;
    onMouseLeave?: React.FocusEventHandler<HTMLInputElement>;
    onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
    onKeyUp?: React.KeyboardEventHandler<HTMLInputElement>;
    onKeyPress?: React.KeyboardEventHandler<HTMLInputElement>;
    readOnly?: boolean;
};
