/**
 * recordedChat — the session-scoped turn recorder.
 *
 * `recordedChat({ makeAgent })` returns a `RecordedChat`: `send()` runs one
 * recorded turn through the consumer's agent factory and freezes that turn's
 * evidence immediately; `reason(k)` / `rerunTurn(k)` / `fork(k)` are the
 * per-turn transparency loop, composing with the existing context-bisect
 * surface (`localizeContextBug`, `rerunWithoutSources`) rather than
 * duplicating it. See `./types.ts` for the three traps this owns.
 *
 * Compose-don't-inherit house style: a module-private session class,
 * factory-returned; no base classes.
 */
import type { RecordedChat, RecordedChatOptions } from './types.js';
/**
 * Record a chat turn-by-turn so any reply can be explained, counterfactually
 * re-run, and forked — without re-writing the correctness-critical glue every
 * chat host gets subtly wrong. See the [recordedChat guide](doc:recorded-chat).
 */
export declare function recordedChat(options: RecordedChatOptions): RecordedChat;
