defineScopedElement(tagName, classToBeRegistered) {
      const registeredClass = this.registry.get(tagName);
      const isNewClassWithSameName = registeredClass && registeredClass !== classToBeRegistered;
      if (!supportsScopedRegistry() && isNewClassWithSameName) {
        // eslint-disable-next-line no-console
        console.error(
          [
            `You are trying to re-register the "${tagName}" custom element with a different class via ScopedElementsMixin.`,
            'This is only possible with a CustomElementRegistry.',
            'Your browser does not support this feature so you will need to load a polyfill for it.',
            'Load "@webcomponents/scoped-custom-element-registry" before you register ANY web component to the global customElements registry.',
            'e.g. add "<script src="/node_modules/@webcomponents/scoped-custom-element-registry/scoped-custom-element-registry.min.js"></script>" as your first script tag.',
            'For more details you can visit https://open-wc.org/docs/development/scoped-elements/',
          ].join('\n'),
        );
      }
      if (!registeredClass) {
        return this.registry.define(tagName, classToBeRegistered);
      }
      return this.registry.get(tagName);
    }
Defines a scoped element.

@param {string} tagName
@param {typeof HTMLElement} classToBeRegistered