# Interface: SpaceManager

Defined in: [packages/core/src/space/space-manager.ts:135](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L135)

## Methods

### addKeys()

```ts
addKeys(
   spaceId, 
   keys, 
   current
): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:156](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L156)

Adds keys of a space to what this node holds, and makes `current` the
one it writes with. Keys already held are kept.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |
| `keys` | readonly [`SpaceKey`](https://minca.dev/api/core/interfaces/SpaceKey.md)[] |
| `current` | `string` |

#### Returns

`Promise`\<`void`\>

***

### clearInvite()

```ts
clearInvite(spaceId): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:149](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L149)

Forgets an invite's secret once it has been used

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |

#### Returns

`Promise`\<`void`\>

***

### create()

```ts
create(params): Promise<SpaceRecord>;
```

Defined in: [packages/core/src/space/space-manager.ts:136](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L136)

#### Parameters

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

#### Returns

`Promise`\<[`SpaceRecord`](https://minca.dev/api/core/interfaces/SpaceRecord.md)\>

***

### createInvite()

```ts
createInvite(
   spaceId, 
   signer, 
   options?
): Promise<string>;
```

Defined in: [packages/core/src/space/space-manager.ts:141](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L141)

Signs an invitation to a space, with its key if private, and writes it with an invite's secret if given

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |
| `signer` | `LooseSigner` |
| `options?` | [`InviteLinkOptions`](https://minca.dev/api/core/interfaces/InviteLinkOptions.md) |

#### Returns

`Promise`\<`string`\>

***

### get()

```ts
get(spaceId): Promise<SpaceRecord | null>;
```

Defined in: [packages/core/src/space/space-manager.ts:137](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L137)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |

#### Returns

`Promise`\<[`SpaceRecord`](https://minca.dev/api/core/interfaces/SpaceRecord.md) \| `null`\>

***

### join()

```ts
join(invite): Promise<SpaceRecord>;
```

Defined in: [packages/core/src/space/space-manager.ts:147](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L147)

Stores a space received as an invite, so it can be opened and synced.
Refuses a space whose id does not match what it says about itself, and
a key that does not belong to it. An invite's secret is held until it is used.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `invite` | `string` |

#### Returns

`Promise`\<[`SpaceRecord`](https://minca.dev/api/core/interfaces/SpaceRecord.md)\>

***

### list()

```ts
list(): Promise<readonly SpaceRecord[]>;
```

Defined in: [packages/core/src/space/space-manager.ts:138](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L138)

#### Returns

`Promise`\<readonly [`SpaceRecord`](https://minca.dev/api/core/interfaces/SpaceRecord.md)[]\>

***

### remove()

```ts
remove(spaceId): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:139](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L139)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |

#### Returns

`Promise`\<`void`\>

***

### setMemberKey()

```ts
setMemberKey(spaceId, memberKey): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:158](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L158)

Keeps this account's member key for a space (`SpaceRecord.memberKey`)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |
| `memberKey` | `Uint8Array` |

#### Returns

`Promise`\<`void`\>

***

### setRelays()

```ts
setRelays(spaceId, relays): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:160](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L160)

Keeps where the space's members meet (`SpaceRecord.relays`)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |
| `relays` | readonly `string`[] |

#### Returns

`Promise`\<`void`\>

***

### setRole()

```ts
setRole(spaceId, role): Promise<void>;
```

Defined in: [packages/core/src/space/space-manager.ts:151](https://github.com/leifriksheim/minca/blob/main/core/src/space/space-manager.ts#L151)

Remembers the role this account holds, for listing

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `spaceId` | `string` |
| `role` | `string` \| `null` |

#### Returns

`Promise`\<`void`\>
