import * as React from "react"; import * as PropTypes from "prop-types"; import { Model, ModelError } from "../Model"; import { FormContext } from "./FormContext"; import { FormProps } from "./FormProps"; export interface FormState { model: M; mounted: { [key: string]: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement; }; isLoading: boolean; } export declare class Form extends React.Component & FormProps, FormState> { static readonly childContextTypes: { values: PropTypes.Validator; addError: PropTypes.Validator; getError: PropTypes.Validator; onChange: PropTypes.Validator; onMount: PropTypes.Validator; onUnmount: PropTypes.Validator; onReset: PropTypes.Validator; readonly validate: PropTypes.Validator; readonly getDOMElement: PropTypes.Validator; isLoading: PropTypes.Validator; }; static readonly propTypes: { instantiate: PropTypes.Validator; method?: PropTypes.Validator | undefined; onSubmit?: PropTypes.Validator | undefined; storageKey?: PropTypes.Validator | undefined; resetAfterSubmit?: PropTypes.Validator | undefined; afterSubmit?: PropTypes.Validator | undefined; storage?: PropTypes.Validator | undefined; onValidate?: PropTypes.Validator | undefined; formRef?: PropTypes.Validator | undefined; }; state: FormState; storage: Pick | undefined; constructor(props: FormProps); getChildContext(): FormContext; componentDidMount(): Promise; componentWillUnmount(): Promise; handleSubmit: (event?: Event | undefined) => Promise; render(): JSX.Element; getDOMElement: (attr: string) => HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | undefined; loadFromStorage(): boolean; pushToStorage(): void; protected handleChange: (attribute: string, value: any) => void; protected handleMount: (attribute: string, element: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement) => void; protected handleUnmount: (attribute: string) => void; protected handleReset: () => void; protected validate: (group?: string | undefined) => Promise; protected handleErrorAdded: (newError: ModelError) => void; }