# Запись кэша (CacheEntry) — API

Базовый реактивный контейнер, хранящий произвольное состояние `TState` с автоматической сборкой мусора (GC).


## Опции

| Опция                | Тип                         | По умолчанию        | Описание                                                                                                |
|----------------------|-----------------------------|---------------------|---------------------------------------------------------------------------------------------------------|
| `initialState`       | `TState`                    | (Обязательное поле) | Начальное состояние. Устанавливается при создании записи.                                               |
| `retentionTime`      | `number \| false`           | (Обязательное поле) | Время (мс) удержания записи после отписки последнего подписчика. `false` — не удалять.                  |
| `devtoolsKey`        | `string`                    | (Обязательное поле) | Ключ для отображения в DevTools.                                                                        |
| `beforeDevtoolsPush` | `(state: TState) => TState` | —                   | Функция для изменения состояния перед отправкой в DevTools. Полезно для удаления чувствительных данных. |


## Свойства

| Свойство     | Тип                    | Описание                                                                     |
|--------------|------------------------|------------------------------------------------------------------------------|
| `state$`     | `ReadonlySignal<TState>` | Реактивный сигнал текущего состояния. Обновляется при каждом `set()`.        |
| `completed$` | `Subject<void>`        | Срабатывает один раз при удалении записи. Используется для очистки подписок. |


## Методы

| Метод      | Параметры      | Возвращаемое значение | Описание                                              |
|------------|----------------|-----------------------|-------------------------------------------------------|
| `peek`     | —              | `TState`              | Синхронный снимок состояния без реактивной подписки.  |
| `set`      | `state: TState`| `void`                | Обновляет состояние. Игнорируется после `complete()`. |
| `complete` | —              | `void`                | Завершает жизненный цикл.                             |


## См. также

- [QueryCacheEntry — API](./_QueryCacheEntry.md) — расширение CacheEntry для query-слоя
- [Кэш (концепция)](../concepts/cache.md) — общая архитектура кэша
- [Машина состояний](../concepts/machine.md) — жизненный цикл состояния записи
- [Архитектура](../concepts/architecture.md) — обзор архитектуры query-модуля
