import { ElementProps, States } from '../../core/types';
import { ReactNode } from 'react';
import { TextFieldProps as ReactAriaTextFieldProps } from 'react-aria-components';
import './TextField.scss';
export type TextFieldProps = ElementProps & ReactAriaTextFieldProps & {
    disabled?: boolean;
    errorMessage?: string;
    isSmall?: boolean;
    isTextArea?: boolean;
    leftIcon?: ReactNode;
    leftIconTooltip?: string | ReactNode;
    onChange?: (v: string) => void;
    onBlur?: (v: any) => void;
    placeholder?: string;
    rightIcon?: ReactNode;
    rightIconTooltip?: string | ReactNode;
    state?: States;
    supportTitle?: string;
    title?: string;
    titleIcon?: ReactNode;
    titleTooltip?: string | ReactNode;
    type?: string;
    value?: string;
    bgColor?: string;
    children?: ReactNode;
    ariaLabel?: string;
};
export declare enum InputTooltipLocation {
    TITLE = "title",
    LEFT = "left",
    RIGHT = "right"
}
/**
 * TextField component
 * @param props
 * @param {string} props.value - The value of the input field
 * @param {function} props.onChange - The function to call when the input field changes
 * @param {string} props.placeholder - The placeholder text for the input field
 * @param {string} props.title - The title of the input field
 * @param {string} props.supportTitle - The support title of the input field
 * @param {ReactNode} props.titleIcon - The icon for the title
 * @param {ReactNode} props.leftIcon - The icon for the left side of the input field
 * @param {ReactNode} props.rightIcon - The icon for the right side of the input field
 * @param {ReactNode} props.titleTooltip - The tooltip for the title
 * @param {ReactNode} props.leftIconTooltip - The tooltip for the left icon
 * @param {ReactNode} props.rightIconTooltip - The tooltip for the right icon
 * @param {States} props.state - The state of the input field
 * @param {string} props.errorMessage - The error message for the input field
 * @param {boolean} props.disabled - Whether the input field is disabled
 * @param {boolean} props.isSmall - Whether the input field is small
 * @param {boolean} props.isTextArea - Whether the input field is a text area
 * @param {string} props.type - The type of the input field
 * @param {string} props.bgColor - The background color of the input field
 * @param {object} rest - Additional props to pass to the input field
 * @param {string} props.ariaLabel - The aria label of the input field
 * @returns {JSX.Element}
 * @category Component
 * @example
 * <TextField
 *  value={value}
 *  onChange={(v) => setValue(v)}
 *  placeholder="Placeholder"
 *  title="Title"
 *  supportTitle="Support Title"
 *  titleIcon={<PiInfoBold />}
 *  leftIcon={<PiInfoBold />}
 *  rightIcon={<PiInfoBold />}
 *  titleTooltip="Title Tooltip"
 *  leftIconTooltip="Left Icon Tooltip"
 *  rightIconTooltip="Right Icon Tooltip"
 *  state={States.DISCOVERY}
 *  errorMessage="Error Message"
 *  disabled={false}
 *  isSmall={false}
 *  type="email"
 *  bgColor="#DA5132"
 *  />
 *  @see https://www.npmjs.com/package/react-aria-components
 * @constructor
 */
export declare const TextField: (props: TextFieldProps) => import("react/jsx-runtime").JSX.Element;
export default TextField;
