import React from 'react'; import type { UseFormReturn, FieldValues, SubmitHandler, SubmitErrorHandler, UseFormReset, UseFormSetValue, Mode, FieldPath } from 'react-hook-form'; import type { SlotsToClasses } from '@heroui/react'; import type { ButtonProps } from '@heroui/react'; export type FormSlots = "base" | "footer"; export type FormFooterConfig = { resetProps?: Omit; resetText?: React.ReactNode; submitProps?: Omit; submitText?: React.ReactNode; hiddenReset?: boolean; onReset?: () => void; }; export interface FormInstance extends UseFormReturn { getFieldValue: (name: FieldPath) => any; getFieldsValue: () => TFieldValues; setFieldValue: (name: FieldPath, value: any) => void; setFieldsValue: (values: Partial) => void; resetFields: () => void; validateFields: () => Promise; setFieldError: (name: FieldPath, error: any) => void; clearFieldErrors: (names?: FieldPath[]) => void; } export interface FormAction { submit: () => void; reset: UseFormReset; setFieldValue: UseFormSetValue; setFieldValues: (values: Partial) => void; getFieldValues: () => TFieldValues; } export interface FormProps extends Omit, HTMLFormElement>, 'method'> { classNames?: SlotsToClasses; footer?: false | FormFooterConfig; mode?: Mode; watchNames?: FieldPath | FieldPath[]; onFinish?: SubmitHandler; onFinishError?: SubmitErrorHandler; form?: FormInstance; } export declare function Form(props: FormProps): import("react/jsx-runtime").JSX.Element; export interface FormWithMethodsProps extends FormProps { method: FormInstance; } export declare function FormWithMethods({ method, classNames, footer, watchNames, onFinish, onFinishError, children, ...formProps }: FormWithMethodsProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=Form.d.ts.map