import { FileKeyEncoded, FileKeyParts } from "../keys.js"; //#region src/storage/types.d.ts type UploadTransport = "direct" | "proxy"; type UploadMode = "single" | "multipart"; interface StorageAdapterCapabilities { directUpload: boolean; multipartUpload: boolean; signedDownload: boolean; proxyUpload: boolean; } type UploadChecksum = { algo: "sha256" | "md5"; value: string; }; interface StorageAdapterLimits { maxSingleUploadBytes?: number; maxMultipartUploadBytes?: number; minMultipartPartSizeBytes?: number; maxMultipartPartSizeBytes?: number; maxMultipartParts?: number; maxStorageKeyLengthBytes?: number; maxMetadataBytes?: number; } interface StorageAdapterRecommendations { uploadExpiresInSeconds?: number; signedUrlExpiresInSeconds?: number; directUploadThresholdBytes?: number; multipartThresholdBytes?: number; multipartPartSizeBytes?: number; } interface StorageAdapter { name: string; capabilities: StorageAdapterCapabilities; limits?: StorageAdapterLimits; recommendations?: StorageAdapterRecommendations; resolveStorageKey(input: { fileKey: FileKeyEncoded; fileKeyParts: FileKeyParts; }): string; initUpload(input: { fileKey: FileKeyEncoded; fileKeyParts: FileKeyParts; sizeBytes: bigint; contentType: string; checksum?: UploadChecksum | null; metadata?: Record | null; }): Promise<{ strategy: "direct-single" | "direct-multipart" | "proxy"; storageKey: string; storageUploadId?: string; partSizeBytes?: number; expiresAt: Date; uploadUrl?: string; uploadHeaders?: Record; }>; getPartUploadUrls?(input: { storageKey: string; storageUploadId: string; partNumbers: number[]; partSizeBytes: number; }): Promise<{ partNumber: number; url: string; headers?: Record; }[]>; completeMultipartUpload?(input: { storageKey: string; storageUploadId: string; parts: { partNumber: number; etag: string; }[]; }): Promise<{ etag?: string; }>; abortMultipartUpload?(input: { storageKey: string; storageUploadId: string; }): Promise; writeStream?(input: { storageKey: string; body: ReadableStream; contentType?: string | null; sizeBytes?: bigint | null; }): Promise<{ etag?: string; sizeBytes?: bigint; }>; finalizeUpload?(input: { storageKey: string; expectedSizeBytes: bigint; checksum?: UploadChecksum | null; }): Promise<{ sizeBytes?: bigint; etag?: string; }>; deleteObject(input: { storageKey: string; }): Promise; getDownloadUrl?(input: { storageKey: string; expiresInSeconds: number; contentDisposition?: string; contentType?: string; }): Promise<{ url: string; headers?: Record; expiresAt: Date; }>; getDownloadStream?(input: { storageKey: string; }): Promise; } //# sourceMappingURL=types.d.ts.map //#endregion export { StorageAdapter, StorageAdapterCapabilities, StorageAdapterLimits, StorageAdapterRecommendations, UploadChecksum, UploadMode, UploadTransport }; //# sourceMappingURL=types.d.ts.map