/**
 * It takes an array of items, an array of values, and a capacity, and returns an array of arrays of
 * items, where each array of items has a total value less than or equal to the capacity
 */
export declare class ValuePaginator<T> {
  /**
   * It takes an array of items, a function that returns a number for each item, and a number or a
   * function that returns a number, and returns an array of arrays of items
   *
   * @typedef T generic type  parameter
   * @param {T[]} items - T[] - the items to paginate
   * @param {(input: T, index: number) => number} valueGetter - (input: T, index: number) => number
   * @param {number | ((startIndex: number, values: number[]) => number)} currentPageCapacity - number |
   * ((startIndex: number, values: number[]) => number)
   * @returns {T[][]} An array of arrays of items.
   */
  paginate(items: T[], valueGetter: (input: T, index: number) => number, currentPageCapacity: number | ((startIndex: number, values: number[]) => number)): T[][];
  /**
   * It takes an array of items, an array of values, and a capacity, and returns an array of arrays of
   * items, where each array of items is a page, and the number of items in each page is determined by
   * the capacity
   *
   * @typedef T generic type  parameter
   * @param {T[]} items - T[]
   * @param {number[]} values - number[]
   * @param {number | ((startIndex: number, values: number[]) => number)} currentPageCapacity - number |
   * ((startIndex: number, values: number[]) => number)
   * @returns {T[][]} An array of arrays of items.
   */
  private doPaginateByCapacity;
  /**
   * "Given a start index, an array of values, and a capacity, return the number of elements that can fit
   * in the capacity."
   *
   * The function is a bit more complicated than that, but that's the gist of it
   *
   * @param {number} startIndex - The index of the first element in the page.
   * @param {number[]} values - number[] - an array of numbers that represent the height of each element
   * in the list.
   * @param {number | ((startIndex: number, values: number[]) => number)} currentPageCapacity - number |
   * ((startIndex: number, values: number[]) => number)
   * @returns {number} The number of elements that can fit on a page.
   */
  private valueSum;
}
