import React, { FormHTMLAttributes, PropsWithChildren } from 'react';
export declare type FormProps<T> = {
    onSubmit: (_: T) => void;
    data: T;
    className?: string;
    hideStatus?: boolean;
} & /**
 * Creates a set of props that includes
 * all FormHTMLAttributes<HTMLFormElement> props, except onSubmit
 */ Pick<FormHTMLAttributes<HTMLFormElement>, Exclude<keyof FormHTMLAttributes<HTMLFormElement>, 'onSubmit'>>;
/**
 * Generic form component for updating an object of type T.
 * The form tracks state of the object, and requires the use of a
 * 'submit' button (should be a FormSubmitButton)
 */
export declare const Form: <T extends unknown>({ className, onSubmit, data, hideStatus, children, ...props }: React.PropsWithChildren<FormProps<T>>) => JSX.Element;
