import { default as React } from 'react';
import { HNDesignsystemInput } from '../../resources/Resources';
import { IconName } from '../Icons/IconNames';
import { FormOnColor, FormSize } from '../../constants';
import { ErrorWrapperClassNameProps } from '../ErrorWrapper';
import { SvgIcon } from '../Icon';
export interface InputProps extends ErrorWrapperClassNameProps, Pick<React.InputHTMLAttributes<HTMLInputElement>, 'disabled' | 'readOnly' | 'autoComplete' | 'name' | 'placeholder' | 'defaultValue' | 'required' | 'value' | 'min' | 'max' | 'aria-describedby' | 'aria-labelledby' | 'onBlur' | 'onClick' | 'onChange' | 'onFocus' | 'onKeyDown' | 'autoFocus' | 'inputMode'> {
    /** The number at which the input field starts when you increment or decrement it */
    baseIncrementValue?: number;
    /** Adds custom classes to the element. */
    className?: string;
    /**  HMTL Input type */
    type?: keyof typeof InputTypes;
    /** input id */
    inputId?: string;
    /** Width of input field in characters (approximate) */
    width?: number;
    /** If true, the component will be transparent. */
    transparent?: boolean;
    /** Icon to be displayed next to the input field */
    icon?: SvgIcon | IconName;
    /** Places the icon to the right */
    iconRight?: boolean;
    /** Ref that is placed on the inputContainerRef */
    inputContainerRef?: React.RefObject<HTMLDivElement>;
    /** Ref that is placed on the inputWrapper */
    inputWrapperRef?: React.RefObject<HTMLDivElement>;
    /** Changes the color profile of the input */
    onColor?: keyof typeof FormOnColor;
    /** Changes the visuals of the input */
    size?: keyof typeof FormSize;
    /** Label of the input */
    label?: React.ReactNode;
    /** Activates Error style for the input */
    error?: boolean;
    /** Error text to show above the component */
    errorText?: string;
    /** Error text id */
    errorTextId?: string;
    /** Sets the data-testid attribute. */
    testId?: string;
    /** Component shown after input */
    afterInputChildren?: React.ReactNode;
    /** Component shown to the right of input */
    rightOfInput?: React.ReactNode;
    /** max character limit in input  */
    maxCharacters?: number;
    /** @deprecated use resources instead. The text is displayed in the end of the text-counter */
    maxText?: string;
    /** Resources for component */
    resources?: Partial<HNDesignsystemInput>;
}
export declare enum InputTypes {
    text = "text",
    number = "number",
    email = "email",
    password = "password",
    search = "search",
    tel = "tel",
    url = "url",
    date = "date",
    time = "time"
}
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
export default Input;
