# `ClaudeAgentSDK.Streaming.Termination`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.9.2/lib/claude_agent_sdk/streaming/termination.ex#L1)

Shared termination logic for streaming sessions.

Tracks stop_reason updates and determines when a message should complete.

# `stop_reason`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.9.2/lib/claude_agent_sdk/streaming/termination.ex#L8)

```elixir
@type stop_reason() :: String.t() | nil
```

# `reduce`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.9.2/lib/claude_agent_sdk/streaming/termination.ex#L37)

```elixir
@spec reduce([map()], stop_reason()) :: {stop_reason(), boolean()}
```

# `step`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.9.2/lib/claude_agent_sdk/streaming/termination.ex#L11)

```elixir
@spec step(map(), stop_reason()) :: {stop_reason(), boolean()}
```

---

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