1import type * as Effect from "effect/Effect";
2import * as Binding from "../../Binding.ts";
3import type { WriteClient } from "../../Redis/index.ts";
4import type { Instance } from "./Instance.ts";
5
6/**
7 * Bind a Memorystore {@link Instance} with write access.
8 *
9 * Uses the shared `alchemy/Redis` RESP client. Provide
10 * {@link WriteRedisHttp}.
11 *
12 * @binding
13 * @category Redis
14 */
15export interface WriteRedis extends Binding.Service<
16 WriteRedis,
17 "GCP.Redis.WriteRedis",
18 (instance: Instance) => Effect.Effect<WriteRedisClient>
19> {}
20
21export const WriteRedis = Binding.Service<WriteRedis>("GCP.Redis.WriteRedis");
22
23export type WriteRedisClient = WriteClient;