import { Cache, CacheCollection } from './cache'; export abstract class AsyncCache<RecordType> { protected cache: CacheCollection<RecordType> = {}; abstract get(name: string): Promise<RecordType | null>; // tslint:disable-next-line no-any abstract register(record: any): void; static nameKey(name: string): string { return Cache.nameKey(name); } clear(): void { this.cache = {}; } }