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