createAdditionalVisitors(context) {
    const { litHtmlSources } = context.settings;

    const USER_LIT_HTML_SPECIFIERS = Array.isArray(context.settings.litHtmlSources)
      ? context.settings.litHtmlSources
      : [];

    getParserServices(context).litHtmlSpecifiers = [
      ...DEFAULT_LIT_HTML_SPECIFIERS,
      ...USER_LIT_HTML_SPECIFIERS,
    ];

    if (!context.settings.litHtmlSources) {
      getParserServices(context).shouldAnalyseHtmlTaggedLiterals = true;
      getParserServices(context).litHtmlTags = ['html'];
    }

    return {
      ImportDeclaration(node) {
        getParserServices(context).shouldAnalyseHtmlTaggedLiterals =
          // A previous import supplied lit-html
          getParserServices(context).shouldAnalyseHtmlTaggedLiterals ||
          // litHtmlSources is falsy -> lint everything
          !litHtmlSources ||
          // litHtmlSources is an Array -> lint only lit-html & lit-element & ...specified packages
          isLitHtmlImportDeclaration(node, context);

        if (!getParserServices(context).shouldAnalyseHtmlTaggedLiterals) return;

        getParserServices(context).litHtmlNamespaces = [
          ...new Set([
            ...(getParserServices(context).litHtmlNamespaces || []),
            ...getLitHtmlNamespaces(node),
          ]),
        ];

        getParserServices(context).litHtmlTags = [
          ...new Set([...(getParserServices(context).litHtmlTags || []), ...getLitHtmlTags(node)]),
        ];
      },
    };
  }
@param {LitA11yRuleContext} context
@return {import('eslint').Rule.RuleListener}