constructor(options = {}) {
    const { eventNames } = options;

    assert(
      'An array of supported events must be provided via the `eventNames` option.',
      Array.isArray(eventNames) && eventNames.length > 0
    );

    this[EVENTS] = new Map();
    this[EVENT_NAMES] = new Set(eventNames);
  }
@constructor
@param {Object} options
@param {String[]} options.eventNames - Supported events