src/recurrence-types.tsTypeScript
@@ -0,0 +1,26 @@
1+
export interface LocalDateTime {2+
date: string;3+
time: string;4+
}5+
6+
export type RecurrenceException =7+
| { type: "cancelled" }8+
| { type: "moved"; moveToLocal: LocalDateTime };9+
10+
export interface WeeklyRecurrence {11+
startLocal: LocalDateTime;12+
startInstant: Date;13+
timeZone: string;14+
count: number;15+
exceptions: Readonly<Record<string, RecurrenceException>>;16+
}17+
18+
export interface ZoneRules {19+
addLocalDays(value: LocalDateTime, days: number): LocalDateTime;20+
toInstant(value: LocalDateTime, timeZone: string): Date;21+
}22+
23+
export interface Occurrence {24+
originalLocalDate: string;25+
instant: Date;26+
}