1import * as Effect from "effect/Effect";
2import * as Binding from "../../Binding.ts";
3import type { Bucket } from "./Bucket.ts";
4import type { ReadBucketClient } from "./ReadBucket.ts";
5import type { WriteBucketClient } from "./WriteBucket.ts";
6
7/**
8 * @binding
9 * @product R2
10 * @category Storage & Databases
11 */
12export interface ReadWriteBucket extends Binding.Service<
13 ReadWriteBucket,
14 "Cloudflare.R2.ReadWriteBucket",
15 (bucket: Bucket) => Effect.Effect<ReadWriteBucketClient>
16> {}
17
18export const ReadWriteBucket = Binding.Service<ReadWriteBucket>(
19 "Cloudflare.R2.ReadWriteBucket",
20);
21
22export interface ReadWriteBucketClient
23 extends ReadBucketClient, WriteBucketClient {}