import { ChangeEvent, FocusEventHandler, ReactNode } from 'react';
export type TextInputProps = {
    label: ReactNode;
    value?: string | number;
    onChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;
    disabled?: boolean;
    /**
     * Underlying `input`'s element `type` attribute
     */
    type?: 'text' | 'email' | 'password' | 'number' | 'phone' | 'url' | 'search';
    status?: 'error' | 'loading';
    spacing?: 'normal' | 'dense';
    message?: ReactNode;
    onFocus?: FocusEventHandler;
    onBlur?: FocusEventHandler;
    placeholder?: string;
    prefix?: ReactNode;
    suffix?: ReactNode;
    className?: string;
    testId?: string;
};
declare const TextInput: {
    ({ type, className, testId, prefix, suffix, onFocus: propOnFocus, onBlur: propOnBlur, value, message, spacing, onChange, status, placeholder, disabled, label, }: TextInputProps): JSX.Element;
    Affix({ children, className }: {
        children?: ReactNode;
        className?: string;
    }): JSX.Element;
};
export { TextInput };
//# sourceMappingURL=TextInput.d.ts.map