import { Readable } from "stream";
import { Blob, BlobOptions, BlobResponse, BlobStorage, DeleteBlobResult, ListBlobsOptions, ListBlobsResponse } from "./types.js";
/**
 * Implementation of Blob interface for remote cloud storage
 */
export declare class RemoteBlob<T> implements Blob<T> {
    private key;
    private baseUrl;
    private apiKey;
    private org;
    private project;
    private environment;
    constructor(key: string, baseUrl: string, apiKey: string, org: string, project: string, environment: string);
    getJSON(): Promise<T | null>;
    getString(): Promise<string | null>;
    getRaw(): Promise<BlobResponse<Buffer> | null>;
    getStream(): Promise<Readable>;
    putJSON(value: T, options?: BlobOptions): Promise<{
        etag: string;
    }>;
    putString(value: string, options?: BlobOptions): Promise<{
        etag: string;
    }>;
    /**
     * Put raw binary data into the blob.
     * @param value The binary data to store
     * @param options Optional metadata and content type
     */
    putRaw(value: Buffer, options?: BlobOptions): Promise<{
        etag: string;
    }>;
    putStream(stream: Readable, options?: BlobOptions): Promise<{
        etag: string;
    }>;
    delete(): Promise<void>;
    exists(): Promise<boolean>;
    getMetadata(): Promise<Record<string, string> | null>;
    updateMetadata(metadata: Record<string, string>, options?: BlobOptions): Promise<void>;
}
/**
 * Remote implementation of blob storage using GenSX Console API
 */
export declare class RemoteBlobStorage implements BlobStorage {
    private apiKey;
    private apiBaseUrl;
    private org;
    private project;
    private environment;
    private defaultPrefix?;
    constructor(project: string, environment: string, defaultPrefix?: string);
    getBlob<T>(key: string): Blob<T>;
    listBlobs(options?: ListBlobsOptions): Promise<ListBlobsResponse>;
    blobExists(key: string): Promise<boolean>;
    deleteBlob(key: string): Promise<DeleteBlobResult>;
}
//# sourceMappingURL=remote.d.ts.map