import { FieldValues, UseFormProps, UseFormReturn, FieldPath, RegisterOptions, UseFormRegisterReturn } from 'react-hook-form';
import { ZodObject } from 'zod';
/**
 * Props for the useValidatedForm hook, an extension of useForm from react-hook-form.
 */
export type UseValidatedFormProps<TFieldValues extends FieldValues, TContext, TTransformedValues> = UseFormProps<TFieldValues, TContext, TTransformedValues> & {
    schema?: ZodObject;
};
/**
 * Return type for the useValidatedForm hook, an extension of useForm from react-hook-form.
 */
export type UseValidatedFormReturn<TFieldValues extends FieldValues, TContext, TTransformedValues> = Omit<UseFormReturn<TFieldValues, TContext, TTransformedValues>, 'register'> & {
    register: UseValidatedFormRegister<TFieldValues>;
    validate: (applySchema?: boolean, onlyRegistered?: boolean) => Promise<boolean>;
    applyErrors: () => void;
    fieldErrors: {
        [key: string]: string;
    };
    formErrors: string[];
};
/**
 * Extension of the useForm register function properties with optional labels.
 */
type UseValidatedFormRegister<TFieldValues extends FieldValues> = (name: FieldPath<TFieldValues>, options?: RegisterOptions<TFieldValues, FieldPath<TFieldValues>> & {
    label?: string;
}) => UseFormRegisterReturn;
/**
 * Applies custom validation to react-hook-forms.
 */
export default function useValidatedForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props?: UseValidatedFormProps<TFieldValues, TContext, TTransformedValues>): UseValidatedFormReturn<TFieldValues, TContext, TTransformedValues>;
export {};
