import { Subject } from "rxjs"; export abstract class ApiService { protected error$: Subject = new Subject() watchError$ = this.error$.asObservable() abstract getState (): Promise abstract getStorageDisks (): Promise abstract selectStorageDisk (disk: { logicalName: string }): Promise abstract getEmbassyDrives (): Promise abstract selectEmbassyDrive (disk: { logicalName: string }, password: string): Promise abstract getDataTransferProgress () : Promise abstract submitPassword (password: string) : Promise } export interface State { 'selected-data-drive': string | null, 'recovery-drive': string | null, 'has-password': boolean, } export interface TransferProgress { 'bytes-transfered': number 'total-bytes': number } export interface StorageDisk { "logical-name": string labels: string[] capacity: number used: number } export interface EmbassyDrive { "logical-name": string version: string name: string }