```typescript
export function tierCost(units: number, allowance: number, firstRate: number, laterRate: number): number {
  if (units < 0) {
    throw new Error('Number of units must be non-negative');
  }

  if (allowance < 0) {
    return 0;
  }

  const cost = units * firstRate;
  if (units > allowance) {
    cost += (units - allowance) * laterRate;
  }
  return cost;
}
```