import * as React from 'react';
import { Slot } from '@radix-ui/react-slot';
import { type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
import type * as LabelPrimitive from '@radix-ui/react-label';
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
declare function FormItem({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
type FormLabelProps = React.ComponentProps<typeof LabelPrimitive.Root> & {
    required?: boolean;
};
declare function FormLabel({ className, required, ...props }: FormLabelProps): import("react/jsx-runtime").JSX.Element;
declare function FormControl(props: React.ComponentProps<typeof Slot>): import("react/jsx-runtime").JSX.Element;
declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element;
type FormMessageProps = React.ComponentProps<'p'> & {
    showErrorPlaceholder?: boolean;
};
declare function FormMessage({ className, showErrorPlaceholder, ...props }: FormMessageProps): import("react/jsx-runtime").JSX.Element | null;
export { FormField, FormItem, FormLabel, FormControl, FormDescription, FormMessage };
