registerEvents() {
    global.kuzzle.on("admin:afterRefreshIndexCache", () =>
      this.onIndexCacheRefreshed(),
    );

    global.kuzzle.onCall("core:realtime:room:create:after", (payload) =>
      this.onNewRealtimeRoom(payload),
    );

    global.kuzzle.onCall("core:realtime:subscribe:after", (roomId) =>
      this.onNewSubscription(roomId),
    );

    global.kuzzle.onCall("core:realtime:unsubscribe:after", (roomId) =>
      this.onUnsubscription(roomId),
    );

    global.kuzzle.on("core:notify:document", ({ notification, rooms }) => {
      this.onDocumentNotification(rooms, notification);
    });

    global.kuzzle.on("core:notify:user", ({ notification, room }) =>
      this.onUserNotification(room, notification),
    );

    global.kuzzle.on(
      "core:auth:strategyAdded",
      ({ name, pluginName, strategy }) => {
        this.onAuthStrategyAdded(name, pluginName, strategy);
      },
    );

    global.kuzzle.on("core:auth:strategyRemoved", ({ name, pluginName }) =>
      this.onAuthStrategyRemoved(name, pluginName),
    );

    global.kuzzle.on("admin:afterDump", (request) => {
      const suffix = request.getString("suffix", "manual-api-action");

      return this.onDumpRequest(suffix);
    });

    global.kuzzle.on("admin:afterResetSecurity", () => this.onSecurityReset());

    global.kuzzle.on("admin:afterShutdown", () => this.onShutdown());

    global.kuzzle.on("collection:afterDeleteSpecifications", () =>
      this.onValidatorsChanged(),
    );

    global.kuzzle.on("collection:afterUpdateSpecifications", () =>
      this.onValidatorsChanged(),
    );

    // Profile change events
    global.kuzzle.on("core:security:profile:create", ({ args: [profileId] }) =>
      this.onProfileChanged(profileId),
    );

    global.kuzzle.on(
      "core:security:profile:createOrReplace",
      ({ args: [profileId] }) => this.onProfileChanged(profileId),
    );

    global.kuzzle.on("core:security:profile:update", ({ args: [profileId] }) =>
      this.onProfileChanged(profileId),
    );

    global.kuzzle.on("core:security:profile:delete", ({ args: [profileId] }) =>
      this.onProfileChanged(profileId),
    );

    // Role change events
    global.kuzzle.on("core:security:role:create", ({ args: [roleId] }) =>
      this.onRoleChanged(roleId),
    );

    global.kuzzle.on(
      "core:security:role:createOrReplace",
      ({ args: [roleId] }) => this.onRoleChanged(roleId),
    );

    global.kuzzle.on("core:security:role:update", ({ args: [roleId] }) =>
      this.onRoleChanged(roleId),
    );

    global.kuzzle.on("core:security:role:delete", ({ args: [roleId] }) =>
      this.onRoleChanged(roleId),
    );

    // Index cache change events
    global.kuzzle.on("core:storage:index:create:after", ({ index, scope }) =>
      this.onIndexAdded(scope, index),
    );

    global.kuzzle.on("core:storage:index:delete:after", ({ index, scope }) =>
      this.onIndexesRemoved(scope, [index]),
    );

    global.kuzzle.on("core:storage:index:mDelete:after", ({ indexes, scope }) =>
      this.onIndexesRemoved(scope, indexes),
    );

    global.kuzzle.on(
      "core:storage:collection:create:after",
      ({ collection, index, scope }) => {
        this.onCollectionAdded(scope, index, collection);
      },
    );

    global.kuzzle.on(
      "core:storage:collection:delete:after",
      ({ collection, index, scope }) => {
        this.onCollectionRemoved(scope, index, collection);
      },
    );
  }
Starts listening to events to trigger sync messages on state changes.

@return {void}