import React from "react";
import { useForm } from "../hooks/useForm";
import z, { ZodObject } from "zod";
export type FormContextValue<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>> = ReturnType<typeof useForm<TSchema, DefaultValues>>;
type FormProps<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>> = {
    use?: FormContextValue<TSchema, DefaultValues>;
    onValid?: (values: any) => void;
    children: React.ReactNode;
    as?: "form" | "div" | "section";
    className?: string;
} & React.HTMLAttributes<HTMLFormElement | HTMLDivElement>;
export declare const FormContext: React.Context<import("..").UseFormHook<Record<string, any>, any> | null>;
export declare function Form<TSchema extends ZodObject | undefined = undefined, DefaultValues = TSchema extends undefined ? Record<string, any> : Partial<z.infer<TSchema>>>({ children, use, onValid, as, className, ...rest }: FormProps<TSchema, DefaultValues>): React.JSX.Element;
export {};
