A types-only port of HotTowel-Angular to TypeScript