---
displayed_sidebar: servicesSidebar
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# AbstractEventBusModuleService

## Implements

- [`IEventBusModuleService`](../interfaces/IEventBusModuleService.mdx)

## Constructors

### constructor

**new AbstractEventBusModuleService**()

## Properties

<ParameterTypes parameters={[
  {
    "name": "eventToSubscribersMap_",
    "type": "`Map`<`string` \\| `symbol`, [`SubscriberDescriptor`](../types/SubscriberDescriptor.mdx)[]\\>",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

## Accessors

### eventToSubscribersMap

`get` **eventToSubscribersMap**(): `Map`<`string` \| `symbol`, [`SubscriberDescriptor`](../types/SubscriberDescriptor.mdx)[]\>

#### Returns

`Map`<`string` \| `symbol`, [`SubscriberDescriptor`](../types/SubscriberDescriptor.mdx)[]\>

<ParameterTypes parameters={[
  {
    "name": "Map",
    "type": "`Map`<`string` \\| `symbol`, [`SubscriberDescriptor`](../types/SubscriberDescriptor.mdx)[]\\>",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

## Methods

### emit

`Abstract` **emit**<`T`\>(`eventName`, `data`, `options`): `Promise`<`void`\>

<ParameterTypes parameters={[
  {
    "name": "T",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "eventName",
    "type": "`string`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "data",
    "type": "`T`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "options",
    "type": "Record<`string`, `unknown`\\>",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

`Promise`<`void`\>

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "`Promise`<`void`\\>",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

`Abstract` **emit**<`T`\>(`data`): `Promise`<`void`\>

<ParameterTypes parameters={[
  {
    "name": "T",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "data",
    "type": "[`EmitData`](../types/EmitData.mdx)<`T`\\>[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

`Promise`<`void`\>

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "`Promise`<`void`\\>",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### storeSubscribers

`Protected` **storeSubscribers**(`«destructured»`): `void`

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "__namedParameters",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "__namedParameters.event",
    "type": "`string` \\| `symbol`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "__namedParameters.subscriber",
    "type": "[`Subscriber`](../types/Subscriber.mdx)<`unknown`\\>",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "__namedParameters.subscriberId",
    "type": "`string`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

`void`

<ParameterTypes parameters={[
  {
    "name": "void",
    "type": "`void`",
    "optional": true,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### subscribe

**subscribe**(`eventName`, `subscriber`, `context?`): [`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "eventName",
    "type": "`string` \\| `symbol`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "subscriber",
    "type": "[`Subscriber`](../types/Subscriber.mdx)<`unknown`\\>",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[`SubscriberContext`](../types/SubscriberContext.mdx)",
    "description": "",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

[`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)

<ParameterTypes parameters={[
  {
    "name": "AbstractEventBusModuleService",
    "type": "[`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### unsubscribe

**unsubscribe**(`eventName`, `subscriber`, `context`): [`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "eventName",
    "type": "`string` \\| `symbol`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "subscriber",
    "type": "[`Subscriber`](../types/Subscriber.mdx)<`unknown`\\>",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[`SubscriberContext`](../types/SubscriberContext.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

[`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)

<ParameterTypes parameters={[
  {
    "name": "AbstractEventBusModuleService",
    "type": "[`AbstractEventBusModuleService`](AbstractEventBusModuleService.mdx)",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />
