# `ASM.Extensions.Persistence.FileStore`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/extensions/persistence/file_store.ex#L1)

Durable append-only event store backed by a local file.

Events are persisted as Base64-encoded Erlang terms (one line per event) and
reconstructed on startup for replay/rebuild operations.

# `event_queue`

```elixir
@type event_queue() :: :queue.queue(ASM.Event.t())
```

# `t`

```elixir
@type t() :: %ASM.Extensions.Persistence.FileStore{
  by_session: %{optional(String.t()) =&gt; event_queue()},
  by_session_event_ids: %{optional(String.t()) =&gt; MapSet.t(String.t())},
  events: event_queue(),
  path: String.t(),
  seen_event_ids: MapSet.t(String.t()),
  sync_writes: boolean()
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

---

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