import {Awaitable} from "../support/types" /** * Abstract interface class for a cached object. */ export abstract class Cache { /** * Fetch a value from the cache by its key. * @param {string} key * @return Promise */ public abstract fetch(key: string): Awaitable; /** * Store the given value in the cache by key. * @param {string} key * @param {string} value */ public abstract put(key: string, value: string): Awaitable; /** * Check if the cache has the given key. * @param {string} key * @return Promise */ public abstract has(key: string): Awaitable; /** * Drop the given key from the cache. * @param {string} key */ public abstract drop(key: string): Awaitable; }