import { default as React } from 'react';
/**
A controlled Text Input.
Also covers email, telephone, password, url derivates.
*/
export declare const TextInput: React.FC<TextInputProps>;
type TextInputType = "text" | "email" | "password" | "tel" | "url" | "number";
type TextInputWidth = "full" | "auto";
export interface TextInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
    /** Pass a name attribute */
    name?: string;
    /** Pass a value */
    value?: string | number;
    /** Pass an id */
    id?: string;
    /** Pass a placeholder */
    placeholder?: string;
    /** Render a disabled input */
    disabled?: boolean;
    /** Render a readonly input */
    readOnly?: boolean;
    /** Whether the field is required */
    required?: boolean;
    /** Whether the field is invalid */
    invalid?: boolean;
    /** Whether the field is valid */
    valid?: boolean;
    /** Whether the field receives autofocus */
    autoFocus?: boolean;
    /** Pass a classname. The class name is applied to the internal input element. */
    className?: string;
    /** Pass a valid autocomplete value. We do not police validity. */
    autoComplete?: string;
    /** Pass a change handler */
    onChange?: React.ChangeEventHandler<HTMLInputElement>;
    /** Pass a focus handler */
    onFocus?: React.FocusEventHandler<EventTarget>;
    /** Pass a blur handler */
    onBlur?: React.FocusEventHandler<EventTarget>;
    /** Specify the type attribute. Defaults to an input with no type attribute, which in turn will be treateas as type="text" by browsers. */
    type?: TextInputType;
    /** The label of the input */
    label?: string;
    /** A helptext to render to explain meaning and significance of the TextInput */
    helptext?: JSX.Element | string;
    /** A text to render when the TextInput was successfully validated */
    successtext?: JSX.Element | string;
    /** A text to render when the TextInput has an error or could not be validated */
    errortext?: JSX.Element | string;
    /** The width of the text input. Either 'full' (default) or 'auto'. */
    width?: TextInputWidth;
    /** Pass a custom className to the wrapping element. This can be useful if you must add styling to the outermost wrapping element of this component, e.g. for positioning. */
    wrapperClassName?: string;
}
export {};
//# sourceMappingURL=TextInput.component.d.ts.map