class GroupIntoBatches extends PTransform<PCollection<KV<K, InputT>>, PCollection<KV<K, Iterable<InputT>>>> {

  public static <K, InputT> GroupIntoBatches<K, InputT> ofSize(long batchSize) {
    return new GroupIntoBatches<>(batchSize, null);
  }

  private  GroupIntoBatches(long batchSize, @Nullable Duration maxBufferingDuration);

}