packageLinkPhase({ customElementsManifest }) {
        for (const definition of customElementsManifest.modules) {
          for (const declaration of definition.declarations) {
            if (declaration.kind === 'class' && declaration?.members?.length) {
              /**
               * Filter out unwanted information from the docs
               */
              declaration.members = declaration.members
                .filter(
                  /** @param {{inheritedFrom: {name: string}}} member */ member =>
                    !inheritanceDenyList.includes(member.inheritedFrom?.name),
                )
                .sort(sortName);
              /**
               * Set privacy for members based on naming conventions
               */
              for (const m of declaration.members) {
                if (!m.privacy && !m.name?.startsWith('_') && !m.name?.startsWith('#')) {
                  m.privacy = 'public';
                } else if (m.name?.startsWith('#') || m.name?.startsWith('__')) {
                  m.privacy = 'private';
                } else if (!m.privacy && m.name?.startsWith('_')) {
                  m.privacy = 'protected';
                }
              }
            }
          }
        }
      }
Exclude information inherited from these mixins, they're generally not useful for public api