import type { Observable } from 'rxjs'; export interface BlobState { uploading: boolean; downloading: boolean; errorMessage?: string | null; overSize: boolean; } export interface BlobSource { name: string; readonly: boolean; get: (key: string) => Promise; set: (key: string, value: Blob) => Promise; delete: (key: string) => Promise; list: () => Promise; // This state is only available when uploading to the server or downloading from the server. blobState$?: (key: string) => Observable | null; }