import { type FormHTMLAttributes, type ReactNode } from 'react';
import { type UseFormReturn } from '../useForm';
export type FormProps<TFormValues extends object> = FormHTMLAttributes<HTMLFormElement> & {
    /**
     * Значение, которое возвращает useForm. Необходимо для передачи в FormContext
     * @example
     * ```tsx
     * import { Form, useForm } from '@astral/form';
     *
     * function App() {
     *   const form = useForm();
     *   const onSubmit = data => console.log(data);
     *
     *   return (
     *     <Form onSubmit={handleSubmit(onSubmit)} form={form}>
     *       <input defaultValue="test" {...form.register("example")} />
     *       <input type="submit" />
     *     </form>
     *   );
     * }
     * ```
     */
    form: UseFormReturn<TFormValues>;
    /**
     * Если true, форма будет недоступна для взаимодействия
     */
    isDisabled?: boolean;
    /**
     * Содержимое формы
     */
    children?: ReactNode;
};
/**
 * Компонент, инкапсулирующий FormProvider
 * @example
 * ```tsx
 * import { Form, useForm } from '@astral/form';
 *
 * function App() {
 *   const form = useForm();
 *   const onSubmit = data => console.log(data);
 *
 *   return (
 *     <Form onSubmit={handleSubmit(onSubmit)} form={form}>
 *       <input defaultValue="test" {...form.register("example")} />
 *       <input type="submit" />
 *     </form>
 *   );
 * }
 * ```
 */
export declare const Form: <TFormValues extends object>({ form, children, isDisabled, ...props }: FormProps<TFormValues>) => import("react/jsx-runtime").JSX.Element;
