rrule-rust
Version:
RRule implementation for Node.js written in Rust
98 lines (97 loc) • 2.93 kB
TypeScript
import { DateTime } from './datetime';
export interface NWeekday {
/**
* If set, this represents the nth occurrence of the weekday.
* Otherwise it represents every occurrence of the weekday.
*
* A negative value represents nth occurrence from the end.
*/
n?: number;
weekday: Weekday;
}
export declare enum Frequency {
Yearly = 0,
Monthly = 1,
Weekly = 2,
Daily = 3,
Hourly = 4,
Minutely = 5,
Secondly = 6
}
export declare enum Month {
January = 1,
February = 2,
March = 3,
April = 4,
May = 5,
June = 6,
July = 7,
August = 8,
September = 9,
October = 10,
November = 11,
December = 12
}
export declare enum Weekday {
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
}
export interface RRuleLike {
readonly frequency: Frequency;
readonly interval?: number;
readonly count?: number;
readonly until?: DateTime;
readonly byWeekday: readonly (NWeekday | Weekday)[];
readonly byHour: readonly number[];
readonly byMinute: readonly number[];
readonly bySecond: readonly number[];
readonly byMonthday: readonly number[];
readonly bySetpos: readonly number[];
readonly byMonth: readonly Month[];
readonly byWeekno: readonly number[];
readonly byYearday: readonly number[];
readonly weekstart?: Weekday;
}
export declare class RRule {
readonly frequency: Frequency;
readonly interval?: number;
readonly until?: DateTime;
readonly count?: number;
readonly byWeekday: readonly (NWeekday | Weekday)[];
readonly byHour: readonly number[];
readonly byMinute: readonly number[];
readonly bySecond: readonly number[];
readonly byMonthday: readonly number[];
readonly bySetpos: readonly number[];
readonly byMonth: readonly Month[];
readonly byWeekno: readonly number[];
readonly byYearday: readonly number[];
readonly weekstart?: Weekday;
constructor(frequency: Frequency);
constructor(rrule?: Partial<RRuleLike>);
/**
* Parses a string into an RRule.
*/
static parse(str: string): RRule;
setFrequency(frequency: Frequency): RRule;
setInterval(interval: number): RRule;
setCount(count: number): RRule;
setByWeekday(weekdays: readonly (NWeekday | Weekday)[]): RRule;
setByHour(hours: readonly number[]): RRule;
setByMinute(minutes: readonly number[]): RRule;
setBySecond(seconds: readonly number[]): RRule;
setByMonthday(days: readonly number[]): RRule;
setBySetpos(poses: readonly number[]): RRule;
setByMonth(months: readonly Month[]): RRule;
setByWeekno(weekNumbers: readonly number[]): RRule;
setByYearday(days: readonly number[]): RRule;
setWeekstart(day: Weekday): RRule;
setUntil(datetime: DateTime): RRule;
toString(): string;
toObject(): RRuleLike;
}