import { Result, Option, URI, PeerStream, Peer } from "@adviser/cement"; import type { StorageProgressFn, VibesAssetStorage, FetchResult } from "@vibes.diy/api-types"; import { sha256 } from "@noble/hashes/sha2.js"; export interface CalcCidResult { cid: string; size: number; } export type PeerStreamWithCommit = PeerStream & { commit: (iname?: string) => Promise>; }; export interface PeerWithCommit extends Peer { begin: () => Promise>; } export interface PeerFetch { fetch(url: URI): Promise>; } export declare class Cider { readonly h: ReturnType; size: number; readonly processStreamPromise: Promise; constructor(inStream: ReadableStream); readonly getCID: () => Promise; } export interface PeerFactoryOptions { readonly onProgress?: StorageProgressFn; readonly peerTimeout?: number; } export interface StoragePeer { fetch: PeerFetch; factory: (cider: Cider, opts?: PeerFactoryOptions) => PeerWithCommit; } export interface EnsureStorageOptions { readonly peerTimeout?: number; } export declare function ensureStorage(...peers: StoragePeer[]): VibesAssetStorage; export declare function ensureStorage(opts: EnsureStorageOptions, ...peers: StoragePeer[]): VibesAssetStorage;