# README

## Content

# spreadjs-api

## Table of contents

### Enumerations

- [MessageActions](enums/MessageActions)

### Classes

- [Db](classes/Db)
- [DocumentServices](classes/DocumentServices)
- [MemoryDb](classes/MemoryDb)
- [ReadSnapshotsRequest](classes/ReadSnapshotsRequest)
- [SubmitRequest](classes/SubmitRequest)
- [TypesManager](classes/TypesManager)

### Interfaces

- [ICommitSnapshot](interfaces/ICommitSnapshot)
- [IContext](interfaces/IContext)
- [ICreateComponent](interfaces/ICreateComponent)
- [ICustomOptions](interfaces/ICustomOptions)
- [IDatabaseAdapter](interfaces/IDatabaseAdapter)
- [IDocConfig](interfaces/IDocConfig)
- [IDocHookContext](interfaces/IDocHookContext)
- [IDocMiddlewareContext](interfaces/IDocMiddlewareContext)
- [IDocMiddlewareContextBase](interfaces/IDocMiddlewareContextBase)
- [IDocReadOpMiddlewareContext](interfaces/IDocReadOpMiddlewareContext)
- [IDocReadSnapshotsMiddlewareContext](interfaces/IDocReadSnapshotsMiddlewareContext)
- [IDocReceiveMiddlewareContext](interfaces/IDocReceiveMiddlewareContext)
- [IDocReplyMiddlewareContext](interfaces/IDocReplyMiddlewareContext)
- [IDocSubmitMiddlewareContext](interfaces/IDocSubmitMiddlewareContext)
- [IDocument](interfaces/IDocument)
- [IErrorData](interfaces/IErrorData)
- [IMilestoneDatabaseAdapter](interfaces/IMilestoneDatabaseAdapter)
- [IOp](interfaces/IOp)
- [IReadOpRequest](interfaces/IReadOpRequest)
- [IReplyMessage](interfaces/IReplyMessage)
- [IRequestMessage](interfaces/IRequestMessage)
- [IRequestMessageExtra](interfaces/IRequestMessageExtra)
- [IRestoreComponent](interfaces/IRestoreComponent)
- [ISnapshot](interfaces/ISnapshot)
- [ISnapshotFragmentsChanges](interfaces/ISnapshotFragmentsChanges)
- [ISnapshotFragmentsRequest](interfaces/ISnapshotFragmentsRequest)
- [ISnapshotMeta](interfaces/ISnapshotMeta)
- [OT\_Type](interfaces/OT_Type)

### Type aliases

- [ISnapshotFragments](README#isnapshotfragments)
- [SnapshotTypes](README#snapshottypes)

### Functions

- [documentFeature](README#documentfeature)

## Type aliases

### <a id="isnapshotfragments" name="isnapshotfragments"></a> ISnapshotFragments

Ƭ **ISnapshotFragments**<`S`\>: `Object`

#### Type parameters

| Name | Type |
| :------ | :------ |
| `S` | `unknown` |

#### Index signature

▪ [key: `string`]: `S`

___

### <a id="snapshottypes" name="snapshottypes"></a> SnapshotTypes

Ƭ **SnapshotTypes**: ``"current"`` \| ``"byVersion"``

## Functions

### <a id="documentfeature" name="documentfeature"></a> documentFeature

▸ **documentFeature**<`S`, `T`\>(`service?`): `IFeature`

Creates a feature for operational transformation (OT) documents.

**`example`**
```javascript
const server = new Server({ httpServer });
server.useFeature(documentFeature());
```

#### Type parameters

| Name | Type |
| :------ | :------ |
| `S` | `unknown` |
| `T` | `unknown` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `service?` | [`DocumentServices`](classes/DocumentServices)<`S`, `T`\> |

#### Returns

`IFeature`

The OT document feature.
