---
displayed_sidebar: servicesSidebar
---

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

# AbstractEventBusModuleService

## Implements

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

## constructor

`**new AbstractEventBusModuleService**()`

___

## Properties

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

___

## Accessors

### eventToSubscribersMap

`get**eventToSubscribersMap**(): Map&#60;string \| symbol, [SubscriberDescriptor](../types/SubscriberDescriptor.mdx)[]&#62;`

#### Returns

Map&#60;string \| symbol, [SubscriberDescriptor](../types/SubscriberDescriptor.mdx)[]&#62;

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

___

## Methods

### emit

`Abstract **emit**<TypeParameter T>(eventName, data, options): Promise&#60;void&#62;`

#### Type Parameters

<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&#60;void&#62;

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;void&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

`Abstract **emit**<TypeParameter T>(data): Promise&#60;void&#62;`

#### Type Parameters

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

#### Parameters

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

#### Returns

Promise&#60;void&#62;

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;void&#62;",
    "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)&#60;unknown&#62;",
    "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)&#60;unknown&#62;",
    "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)&#60;unknown&#62;",
    "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": []
  }
]} />
