Event actions for NDSolve

What do the different actions of events in the context of solving systems of differential equations with NDSolve? The official documentation here says almost nothing about what these different options do. When is it appropriate to use "StopIntegration" instead of "RestartIntegration"? What is the difference between "CrossDiscontinuity", "CrossSlidingDiscontinuity" and "DiscontinuitySignature"? Why would you choose one over another?