/**
 * @fileoverview Form Components
 * @description Form components built on react-hook-form and Radix UI primitives. Provides form context, field management, and validation support.
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
import { type HTMLAttributes, type ComponentProps } from 'react';
import { type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
import { Label, Slot } from '@donotdev/components';
/**
 * Form provider component
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
/**
 * Form field component
 *
 * Wraps a form field with context and controller for react-hook-form integration.
 *
 * @param {ControllerProps<TFieldValues, TName>} props - Controller props
 * @returns {JSX.Element} Form field component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
/**
 * Form item component
 *
 * Container component for form fields with spacing and layout.
 *
 * @param {HTMLAttributes<HTMLDivElement>} props - Component props
 * @returns {JSX.Element} Form item component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormItem: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
/**
 * Hook for accessing form field context
 *
 * Returns form field state and IDs for form components.
 *
 * @returns {Object | null} Form field context with IDs and state
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const useFormField: () => {
    invalid: boolean;
    isDirty: boolean;
    isTouched: boolean;
    isValidating: boolean;
    error?: import("react-hook-form").FieldError;
    id: string;
    name: string;
    formItemId: string;
    formDescriptionId: string;
    formMessageId: string;
} | null;
/**
 * Form label component
 *
 * Renders a label for a form field with error state styling.
 *
 * @param {ComponentProps<typeof Label>} props - Component props
 * @returns {JSX.Element | null} Form label component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormLabel: ({ className, ...props }: ComponentProps<typeof Label>) => import("react/jsx-runtime").JSX.Element | null;
/**
 * Form control component
 *
 * Wraps form input components with proper ARIA attributes.
 *
 * @param {ComponentProps<typeof Slot>} props - Component props
 * @returns {JSX.Element | null} Form control component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormControl: ({ ...props }: ComponentProps<typeof Slot>) => import("react/jsx-runtime").JSX.Element | null;
/**
 * Form description component
 *
 * Renders descriptive text for a form field.
 *
 * @param {HTMLAttributes<HTMLParagraphElement>} props - Component props
 * @returns {JSX.Element | null} Form description component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormDescription: ({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) => import("react/jsx-runtime").JSX.Element | null;
/**
 * Form message component
 *
 * Renders error or custom messages for a form field.
 *
 * @param {HTMLAttributes<HTMLParagraphElement>} props - Component props
 * @returns {JSX.Element | null} Form message component
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const FormMessage: ({ className, children, ...props }: HTMLAttributes<HTMLParagraphElement>) => import("react/jsx-runtime").JSX.Element | null;
/**
 * Form component exports
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, useFormField, };
//# sourceMappingURL=Form.d.ts.map