docs: def emit(self, action, payload, level=Level.INSTANT):
          """Emit action."""
          if level == self.Level.INSTANT:
              return self.emit_instantly(action, payload)
          elif level == self.Level.CONTEXTUAL:
              return self.emit_contextually(action, payload)
          elif level == self.Level.DELAY:
              return self.emit_delayed(action, payload)
          else:
              raise Exception('InvalidEmitLevel: %s' % level)