<!-- 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

<table><thead><tr><th>

Property


</th><th>

Modifiers


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[emit](./x-components.xbus.emit.md)


</td><td>


</td><td>

(&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;)


</td><td>

Emits an event with the `void` type associated as payload.


</td></tr>
<tr><td>

[on](./x-components.xbus.on.md)


</td><td>


</td><td>

&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;


</td><td>

Retrieves an observable for an event.


</td></tr>
</tbody></table>

