> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Module: formisch

> Formisch bound to one recoverable Bijection operation request.

Formisch bound to one recoverable Bijection operation request.

Formisch owns live input, fields, schema validation and its error
presentation; Bijection owns the durable draft, the captured request,
retries and recovery.

## Type Aliases

### Op

Ƭ **Op**: [`OperationReference`](https://docs.bijection.com/api/modules/server#operationreference)\<`"public"`, `any`, `any`>

Not exported: an exported type refers to it.

***

### FormischInput

Ƭ **FormischInput**\<`TSchema`>: `PartialValues`\<`v.InferInput`\<`TSchema`>>

Formisch's editable input: possibly incomplete, so an unfilled field is
absent rather than a validated value.

#### Type parameters

| Name | Type |
| :- | :- |
| `TSchema` | extends `FormSchema` |

***

### Retained

Ƭ **Retained**\<`T`>: `T` extends [`Value`](https://docs.bijection.com/api/modules/values#value) ? `T` : `never`

Not exported: an exported type refers to it.

#### Type parameters

| Name |
| :- |
| `T` |

***

### FormischBindingOptions

Ƭ **FormischBindingOptions**\<`O`, `TSchema`>: `Omit`\<[`UseOperationBindingOptions`](https://docs.bijection.com/api/modules/react#useoperationbindingoptions)\<`O`, [`Retained`](https://docs.bijection.com/api/modules/formisch#retained)\<[`FormischInput`](https://docs.bijection.com/api/modules/formisch#formischinput)\<`TSchema`>>, `v.InferOutput`\<`TSchema`>>, `"editor"`> & \{ `form`: `FormConfig`\<`TSchema`>  }

#### Type parameters

| Name | Type |
| :- | :- |
| `O` | extends [`Op`](https://docs.bijection.com/api/modules/formisch#op) |
| `TSchema` | extends `FormSchema` |

## Functions

### useFormischBinding

▸ **useFormischBinding**\<`O`, `TSchema`>(`operation`, `options`): `Object`

Create a Formisch form and bind it to one recoverable operation request.
`form` is Formisch's own store: render its `Field`s and call its methods
as usual. Formisch documents no change subscription, so the binding
observes the whole input as the component that calls this hook renders;
the binding also reads the input directly before every attempt and
capture. A validator exception is reported by Formisch as a form error and
reaches the binding as invalid input.

#### Type parameters

| Name | Type |
| :- | :- |
| `O` | extends [`Op`](https://docs.bijection.com/api/modules/formisch#op) |
| `TSchema` | extends `FormSchema` |

#### Parameters

| Name | Type |
| :- | :- |
| `operation` | `O` |
| `options` | [`FormischBindingOptions`](https://docs.bijection.com/api/modules/formisch#formischbindingoptions)\<`O`, `TSchema`> |

#### Returns

`Object`

| Name | Type |
| :- | :- |
| `form` | `FormStore`\<`TSchema`> |
| `binding` | [`MountedOperationBinding`](https://docs.bijection.com/api/modules/react#mountedoperationbinding)\<`O`, [`Retained`](https://docs.bijection.com/api/modules/formisch#retained)\<[`FormischInput`](https://docs.bijection.com/api/modules/formisch#formischinput)\<`TSchema`>>> |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.