```ts
/** Validates whether the given number isFinite and represents a temperature in degrees Celsius
 * in the valid range [-273.15, ∞).
 *
 * @param celsius The temperature in degrees Celsius to validate.
 * @returns True if the number is finite and within the required range, otherwise throws an Error.
 */
function validateCelsius(celsius: number): boolean {
  if (typeof celsius !== "number" || !Number.isFinite(celsius)) {
    throw new Error("celsius must be a finite number");
  }
  if (celsius < -273.15) {
    throw new Error("celsius must be at or above absolute zero");
  }
  return true;
}

/** The temperature in degrees Fahrenheit. */
export function celsiusToFahrenheit(celsius: number): number {
  validateCelsius(celsius);
  return celsius * 1.8 + 32;
}

/** The temperature in kelvin. */
export function celsiusToKelvin(celsius: number): number {
  validateCelsius(celsius);
  return celsius + 273.15;
}
```