import { type FilesAdapter } from "@vendoai/core"; /** * Build contract ยง3.4 โ€” the ready-made `files:` adapter, for any bucket that * speaks S3: AWS, Cloudflare R2, Supabase Storage, MinIO. Path-style * addressing and SigV4 over WebCrypto, so it runs on an edge target too. * * `createVendo({ files: s3Files({...}) })` and nothing else: this reads no * environment of its own โ€” which credentials reach it is the composition * seam's question (`selectFiles`), never the adapter's. */ export interface S3FilesOptions { /** The bucket's S3 endpoint, origin only โ€” every target has one on its dashboard: R2 `https://.r2.cloudflarestorage.com`, AWS `https://s3..amazonaws.com`, Supabase `https://.supabase.co/storage/v1/s3`, MinIO your own origin. */ endpoint: string; bucket: string; credentials: { accessKeyId: string; secretAccessKey: string; sessionToken?: string; }; /** SigV4 region. Defaults to "auto", which is what R2 requires and MinIO ignores; AWS and Supabase need their real one. */ region?: string; /** Key prefix inside the bucket, so one bucket can hold several deployments. Defaults to none. */ prefix?: string; fetch?: typeof fetch; } export declare function s3Files(options: S3FilesOptions): FilesAdapter; //# sourceMappingURL=s3-files.d.ts.map