import { ReactElement } from 'react';
import { FieldValues, UseFormProps, ControllerFieldState, ControllerRenderProps, SubmitHandler as RHFSubmitHandler } from 'react-hook-form';
/**
 * Wrapper hook untuk buat form
 */
export declare function useForm<TFieldValues extends FieldValues = FieldValues>(options?: UseFormProps<TFieldValues>): import('react-hook-form').UseFormReturn<TFieldValues, any, TFieldValues>;
/**
 * Kita expose FormProvider agar seluruh komponen bisa pakai useFormContext()
 */
export declare const FormProvider: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
export type SubmitHandler<TFieldValues> = RHFSubmitHandler<TFieldValues>;
/**
 * Controller helper untuk TextField
 */
export type FormFieldProps<T> = {
    name: keyof T;
    rules?: Record<string, any>;
    render: (field: ControllerRenderProps, fieldState: ControllerFieldState) => ReactElement;
};
export declare function FormField<T extends FieldValues>({ name, rules, render, }: FormFieldProps<T>): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=form.d.ts.map