/** @import { AssertLocation } from '@web3-storage/content-claims/capability/api' */
/**
 * Client for interacting with the `blob/*` capabilities.
 */
export class BlobClient extends Base {
    /**
     * Store a Blob to the resource.
     *
     * Required delegated capabilities:
     * - `space/blob/add`
     *
     * @param {Blob} blob - blob data.
     * @param {import('../types.js').RequestOptions} [options]
     */
    add(blob: Blob, options?: import("../types.js").RequestOptions): Promise<{
        site: import("@ucanto/interface").Delegation<[AssertLocation]>;
        digest: import("multiformats/hashes/digest").Digest<18, number>;
    }>;
    /**
     * List blobs stored to the resource.
     *
     * Required delegated capabilities:
     * - `space/blob/list`
     *
     * @param {import('../types.js').ListRequestOptions} [options]
     */
    list(options?: import("../types.js").ListRequestOptions): Promise<import("@storacha/capabilities/types").SpaceBlobListSuccess>;
    /**
     * Remove a stored blob by multihash digest.
     *
     * Required delegated capabilities:
     * - `space/blob/remove`
     *
     * @param {import('multiformats').MultihashDigest} digest - digest of blob to remove.
     * @param {import('../types.js').RequestOptions} [options]
     */
    remove(digest: import("multiformats").MultihashDigest, options?: import("../types.js").RequestOptions): Promise<{
        error?: undefined;
    } & {
        ok: import("@storacha/capabilities/types").SpaceBlobRemoveSuccess;
    }>;
    /**
     * Gets a stored blob by multihash digest.
     *
     * @param {import('multiformats').MultihashDigest} digest - digest of blob to get.
     * @param {import('../types.js').RequestOptions} [options]
     */
    get(digest: import("multiformats").MultihashDigest, options?: import("../types.js").RequestOptions): Promise<{
        error?: undefined;
    } & {
        ok: import("@storacha/access").SpaceBlobGetSuccess;
    }>;
    /**
     * Replicate a blob to the specified number of nodes.
     *
     * @param {object} blob - details of the blob to replicate
     * @param {import('multiformats').MultihashDigest} blob.digest - hash of the blob
     * @param {number} blob.size - size of the blob in bytes
     * @param {import('../types.js').Delegation<[AssertLocation]>} site - location commitment specifying where the blob can be obtained.
     * @param {number} replicas - total number of replicas to provision.
     * @param {import('../types.js').RequestOptions} [options]
     */
    replicate(blob: {
        digest: import("multiformats").MultihashDigest;
        size: number;
    }, site: import("../types.js").Delegation<[AssertLocation]>, replicas: number, options?: import("../types.js").RequestOptions): Promise<import("@storacha/access").SpaceBlobReplicateSuccess>;
}
import { Base } from '../base.js';
import type { AssertLocation } from '@web3-storage/content-claims/capability/api';
//# sourceMappingURL=blob.d.ts.map