Add types for lifecycle events.

I'm ok without passing the timeout value in the initial version.

But there is a 3rd scenario in addition to full and none: I think all user-initiated stops should have a stop time parameter. The alternative is an option to simply not respect the normal timeout, in which case it would look like an emergency scenario.