import { Observable } from 'rxjs' import { RR } from './api.types' export abstract class ApiService { // http // for getting static files: ex icons, instructions, licenses abstract getStatic(url: string): Promise // for sideloading packages abstract uploadPackage(guid: string, body: Blob): Promise abstract uploadFile(body: Blob): Promise // websocket abstract openWebsocket$( guid: string, config: RR.WebsocketConfig, ): Observable // state abstract echo(params: RR.EchoReq, url: string): Promise abstract getState(): Promise // db abstract subscribeToPatchDB( params: RR.SubscribePatchReq, ): Promise abstract setDbValue( pathArr: Array, value: T, ): Promise // auth abstract login(params: RR.LoginReq): Promise abstract logout(params: RR.LogoutReq): Promise abstract getSessions(params: RR.GetSessionsReq): Promise abstract killSessions(params: RR.KillSessionsReq): Promise abstract resetPassword( params: RR.ResetPasswordReq, ): Promise // diagnostic abstract diagnosticGetError(): Promise abstract diagnosticRestart(): Promise abstract diagnosticForgetDrive(): Promise abstract diagnosticRepairDisk(): Promise abstract diagnosticGetLogs( params: RR.GetServerLogsReq, ): Promise // init abstract initGetProgress(): Promise abstract initFollowLogs( params: RR.FollowServerLogsReq, ): Promise // server abstract getSystemTime( params: RR.GetSystemTimeReq, ): Promise abstract getServerLogs( params: RR.GetServerLogsReq, ): Promise abstract getKernelLogs( params: RR.GetServerLogsReq, ): Promise abstract getTorLogs(params: RR.GetServerLogsReq): Promise abstract followServerLogs( params: RR.FollowServerLogsReq, ): Promise abstract followKernelLogs( params: RR.FollowServerLogsReq, ): Promise abstract followTorLogs( params: RR.FollowServerLogsReq, ): Promise abstract getServerMetrics( params: RR.GetServerMetricsReq, ): Promise abstract getPkgMetrics( params: RR.GetPackageMetricsReq, ): Promise abstract updateServer(url?: string): Promise abstract restartServer( params: RR.RestartServerReq, ): Promise abstract shutdownServer( params: RR.ShutdownServerReq, ): Promise abstract repairDisk(params: RR.DiskRepairReq): Promise abstract resetTor(params: RR.ResetTorReq): Promise // marketplace URLs abstract marketplaceProxy( path: string, params: Record, url: string, ): Promise abstract checkOSUpdate(qp: RR.CheckOSUpdateReq): Promise // notification abstract getNotifications( params: RR.GetNotificationsReq, ): Promise abstract deleteNotification( params: RR.DeleteNotificationReq, ): Promise abstract deleteAllNotifications( params: RR.DeleteAllNotificationsReq, ): Promise // wifi abstract getWifi( params: RR.GetWifiReq, timeout: number, ): Promise abstract setWifiCountry( params: RR.SetWifiCountryReq, ): Promise abstract addWifi(params: RR.AddWifiReq): Promise abstract connectWifi(params: RR.ConnectWifiReq): Promise abstract deleteWifi(params: RR.DeleteWifiReq): Promise // ssh abstract getSshKeys(params: RR.GetSSHKeysReq): Promise abstract addSshKey(params: RR.AddSSHKeyReq): Promise abstract deleteSshKey(params: RR.DeleteSSHKeyReq): Promise // backup abstract getBackupTargets( params: RR.GetBackupTargetsReq, ): Promise abstract addBackupTarget( params: RR.AddBackupTargetReq, ): Promise abstract updateBackupTarget( params: RR.UpdateBackupTargetReq, ): Promise abstract removeBackupTarget( params: RR.RemoveBackupTargetReq, ): Promise abstract getBackupInfo( params: RR.GetBackupInfoReq, ): Promise abstract createBackup(params: RR.CreateBackupReq): Promise // package abstract getPackageProperties( params: RR.GetPackagePropertiesReq, ): Promise['data']> abstract getPackageLogs( params: RR.GetPackageLogsReq, ): Promise abstract followPackageLogs( params: RR.FollowPackageLogsReq, ): Promise abstract installPackage( params: RR.InstallPackageReq, ): Promise abstract getPackageConfig( params: RR.GetPackageConfigReq, ): Promise abstract drySetPackageConfig( params: RR.DrySetPackageConfigReq, ): Promise abstract setPackageConfig( params: RR.SetPackageConfigReq, ): Promise abstract restorePackages( params: RR.RestorePackagesReq, ): Promise abstract executePackageAction( params: RR.ExecutePackageActionReq, ): Promise abstract startPackage(params: RR.StartPackageReq): Promise abstract restartPackage( params: RR.RestartPackageReq, ): Promise abstract stopPackage(params: RR.StopPackageReq): Promise abstract uninstallPackage( params: RR.UninstallPackageReq, ): Promise abstract dryConfigureDependency( params: RR.DryConfigureDependencyReq, ): Promise abstract sideloadPackage(): Promise }