# Type Alias: SyncFormula\<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT>

> **SyncFormula**\<`K`, `L`, `ParamDefsT`, `SchemaT`, `ContextT`, `PermissionsContextT`> = [`SyncFormulaDef`](../../interfaces/SyncFormulaDef/)\<`K`, `L`, `ParamDefsT`, `SchemaT`, `ContextT`, `PermissionsContextT`> & `object`

Defined in: [api.ts:1476](https://github.com/coda/packs-sdk/blob/44f7744bb692307d51cf2020a7058f343a7e25e8/api.ts#L1476)

The result of defining the formula that implements a sync table.

There is no need to use this type directly. You provide a [SyncFormulaDef](../../interfaces/SyncFormulaDef/) as an input to [makeSyncTable](../../functions/makeSyncTable/) which outputs definitions of this type.

## Type Declaration

| Name | Type | Defined in | | --- | --- | --- | | `isSyncFormula` | `true` | [api.ts:1485](https://github.com/coda/packs-sdk/blob/44f7744bb692307d51cf2020a7058f343a7e25e8/api.ts#L1485) | | `resultType` | `TypeOf`\<[`SchemaType`](../SchemaType/)\<`SchemaT`>> | [api.ts:1484](https://github.com/coda/packs-sdk/blob/44f7744bb692307d51cf2020a7058f343a7e25e8/api.ts#L1484) | | `schema?` | [`ArraySchema`](../../interfaces/ArraySchema/) | [api.ts:1486](https://github.com/coda/packs-sdk/blob/44f7744bb692307d51cf2020a7058f343a7e25e8/api.ts#L1486) | | `supportsUpdates?` | `boolean` | [api.ts:1487](https://github.com/coda/packs-sdk/blob/44f7744bb692307d51cf2020a7058f343a7e25e8/api.ts#L1487) |

## Type Parameters

| Type Parameter | | --- | | `K` *extends* `string` | | `L` *extends* `string` | | `ParamDefsT` *extends* [`ParamDefs`](../ParamDefs/) | | `SchemaT` *extends* `ObjectSchema`\<`K`, `L`> | | `ContextT` *extends* [`SyncExecutionContext`](../../interfaces/SyncExecutionContext/)\<`any`, `any`> | | `PermissionsContextT` *extends* `SyncPassthroughData` |
