# `AshStateMachine`
[🔗](https://github.com/ash-project/ash_state_machine/blob/v0.2.13/lib/ash_state_machine.ex#L5)

Provides tools for defining and working with resource-backed state machines.

# `possible_next_states`

```elixir
@spec possible_next_states(Ash.Resource.record()) :: [atom()]
```

A reusable helper which returns all possible next states for a record
(regardless of action).

# `possible_next_states`

```elixir
@spec possible_next_states(Ash.Resource.record(), atom()) :: [atom()]
```

A reusable helper which returns all possible next states for a record given a
specific action.

# `state_machine`
*macro* 

# `transition_state`

A utility to transition the state of a changeset, honoring the rules of the resource.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
