# Interface: Emitter\<Events\>

Defined in: [packages/core/src/utils/events.ts:10](https://github.com/leifriksheim/minca/blob/main/core/src/utils/events.ts#L10)

Its methods close over their listeners, so they can be passed around unbound.

## Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-events"></a> `Events` *extends* `{ [K in keyof Events]: Listener }` |

## Methods

### emit()

```ts
emit<K>(
   this, 
   event, 
   ...args
): void;
```

Defined in: [packages/core/src/utils/events.ts:14](https://github.com/leifriksheim/minca/blob/main/core/src/utils/events.ts#L14)

Calls every listener; one that throws is reported and does not stop the rest.

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-k"></a> `K` *extends* `string` \| `number` \| `symbol` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `this` | `void` |
| `event` | `K` |
| ...`args` | `Parameters`\<`Events`\[`K`\]\> |

#### Returns

`void`

***

### off()

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

Defined in: [packages/core/src/utils/events.ts:12](https://github.com/leifriksheim/minca/blob/main/core/src/utils/events.ts#L12)

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-k-1"></a> `K` *extends* `string` \| `number` \| `symbol` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `this` | `void` |
| `event` | `K` |
| `callback` | `Events`\[`K`\] |

#### Returns

`void`

***

### on()

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

Defined in: [packages/core/src/utils/events.ts:11](https://github.com/leifriksheim/minca/blob/main/core/src/utils/events.ts#L11)

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-k-2"></a> `K` *extends* `string` \| `number` \| `symbol` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `this` | `void` |
| `event` | `K` |
| `callback` | `Events`\[`K`\] |

#### Returns

`void`
