export interface Cache { write (key: string, value: T): void | Promise; read (key: string): T | undefined | Promise; remove (key: string): void | Promise; }