import { StorageLocationModel } from "./storage-location.model" ; import { AppUsageDetails } from "../models/app-usage-details.model" ; export abstract class DataStore < T > { param storageLocation { StorageLocationModel } param query param defaultStorageValue abstract fetch ( storageLocation , query , defaultStorageValue ) ; param storageLocation param value param defaultStorageValue abstract save ( storageLocation , value , defaultStorageValue ) ; param storageLocation { StorageLocationModel } param path param value param defaultStorageValue abstract upsertProperty < V > ( storageLocation , path , value , defaultStorageValue ) ; param storageLocation abstract clear ( storageLocation ) ; /**
     * Provide app usage
     */ abstract getAppUsageDetails ( ) ; }