import * as React from 'react';
import * as LabelPrimitive from '@radix-ui/react-label';
import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
import { TooltipProviderProps } from '@radix-ui/react-tooltip';
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
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;
    required: boolean | undefined;
};
export type FormItemProps = React.HTMLAttributes<HTMLDivElement> & {
    required?: boolean;
};
declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
    required?: boolean;
} & React.RefAttributes<HTMLDivElement>>;
export type FormLabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & {
    extra?: React.ReactNode;
};
declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & {
    extra?: React.ReactNode;
} & React.RefAttributes<HTMLLabelElement>>;
export declare const FormTooltip: ({ children, ...others }: TooltipProviderProps) => React.JSX.Element;
declare const FormControl: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement> & {
    children?: React.ReactNode;
} & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
//# sourceMappingURL=form.d.ts.map