import React from "react";
import { type UseFormReturnType as UseMantineFormReturnType } from "@mantine/form";
import type { UseFormInput } from "@mantine/form/lib/types";
import { type BaseRecord, type HttpError, type UseFormProps as UseFormCoreProps, type UseFormReturnType as UseFormReturnTypeCore } from "@refinedev/core";
type FormVariableType<TVariables, TTransformed> = ReturnType<NonNullable<UseFormInput<TVariables, (values: TVariables) => TTransformed>["transformValues"]>>;
export type UseFormReturnType<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TVariables = Record<string, unknown>, TTransformed = TVariables, TData extends BaseRecord = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError> = UseMantineFormReturnType<TVariables, (values: TVariables) => TTransformed> & {
    refineCore: UseFormReturnTypeCore<TQueryFnData, TError, FormVariableType<TVariables, TTransformed>, TData, TResponse, TResponseError>;
    saveButtonProps: {
        disabled: boolean;
        onClick: (e: React.PointerEvent<HTMLButtonElement>) => void;
    };
};
export type UseFormProps<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TVariables = Record<string, unknown>, TTransformed = TVariables, TData extends BaseRecord = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError> = {
    refineCoreProps?: UseFormCoreProps<TQueryFnData, TError, FormVariableType<TVariables, TTransformed>, TData, TResponse, TResponseError> & {
        warnWhenUnsavedChanges?: boolean;
    };
} & UseFormInput<TVariables, (values: TVariables) => TTransformed> & {
    /**
     * Disables server-side validation
     * @default false
     * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}
     */
    disableServerSideValidation?: boolean;
};
export declare const useForm: <TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TVariables = Record<string, unknown>, TTransformed = TVariables, TData extends BaseRecord = TQueryFnData, TResponse extends BaseRecord = TData, TResponseError extends HttpError = TError>({ refineCoreProps, disableServerSideValidation: disableServerSideValidationProp, ...rest }?: UseFormProps<TQueryFnData, TError, TVariables, TTransformed, TData, TResponse, TResponseError>) => UseFormReturnType<TQueryFnData, TError, TVariables, TTransformed, TData, TResponse, TResponseError>;
export {};
//# sourceMappingURL=index.d.ts.map