/**
 * Composant FormInput : Champ de formulaire réutilisable
 * - Affiche un champ `<input>` avec un libellé `label`
 * - Applique des classes dynamiques basées sur `formattedTitle`
 * - Affiche un message d'erreur `error` si nécessaire
 * - Utilise `register` pour enregistrer le champ dans `react-hook-form`
 * - Accepte toutes les propriétés HTML natives des `<input>` via `...inputProps`
 *
 * @template T - Type générique représentant les valeurs du formulaire (ex: `RegisterCredentials`)
 * @param {Object} props - Les propriétés du composant
 * @param {string} props.formattedTitle - Titre du formulaire formaté pour les classNames CSS
 * @param {string} props.label - Libellé du champ de formulaire
 * @param {Path<T>} props.id - Clé de l'objet `T`, utilisée pour identifier l'input dans `react-hook-form`
 * @param {boolean} [props.required] - Indique si le champ est requis (optionnel)
 * @param {string} [props.error] - Message d'erreur à afficher (optionnel)
 * @param {UseFormRegister<T>} props.register - Fonction `register` de `react-hook-form`
 * @param {InputHTMLAttributes<HTMLInputElement>} props.inputProps - Toutes les autres propriétés HTML natives de l'input
 */
import { FieldValues, Path, UseFormRegister } from 'react-hook-form';
import { InputHTMLAttributes } from 'react';
/**
 * Props pour le composant FormInput (utilisé par le composant `FormInputs`, sous-composant de `ReusableForm`)
 * - `T` assure que `register`, `errors` et `id` sont correctement typés en fonction du formulaire utilisé.
 * - formattedTitle : titre du formulaire formaté pour les classNames CSS
 * - label : texte du libellé affiché
 * - id : clé de l'objet `T`, utilisée pour identifier l'input dans `react-hook-form`.
 * - error : message d'erreur à afficher (optionnel).
 * - register : méthode `register` fournie par `react-hook-form` pour enregistrer les champs de formulaire.
 */
export interface FormInputProps<T extends FieldValues> extends InputHTMLAttributes<HTMLInputElement | HTMLSelectElement> {
    formattedTitle: string;
    label: string;
    id: Path<T>;
    options?: readonly {
        readonly value: string;
        readonly label: string;
    }[];
    error?: string | null;
    register: UseFormRegister<T>;
}
declare function FormInput<T extends FieldValues>({ formattedTitle, label, id, type, options, required, error, register, ...inputProps }: FormInputProps<T>): import("react/jsx-runtime").JSX.Element;
export default FormInput;
//# sourceMappingURL=FormInput.d.ts.map