```ts
/**
 * Returns how many of a cell's given neighbours are alive.
 * @param {boolean[]} neighbours - Array of boolean values representing the cell's neighbours.
 * @returns {number} The count of living neighbours.
 */
export function liveCount(neighbours: boolean[]): number {
  return neighbours.filter(neighbor => neighbor).length;
}

/**
 * Determines whether the cell is alive in the next round based on its current state and neighbour counts.
 * @param {boolean} alive - Current state of the cell (true if alive, false if dead).
 * @param {boolean[]} neighbours - Array of boolean values representing the cell's neighbours.
 * @returns {boolean} True if the cell is alive in the next round, false otherwise.
 */
export function liveNext(alive: boolean, neighbours: boolean[]): boolean {
  const count = liveCount(neighbours);
  return (alive && (count === 2 || count === 3)) || (!alive && count === 3);
}
```