import { Adapter, FilesError } from '../index.js'; interface BunS3OperationOptions { bucket?: string; region?: string; accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; endpoint?: string; virtualHostedStyle?: boolean; type?: string; contentDisposition?: string; } interface BunS3PresignOptions extends BunS3OperationOptions { expiresIn?: number; method?: "GET" | "POST" | "PUT" | "DELETE" | "HEAD"; } interface BunS3Stats { size: number; lastModified: Date; etag: string; type: string; } interface BunS3ListObjectsOptions { prefix?: string; continuationToken?: string; delimiter?: string; maxKeys?: number; startAfter?: string; encodingType?: "url"; fetchOwner?: boolean; } interface BunS3ListObjectsResponse { contents?: { eTag?: string; key: string; lastModified?: string | Date; size?: number; }[]; isTruncated?: boolean; nextContinuationToken?: string; } type BunS3WritableBody = string | ArrayBuffer | ArrayBufferView | Blob | Request | Response; interface BunS3FileLike { bytes?(): Promise; arrayBuffer(): Promise; stream(): ReadableStream; stat(): Promise; } interface BunS3ClientLike { file(path: string): BunS3FileLike; write(path: string, data: BunS3WritableBody, options?: BunS3OperationOptions): Promise; delete(path: string): Promise; exists(path: string): Promise; stat(path: string): Promise; list(input?: BunS3ListObjectsOptions | null): Promise; presign(path: string, options?: BunS3PresignOptions): string; } interface BunS3AdapterOptions { client?: BunS3ClientLike; bucket?: string; region?: string; endpoint?: string; virtualHostedStyle?: boolean; accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; publicBaseUrl?: string; defaultUrlExpiresIn?: number; } type BunS3Adapter = Adapter & { readonly bucket?: string; }; declare const mapBunS3Error: (err: unknown) => FilesError; declare const bunS3: (opts?: BunS3AdapterOptions) => BunS3Adapter; export { type BunS3Adapter, type BunS3AdapterOptions, type BunS3ClientLike, type BunS3FileLike, type BunS3ListObjectsOptions, type BunS3ListObjectsResponse, type BunS3OperationOptions, type BunS3PresignOptions, type BunS3Stats, type BunS3WritableBody, bunS3, mapBunS3Error };