import * as React from 'react';
import { FormTypes, SubmissionTypes } from '@oneblink/types';
import { ExecutedLookups, SectionState } from '../types/form';
/**
* This function is a simple wrapper around the react hook `useState()`. The
* results can be passed to the [``](https://oneblink.github.io/apps-react/functions/OneBlinkForm.html)
* component.
*
* ## Example
*
* ```js
* import {
* useFormSubmissionState,
* OneBlinkFormControlled,
* } from '@oneblink/apps-react'
*
* function Uncontrolled({ form, initialSubmission, ...props }) {
* const [{ definition, submission }, setFormSubmission] =
* useFormSubmissionState(form, initialSubmission)
*
* return (
*
* )
* }
* ```
*
* @param form The OneBlink Form to render
* @param initialSubmission The initial submission data to populate the form
* with
* @param lastElementUpdated
* @returns
* @group Hooks
*/
export default function useFormSubmissionState(form: FormTypes.Form, initialSubmission?: SubmissionTypes.S3SubmissionData['submission'], lastElementUpdated?: FormTypes.FormElement, sectionState?: SectionState): [{
definition: FormTypes.Form;
submission: SubmissionTypes.S3SubmissionData["submission"];
lastElementUpdated: FormTypes.FormElement | undefined;
executedLookups: ExecutedLookups;
sectionState: SectionState | undefined;
}, React.Dispatch>];