# Interface: SyncEngine

Defined in: [packages/core/src/sync/sync-engine.ts:88](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L88)

## Methods

### addPeer()

```ts
addPeer(peerId): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:100](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L100)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `peerId` | `string` |

#### Returns

`void`

***

### ask()

```ts
ask(collection, ids): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:98](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L98)

Asks every peer that holds the collection for these versions, by id, ahead of the rest

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `collection` | `string` |
| `ids` | readonly `string`[] |

#### Returns

`void`

***

### handleMessage()

```ts
handleMessage(peerId, message): Promise<void>;
```

Defined in: [packages/core/src/sync/sync-engine.ts:92](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L92)

Handles whatever a peer sent; anything that is not a sync message this peer speaks is ignored.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `peerId` | `string` |
| `message` | `unknown` |

#### Returns

`Promise`\<`void`\>

***

### levelWith()

```ts
levelWith(peerId): boolean;
```

Defined in: [packages/core/src/sync/sync-engine.ts:96](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L96)

Whether the peer was last found level with this node, and this node has taken in nothing since

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `peerId` | `string` |

#### Returns

`boolean`

***

### notifyPeers()

```ts
notifyPeers(peers): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:94](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L94)

Says hello to these peers now, rather than at the next heartbeat.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `peers` | readonly `string`[] |

#### Returns

`void`

***

### off()

```ts
off<K>(event, callback): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:103](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L103)

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-k"></a> `K` *extends* keyof `SyncEvents` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `event` | `K` |
| `callback` | `SyncEvents`\[`K`\] |

#### Returns

`void`

***

### on()

```ts
on<K>(event, callback): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:102](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L102)

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-k-1"></a> `K` *extends* keyof `SyncEvents` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `event` | `K` |
| `callback` | `SyncEvents`\[`K`\] |

#### Returns

`void`

***

### onLocalChange()

```ts
onLocalChange(version): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:99](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L99)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `version` | [`Version`](https://minca.dev/api/core/interfaces/Version.md) |

#### Returns

`void`

***

### removePeer()

```ts
removePeer(peerId): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:101](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L101)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `peerId` | `string` |

#### Returns

`void`

***

### start()

```ts
start(): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:89](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L89)

#### Returns

`void`

***

### stop()

```ts
stop(): void;
```

Defined in: [packages/core/src/sync/sync-engine.ts:90](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-engine.ts#L90)

#### Returns

`void`
