import type { Duration } from './types'; function duration(amount: number, unit: Duration['unit']): Duration { if (!Number.isFinite(amount) || amount < 0) { throw new Error('Duration amount must be a non-negative finite number.'); } return { kind: 'duration', amount, unit }; } export function weeks(amount: number): Duration { return duration(amount, 'WEEKS'); } export function days(amount: number): Duration { return duration(amount, 'DAYS'); } export function hours(amount: number): Duration { return duration(amount, 'HOURS'); }