code: public ChronicleMapBuilder<K, V> averageValueSize(double averageValueSize) {
          checkSizeIsStaticallyKnown(valueBuilder, "Value");
          checkAverageSize(averageValueSize, "value");
          this.averageValueSize = averageValueSize;
          averageValue = null;
          sampleValue = null;
          return this;
      }
docs: Configures the average number of bytes, taken by serialized form of values, put into maps,
  created by this builder. However, in many cases {@link #averageValue(Object)} might be easier
  to use and more reliable. If value size is always the same, call {@link
  #constantValueSizeBySample(Object)} method instead of this one.
  <p>
  <p>{@code ChronicleHashBuilder} implementation heuristically chooses {@linkplain
  #actualChunkSize(int) the actual chunk size} based on this configuration and the key size,
  that, however, might result to quite high internal fragmentation, i. e. losses because only
  integral number of chunks could be allocated for the entry. If you want to avoid this, you
  should manually configure the actual chunk size in addition to this average value size
  configuration, which is anyway needed.
  <p>
  <p>If values are of boxed primitive type or {@link Byteable} subclass, i. e. if value size is
  known statically, it is automatically accounted and shouldn't be specified by user.
  <p>
  <p>Calling this method clears any previous {@link #constantValueSizeBySample(Object)} and
  {@link #averageValue(Object)} configurations.
  
  @param averageValueSize number of bytes, taken by serialized form of values
  @return this builder back
  @throws IllegalStateException    if value size is known statically and shouldn't be
  configured by user
  @throws IllegalArgumentException if the given {@code averageValueSize} is non-positive
  @see #averageValue(Object)
  @see #constantValueSizeBySample(Object)
  @see #averageKeySize(double)
  @see #actualChunkSize(int)