> For the complete documentation index, see [llms.txt](https://rangle.gitbook.io/redux-beacon/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rangle.gitbook.io/redux-beacon/index-1/event-definition.md).

# EventDefinition

A `function` that you provide to Redux Beacon for each Redux or ngrx/store action you want to track.

## Syntax

```javascript
function eventDef(action, prevState, nextState) {
  // Return:
  //   - an event object, or
  //   - an array of event objects, or
  //   - a Promise that resolves to an event object, or
  //   - a Promise that resolves to an array of event objects
}
```

### Parameters

* Redux Beacon calls every event definition with three arguments:
  * `action`: The action object.
  * `prevState`: The state before the action.
  * `nextState`: The state after the action.

## Typescript Type

```typescript
import { EventDefinition } from 'redux-beacon';
```

## Usage

* [Getting Started](/redux-beacon/getting-started-redux-users.md)
* [Examples & Recipes](https://github.com/rangle/redux-beacon/tree/323d6a6613ac06fe4c7cc69f80ef9d5cce587b7b/docs/recipes/index.md)
