import { ComponentPropsWithRef, ReactNode } from 'react'; import { UseMessageProps } from '../shared/types'; type HTMLInputProps = ComponentPropsWithRef<'input'>; type InputType = 'email' | 'password' | 'search' | 'tel' | 'text' | 'url'; export type InputTextProps = HTMLInputProps & UseMessageProps & { label: ReactNode; contentBefore?: ReactNode; contentAfter?: ReactNode; hideLabel?: boolean; name?: string; inputSize?: 'medium' | 'large'; testId?: string; type?: InputType; }; /** * - InputText supports both controlled and uncontrolled patterns: * - **Controlled**: Provide `value` and `onChange` props. Use for inputs with complex interactions or when you need to programmatically control the value. * - **Uncontrolled**: Optionally provide `defaultValue` prop and access the value via a ref or FormData. Used for simple forms or when integrating with form libraries like react-hook-form. * - Use title case for the required `label` (e.g., "Project Name", not "Project name"). * - InputText can render a `type="password"` input. However, if you need a password input with a show/hide button, use [InputPassword](/docs/inputpassword--docs). */ export declare const InputText: import('react').ForwardRefExoticComponent & import('react').RefAttributes>; export default InputText;