interface TackUpNotification { name: Name params: Params subscriptionJson: any start: () => void } type TackUpNotifications = TackUpNotification<"left to go in class", { classNumber: number, leftToGo: number }> | function create(type: NotificationType["name"], params: NotificationType["params"]) { }