import React from 'react';
import { DefaultProps, MantineSize } from '../../theme';
import { InputBaseProps, InputStylesNames } from '../Input/Input';
import { InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper/InputWrapper';
export declare type TextInputStylesNames = InputStylesNames | InputWrapperStylesNames;
export interface TextInputProps extends DefaultProps<TextInputStylesNames>, InputBaseProps, InputWrapperBaseProps, Omit<React.ComponentPropsWithoutRef<'input'>, 'size'> {
    /** id is used to bind input and label, if not passed unique id will be generated for each input */
    id?: string;
    /** Adds icon on the left side of input */
    icon?: React.ReactNode;
    /** Input element type */
    type?: 'text' | 'password' | 'email' | 'search' | 'tel' | 'url' | 'number';
    /** Props passed to root element (InputWrapper component) */
    wrapperProps?: Record<string, any>;
    /** Get element ref */
    elementRef?: React.ForwardedRef<HTMLInputElement>;
    /** Input size */
    size?: MantineSize;
    /** Static css selector base */
    __staticSelector?: string;
}
export declare function TextInput({ className, id, label, error, required, type, style, icon, description, themeOverride, wrapperProps, elementRef, size, classNames, styles, __staticSelector, ...others }: TextInputProps): JSX.Element;
export declare namespace TextInput {
    var displayName: string;
}
//# sourceMappingURL=TextInput.d.ts.map