import { RedisClientLike, SnapshotStore } from "../contracts/orchestrator/snapshot-store.contract.mjs"; //#region ../ai/src/snapshot/redis.d.ts /** * Options for {@link redis}. The `client` is an already-connected redis * client (anything satisfying {@link RedisClientLike}); the store never * connects or quits it — connection lifecycle stays with the caller. */ type RedisSnapshotStoreOptions = { /** Pre-connected redis client. The store only calls `get`/`set`/`del`. */client: RedisClientLike; /** * Key prefix prepended to each `runId`. Defaults to * `warlock:supervisor:snapshot:`. */ prefix?: string; }; /** * Create a Redis-backed {@link SnapshotStore}. Pass a connected redis * client — the store never connects or quits it. * * Note: this store does not implement the optional `list()` — the * structural client surface has no `SCAN`/`KEYS`. Use a checkpoint store * for the production boot-drain loop where enumeration is needed. * * @example * import { createClient } from "redis"; * import { ai } from "@warlock.js/ai"; * * const client = createClient({ url: process.env.REDIS_URL }); * await client.connect(); * * const orchestrator = ai.orchestrator({ * name: "support", * intents: { ... }, * iterate: true, * snapshotStore: ai.snapshot.redis({ client }), * }); */ declare function redis(options: RedisSnapshotStoreOptions): SnapshotStore; //#endregion export { RedisSnapshotStoreOptions, redis }; //# sourceMappingURL=redis.d.mts.map