<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [XBus](./x-components.xbus.md)

## XBus interface

Event bus to emit and subscribe to events.

**Signature:**

```typescript
export interface XBus<SomeEvents extends Dictionary, SomeEventMetadata extends Dictionary> 
```

## Properties

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [emit](./x-components.xbus.emit.md) |  | (&lt;SomeEvent extends keyof SomeEvents&gt;(event: SomeEvent) =&gt; Promise&lt;[EmittedData](./x-components.emitteddata.md)<!-- -->&lt;SomeEvents, SomeEvent, SomeEventMetadata&gt;&gt;) \| (&lt;SomeEvent extends keyof SomeEvents&gt;(event: SomeEvent, payload: [EventPayload](./x-components.eventpayload.md)<!-- -->&lt;SomeEvents, SomeEvent&gt;, metadata?: SomeEventMetadata) =&gt; Promise&lt;[EmittedData](./x-components.emitteddata.md)<!-- -->&lt;SomeEvents, SomeEvent, SomeEventMetadata&gt;&gt;) | Emits an event with the <code>void</code> type associated as payload. |
|  [on](./x-components.xbus.on.md) |  | &lt;SomeEvent extends keyof SomeEvents&gt;(event: SomeEvent, withMetadata?: boolean) =&gt; typeof withMetadata extends true ? Observable&lt;[SubjectPayload](./x-components.subjectpayload.md)<!-- -->&lt;[EventPayload](./x-components.eventpayload.md)<!-- -->&lt;SomeEvents, SomeEvent&gt;, SomeEventMetadata&gt;&gt; : Observable&lt;[EventPayload](./x-components.eventpayload.md)<!-- -->&lt;SomeEvents, SomeEvent&gt;&gt; | Retrieves an observable for an event. |

