Central class for user notification

- used by preferences store
- added TypeScript support to build