function isHtmlTaggedTemplate(node, context) {
  if (node.type !== 'TaggedTemplateExpression') return false;
  const { litHtmlTags = ['html'], litHtmlNamespaces = [] } = getParserServices(context) || {};

  switch (node.tag.type) {
    case 'Identifier':
      return litHtmlTags.includes(node.tag.name);
    case 'MemberExpression':
      return (
        node.tag.property.type === 'Identifier' &&
        node.tag.property.name === 'html' &&
        node.tag.object.type === 'Identifier' &&
        litHtmlNamespaces.includes(node.tag.object.name)
      );
    default:
      return false;
  }
}
Whether a node is a lit-html html-tagged template expression
@param {import('eslint').Rule.Node} node
@param {import('./HasLitHtmlImportRuleExtension').LitA11yRuleContext} context
@returns {node is LitTaggedExpression<'html'>}