import type { HTTPRPCOptions } from '../index.js'; import type { HTTPRPCClient } from '../lib/core.js'; import type { CID, Version } from 'multiformats/cid'; export interface BlockPutOptions extends HTTPRPCOptions { /** * The codec to use to create the CID */ format?: string; /** * Multihash hashing algorithm to use. (Defaults to 'sha2-256') */ mhtype?: string; /** * The version to use to create the CID */ version?: Version; /** * Pin this block when adding. (Defaults to `false`) */ pin?: boolean; /** * Allow creating blocks larger than 1MB * * @default false */ allowBigBlock?: boolean; } export interface BlockRmOptions extends HTTPRPCOptions { /** * Ignores non-existent blocks */ force?: boolean; /** * Do not return output if true */ quiet?: boolean; } export interface BlockRmResult { /** * The CID of the removed block */ cid: CID; /** * Any error that occurred while trying to remove the block */ error?: Error; } export interface BlockStatResult { /** * The CID of the block */ cid: CID; /** * The size of the block */ size: number; } export interface BlockAPI { /** * Get a raw IPFS block * * @example * * ```js * const block = await ipfs.block.get(cid) * console.log(block) * ``` */ get(cid: CID, options?: HTTPRPCOptions): Promise; /** * Stores a Uint8Array as a block in the underlying blockstore * * @example * * ```js * import * as dagPB from '@ipld/dag-pb' * // Defaults * const encoder = new TextEncoder() * const decoder = new TextDecoder() * * const bytes = encoder.encode('a serialized object') * const cid = await ipfs.block.put(bytes) * * console.log(decoder.decode(block.data)) * // Logs: * // a serialized object * console.log(block.cid.toString()) * // Logs: * // the CID of the object * ``` */ put(block: Uint8Array, options?: BlockPutOptions): Promise; /** * Remove one or more IPFS block(s) from the underlying block store * * @example * * ```js * for await (const result of ipfs.block.rm(cid)) { * if (result.error) { * console.error(`Failed to remove block ${result.cid} due to ${result.error.message}`) * } else { * console.log(`Removed block ${result.cid}`) * } * } * ``` */ rm(cid: CID | CID[], options?: BlockRmOptions): AsyncIterable; /** * Print information of a raw IPFS block * * @example * * ```js * const cid = CID.parse('QmQULBtTjNcMwMr4VMNknnVv3RpytrLSdgpvMcTnfNhrBJ') * const stats = await ipfs.block.stat(cid) * console.log(stats.cid.toString()) * // Logs: QmQULBtTjNcMwMr4VMNknnVv3RpytrLSdgpvMcTnfNhrBJ * console.log(stat.size) * // Logs: 3739 * ``` */ stat(cid: CID, options?: HTTPRPCOptions): Promise; } export declare function createBlock(client: HTTPRPCClient): BlockAPI; //# sourceMappingURL=index.d.ts.map