import { z, ZodTypeAny } from "zod";
import { DefaultSchema, UseFormHook } from "../form.hook.type";
type BaseCommonProps<S> = {
    errors?: Partial<Record<keyof S, string>>;
    mode?: "controlled" | "uncontrolled";
    errorParser?: (message: string) => string;
};
type CommonProps<S> = (BaseCommonProps<S> & {
    persist: true;
    persistKey: string;
}) | (BaseCommonProps<S> & {
    persist?: false | undefined;
    persistKey?: never;
});
export declare function useForm<Schema extends ZodTypeAny>(props: {
    schema: Schema;
    defaultValues?: Partial<z.infer<Schema>>;
} & CommonProps<z.infer<Schema>>): UseFormHook<z.infer<Schema>>;
export declare function useForm<DefaultValues extends DefaultSchema = DefaultSchema>(props: {
    defaultValues?: DefaultValues;
    schema?: ZodTypeAny;
} & CommonProps<DefaultValues>): UseFormHook<DefaultValues>;
export declare function useForm(props?: {
    defaultValues?: undefined;
    schema?: undefined;
} & CommonProps<DefaultSchema>): UseFormHook<DefaultSchema>;
export {};
