# types.TmuxEvent

- **Module:** types
- **Package:** libtmux
- **Language:** TypeScript
- **Kind:** typealias
- **Source:** https://github.com/libtmux/libtmux-ts/blob/46cccfef2a546de55ce8b308249b8c76339089a0/packages/libtmux/src/types.ts#L875
- **Page:** https://libtmux.org/en/ts/latest/reference/types-tmuxevent/

```ts
type TmuxEvent = | TmuxClientDetachedEvent
| TmuxClientSessionChangedEvent
| TmuxExitEvent
| TmuxLayoutChangeEvent
| TmuxMessageEvent
| TmuxOutputEvent
| TmuxPaneFlowEvent
| TmuxPaneModeChangedEvent
| TmuxPasteBufferEvent
| TmuxReconnectedEvent
| TmuxReconnectingEvent
| TmuxSessionEvent
| TmuxSessionWindowChangedEvent
| TmuxSessionsChangedEvent
| TmuxSubscriptionEvent
| TmuxUnknownEvent
| TmuxWindowLifecycleEvent
| TmuxWindowPaneChangedEvent
| TmuxWindowRenamedEvent
```

Anything a control-mode connection can deliver, as one discriminated union.

tmux pushes these; nothing here asked for them, and they arrive interleaved
with command replies. The union is open in practice — an unrecognised
notification arrives as [`TmuxUnknownEvent`](/en/ts/latest/reference/types-tmuxunknownevent/) rather than being dropped,
so a `switch` should still have a default.
