```ts
/**
 * Returns an array of numbers starting from `first` for a given `count`.
 * @param first - The starting number of the sequence.
 * @param count - The number of elements in the sequence.
 * @returns An array of numbers.
 */
export function stepsOn(first: number, count: number): number[] {
  if (isNaN(first) || isNaN(count)) throw new Error('Invalid arguments');
  return Array.from({ length: count }, (_, i) => first + i);
}

/**
 * Finds the first missing number in a sequence starting from `first` for a given `count`.
 * @param seen - The array of numbers that have been seen.
 * @param first - The starting number of the sequence.
 * @param count - The number of elements in the sequence.
 * @returns The first missing number, or undefined if none is missing.
 */
export function holeFind(seen: number[], first: number, count: number): number {
  const expected = stepsOn(first, count);
  const missing = expected.find(num => !seen.includes(num));
  return missing;
}
```