//#region src/r2-binding.d.ts
interface R2HttpMetadata {
  contentType?: string;
  cacheControl?: string;
}
interface R2PutOptions {
  httpMetadata?: R2HttpMetadata;
  customMetadata?: Record<string, string>;
}
interface R2PutResult {
  key: string;
  size: number;
  etag: string;
}
interface R2PutBucket {
  put(key: string, value: ReadableStream | ArrayBuffer | ArrayBufferView | string | null | Blob, options?: R2PutOptions): Promise<R2PutResult>;
}
/** Thin adapter over the native Workers `R2Bucket.put` binding. */
declare function putObject(bucket: R2PutBucket, key: string, body: ReadableStream | ArrayBuffer | ArrayBufferView | string | null | Blob, opts?: R2PutOptions): Promise<R2PutResult>;
//#endregion
export { R2HttpMetadata, R2PutBucket, R2PutOptions, R2PutResult, putObject };