import React from "react";
export type TextInputSize = "default" | "large";
export type TextInputWidth = "3ch" | "8ch" | "12ch" | "default" | "fullwidth";
export type TextInputType = "email" | "hidden" | "password" | "search" | "tel" | "number" | "text" | "url";
export type TextInputSearchIcon = "none" | "transient" | "persistent";
export interface TextInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
    /** Input html type. */
    htmlType?: TextInputType;
    /** Html id attribute. */
    id: string;
    /** Disabled state. */
    isDisabled?: boolean;
    /** Invalid state */
    isInvalid?: boolean;
    /** Readonly state. */
    isReadonly?: boolean;
    /** Valid state */
    isValid?: boolean;
    /** Html name attribute. If not present, id is used.*/
    name?: string;
    /** Placeholder text */
    placeholder?: string;
    /** Size of element. */
    size?: TextInputSize;
    /** Input value. */
    value?: string;
    /** Input width */
    width?: TextInputWidth;
    /** Additional CSS classes */
    className?: string;
    /** Search icon mode. `transient` shows icon only on empty unfocused input, `persistent` keeps it visible with placeholder. */
    searchIcon?: TextInputSearchIcon;
}
declare const TextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;
export { TextInput };
