import { MemoryStorageOptions, StorageOptions } from "../models/domain/storageOptions"; export abstract class AbstractStorageService { abstract get(key: string, options?: StorageOptions): Promise; abstract has(key: string, options?: StorageOptions): Promise; abstract save(key: string, obj: T, options?: StorageOptions): Promise; abstract remove(key: string, options?: StorageOptions): Promise; } export abstract class AbstractCachedStorageService extends AbstractStorageService { abstract getBypassCache(key: string, options?: MemoryStorageOptions): Promise; } export interface MemoryStorageServiceInterface { get(key: string, options?: MemoryStorageOptions): Promise; }