import { Form as FormPrimitive } from '@base-ui/react/form';
import type * as React from 'react';
export type FormValidationMode = 'onSubmit' | 'onBlur' | 'onChange';
export interface FormProps<FormValues extends Record<string, unknown> = Record<string, unknown>> extends Omit<React.ComponentProps<'form'>, 'onSubmit'> {
    /**
     * Determines when the form should be validated.
     * - `onSubmit` (default): validates when the form is submitted
     * - `onBlur`: validates when a field loses focus
     * - `onChange`: validates on every change
     * @default 'onSubmit'
     */
    validationMode?: FormValidationMode;
    /**
     * External validation errors (e.g., from server).
     * Keys should match field `name` attributes.
     */
    errors?: Record<string, string | string[]>;
    /**
     * Called when the form is submitted.
     * `preventDefault()` is automatically called.
     */
    onFormSubmit?: (formValues: FormValues, eventDetails: FormPrimitive.SubmitEventDetails) => void;
}
/**
 * Form - A native form element with consolidated error handling.
 * Works with Field components for structured form management.
 */
declare function Form<FormValues extends Record<string, unknown> = Record<string, unknown>>({ className, validationMode, errors, onFormSubmit, ...props }: FormProps<FormValues>): import("react/jsx-runtime").JSX.Element;
declare namespace Form {
    var displayName: string;
}
export { Form };
