import React from 'react';
import { FormStatusProps } from '..';
export declare type TextInputProps = TextInputHTMLInputElementProps | TextInlineInputHTMLInputElementProps | TextInputHTMLTextAreaElementProps;
declare type InternalTextInputProps = {
    name?: string;
    label: string | JSX.Element;
    id: string;
    value?: string | number;
    defaultValue?: string | number;
    disabled?: boolean;
    status?: FormStatusProps;
    small?: boolean;
    optional?: boolean;
    hideOptionalText?: boolean;
    srOnlyLabel?: boolean;
    className?: string;
    inline?: boolean;
    beforeContent?: string | JSX.Element;
    afterContent?: string | JSX.Element;
};
export declare type TextInputHTMLInputElementProps = InternalTextInputProps & {
    type?: 'input';
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => any;
    onBlur?: (event: React.FocusEvent<HTMLInputElement>) => any;
    inputProps?: React.HTMLProps<HTMLInputElement>;
};
export declare type TextInlineInputHTMLInputElementProps = InternalTextInputProps & {
    type: 'inline-input';
    onChange: (event: React.ChangeEvent<HTMLInputElement>) => any;
    onBlur?: (event: React.FocusEvent<HTMLInputElement>) => any;
    inputProps?: React.HTMLProps<HTMLInputElement>;
};
export declare type TextInputHTMLTextAreaElementProps = InternalTextInputProps & {
    type: 'textarea';
    onChange: (event: React.ChangeEvent<HTMLTextAreaElement>) => any;
    onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => any;
    inputProps?: React.HTMLProps<HTMLTextAreaElement> & {
        inputMode: 'text';
    } & {
        type: 'textarea';
    };
};
export declare function TextInput({ type, name, label, onChange: inputOnChange, onBlur, id, value, defaultValue, disabled, status, small, optional, hideOptionalText, srOnlyLabel, className, inputProps, inline, beforeContent, afterContent, }: TextInputHTMLInputElementProps | TextInlineInputHTMLInputElementProps | TextInputHTMLTextAreaElementProps): JSX.Element;
export {};
