import { type JSX } from "react"; import type { BaseSchema } from "valibot"; import { type ValidationProps } from "../../../hook/useInputValidation"; /** * Props for the {@link Input} and {@link Password} components. * * @remarks * Extends standard HTML input attributes and adds validation-specific properties. */ export type InputProps> = JSX.IntrinsicElements["input"] & ValidationProps; /** * A basic text input component with built-in validation support. * * @remarks * This component integrates with `useInputValidation` to handle real-time validation, * error reporting, and formatting. It supports all standard HTML input attributes. * * @param props - The component props. * @returns The rendered input element. * * @example * ```tsx * import { string, minLength } from 'valibot'; * import { Input } from './input'; * * const nameSchema = string([minLength(2)]); * * function NameField() { * return ( * console.log(issues)} * /> * ); * } * ``` */ export declare function Input>({ className, validate, onValidationError, onBlur, onChange, ...props }: InputProps): JSX.Element; /** * A password input component with a toggle to show/hide the password. * * @remarks * Wraps the {@link Input} component and adds a button to toggle the `type` attribute * between "password" and "text". * * @param props - The component props. * @returns The rendered password input with a toggle button. * * @example * ```tsx * import { string, minLength } from 'valibot'; * import { Password } from './input'; * * const passwordSchema = string([minLength(8)]); * * function PasswordField() { * return ( * * ); * } * ``` */ export declare function Password>({ children, ...props }: InputProps): JSX.Element;