docs: function createStylingContextTemplate(initialClassDeclarations, initialStyleDeclarations, styleSanitizer) {
      var initialStylingValues = [null];
      var context = [null, styleSanitizer || null, initialStylingValues, 0, 0, null];
      // we use two maps since a class name might collide with a CSS style prop
      var stylesLookup = {};
      var classesLookup = {};
      var totalStyleDeclarations = 0;
      if (initialStyleDeclarations) {
          var hasPassedDeclarations = false;
          for (var i = 0; i < initialStyleDeclarations.length; i++) {
              var v = initialStyleDeclarations[i];
              // this flag value marks where the declarations end the initial values begin
              if (v === 1 /* VALUES_MODE */) {
                  hasPassedDeclarations = true;
              }
              else {
                  var prop = v;
                  if (hasPassedDeclarations) {
                      var value = initialStyleDeclarations[++i];
                      initialStylingValues.push(value);
                      stylesLookup[prop] = initialStylingValues.length - 1;
                  }
                  else {
                      totalStyleDeclarations++;
                      stylesLookup[prop] = 0;
                  }
              }
          }
      }
      // make where the class offsets begin
      context[4 /* ClassOffsetPosition */] = totalStyleDeclarations;
      if (initialClassDeclarations) {
          var hasPassedDeclarations = false;
          for (var i = 0; i < initialClassDeclarations.length; i++) {
              var v = initialClassDeclarations[i];
              // this flag value marks where the declarations end the initial values begin
              if (v === 1 /* VALUES_MODE */) {
                  hasPassedDeclarations = true;
              }
              else {
                  var className = v;
                  if (hasPassedDeclarations) {
                      var value = initialClassDeclarations[++i];
                      initialStylingValues.push(value);
                      classesLookup[className] = initialStylingValues.length - 1;
                  }
                  else {
                      classesLookup[className] = 0;
                  }
              }
          }
      }
      var styleProps = Object.keys(stylesLookup);
      var classNames = Object.keys(classesLookup);
      var classNamesIndexStart = styleProps.length;
      var totalProps = styleProps.length + classNames.length;
      // *2 because we are filling for both single and multi style spaces
      var maxLength = totalProps * 3 /* Size */ * 2 + 6 /* SingleStylesStartPosition */;
      // we need to fill the array from the start so that we can access
      // both the multi and the single array positions in the same loop block
      for (var i = 6 /* SingleStylesStartPosition */; i < maxLength; i++) {
          context.push(null);
      }
      var singleStart = 6 /* SingleStylesStartPosition */;
      var multiStart = totalProps * 3 /* Size */ + 6 /* SingleStylesStartPosition */;
      // fill single and multi-level styles
      for (var i = 0; i < totalProps; i++) {
          var isClassBased_1 = i >= classNamesIndexStart;
          var prop = isClassBased_1 ? classNames[i - classNamesIndexStart] : styleProps[i];
          var indexForInitial = isClassBased_1 ? classesLookup[prop] : stylesLookup[prop];
          var initialValue = initialStylingValues[indexForInitial];
          var indexForMulti = i * 3 /* Size */ + multiStart;
          var indexForSingle = i * 3 /* Size */ + singleStart;
          var initialFlag = prepareInitialFlag(prop, isClassBased_1, styleSanitizer || null);
          setFlag(context, indexForSingle, pointers(initialFlag, indexForInitial, indexForMulti));
          setProp(context, indexForSingle, prop);
          setValue(context, indexForSingle, null);
          var flagForMulti = initialFlag | (initialValue !== null ? 1 /* Dirty */ : 0 /* None */);
          setFlag(context, indexForMulti, pointers(flagForMulti, indexForInitial, indexForSingle));
          setProp(context, indexForMulti, prop);
          setValue(context, indexForMulti, null);
      }
      // there is no initial value flag for the master index since it doesn't
      // reference an initial style value
      setFlag(context, 3 /* MasterFlagPosition */, pointers(0, 0, multiStart));
      setContextDirty(context, initialStylingValues.length > 1);
      return context;
  }