Add types for lifecycle events.

And anyway, that's not how the code should be structured. We should treat these structs as config for a factory that makes something that implements a Lifecycler interface or some such.