import { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react'; import { DataTrackingId, LayoutUtilProps, Size, MaxLengthCounterProps } from '../../../types'; import { HelperProps } from '../../../internal/components'; import { FieldLabelProps } from '../../FieldLabel'; export type TextFieldProps = Omit, "size" | "prefix"> & LayoutUtilProps & { /** * Error state for the field. Pass `true` to indicate error styling without a message. * Pass a string, string[], or ReactElement (deprecated) for error messages. */ error?: boolean | string | ReactElement | string[]; /** * Label for the field. * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it. * Passing `ReactNode` is deprecated — use a plain string with inline markdown instead. */ label?: FieldLabelProps["children"]; prefix?: string | ReactElement; suffix?: string | ReactElement; size?: Extract; type?: "text" | "email" | "tel" | "url" | "password" | "number"; description?: HelperProps["description"]; /** * @deprecated No longer used. Error messages always use `aria-live="assertive"`. */ errorAriaLive?: HelperProps["errorAriaLive"]; hint?: HelperProps["hint"]; /** * Warning message(s) to display. Supports a single string or an array of strings. */ warning?: string | string[]; loading?: boolean; disabled?: boolean; labelProps?: FieldLabelProps; moreInfo?: ReactNode; /** * When `true`, hides the visible label and moves it to `aria-label` on the input. * Requires `label` to be set — the label is always needed for accessibility. * @default false */ hideLabel?: boolean; } & MaxLengthCounterProps & DataTrackingId; export declare const TextField: import('react').ForwardRefExoticComponent>;