Typescript definitions are based on flow Tested them a bit in my project I think couple of event types are screwed in flow definitions (synthetic/non-synthetic are mixed), tried my best to test which events are really received.