import { default as React } from 'react';
import { FormConfigElement } from '../../custom-hooks/useFormConfig';
type ConfigWithInternal<T> = T & any;
export type FormStatus<T> = {
    hasChanges: boolean;
    isValid: boolean;
    inputsChanges: Record<keyof T, boolean>;
    inputsStatus: Record<keyof T, boolean>;
    currentConfig: FormConfigElement<T> | null;
};
interface Props<T = any> {
    className?: string;
    children: React.ReactNode;
    onSubmit?: (data: T) => void;
    config?: ConfigWithInternal<T>;
    onChange?: (status: FormStatus<T>) => void;
}
export declare const Form: <T>(props: Props<T>) => import("react/jsx-runtime").JSX.Element;
export { useFormConfigContext } from './FormConfigContext';
