import type { BlobRef, BlobStorage, StoreBlobOptions } from "./types.js"; export interface VeryfrontCloudBlobStorageConfig { /** Veryfront API base URL. Defaults to the current Veryfront Cloud bootstrap. */ apiBaseUrl?: string; /** Explicit Veryfront auth token or API key override. */ apiToken?: string; /** Project slug override. Defaults to request-scoped or env bootstrap. */ projectSlug?: string; /** Upload path prefix inside the project's uploads store. */ prefix?: string; /** Default TTL in seconds for new blobs. Stored in sidecar metadata only. */ defaultTtl?: number; /** Requested TTL in seconds for signed download URLs. */ downloadTtl?: number; /** Time source for tests. */ now?: () => Date; /** Full-operation outbound deadline, including response-body consumption. */ requestTimeoutMs?: number; /** Maximum decoded API or signed-download response body size. */ maxResponseBytes?: number; /** Maximum bytes accepted for one blob upload, including streamed input. */ maxUploadBytes?: number; } export declare class VeryfrontCloudBlobStorage implements BlobStorage { private config; constructor(config?: VeryfrontCloudBlobStorageConfig); put(data: string | Uint8Array | Blob | ReadableStream, options?: StoreBlobOptions): Promise; getStream(id: string): Promise; getText(id: string): Promise; getBytes(id: string): Promise; delete(id: string): Promise; exists(id: string): Promise; stat(id: string): Promise; /** * Enumerate blobs under this store's prefix, newest first. The list endpoint * (`GET /projects/{slug}/uploads`) carries only paths — the original filename * lives in each blob's sidecar — so ids are recovered from the `.blob` data * paths and enriched via {@link stat} (one extra request per blob). Suitable * for an uploads panel; not a hot path. * * Note: a single page is fetched. If the project accumulates more uploads than * one page, pagination will need wiring here. */ list(): Promise; private resolveConfig; private getDataPath; private getMetadataPath; private uploadFile; private getUploadMetadata; private deleteUpload; private getDownloadUrl; private downloadUpload; private downloadUploadText; private requestJson; } //# sourceMappingURL=veryfront-cloud-storage.d.ts.map