@byalvear/rrule-fns
Version:
A lightweight recurrence rule parser and generator for JavaScript/TypeScript
56 lines • 2.22 kB
TypeScript
import { RRule } from "./recurrence.type";
interface RRuleDescribeOptions {
lang?: 'en' | 'es';
}
export declare class RRuleParser {
private static WEEKDAY_MAP;
static stringToRRule(rrule: string): RRule;
static toString(pattern: RRule): string;
static describe(pattern: RRule, options?: RRuleDescribeOptions): string;
private static getWeekdayNumber;
private static addDays;
private static addWeeks;
private static addMonths;
private static addYears;
private static getNthWeekdayOfMonth;
static generateOccurrences(startDate: Date, rrule: string, maxCount?: number, endDate?: Date): Date[];
private static getNextWeeklyOccurrence;
private static getNextMonthlyWeekdayOccurrence;
private static getNextMonthlyDayOccurrence;
}
/**
* Generate occurrence dates from a recurrence pattern
* @param fromDate Starting date
* @param rrule RFC 5545 recurrence rule string
* @param count Optional maximum number of occurrences
* @param toDate Optional end date
* @returns Array of Date objects
*/
export declare function generateRecurrenceOccurrences(fromDate: Date | string, rrule: string, count?: number, toDate?: Date | string): Date[];
/**
* Generate occurrence dates as ISO strings
* @param fromDate Starting date
* @param rrule RFC 5545 recurrence rule string
* @param count Optional maximum number of occurrences
* @param toDate Optional end date
* @returns Array of ISO date strings (YYYY-MM-DD format)
*/
export declare function generateRecurrenceDates(fromDate: Date | string, rrule: string, count?: number, toDate?: Date | string): string[];
/**
* Get the next N occurrences from today
*/
export declare function getUpcomingOccurrences(rrule: string, count?: number, startDate?: Date): Date[];
/**
* Check if a date matches a recurrence pattern
*/
export declare function dateMatchesPattern(date: Date | string, startDate: Date | string, rrule: string): boolean;
/**
* Get human-readable description of recurrence pattern
*/
export declare function describeRRule(rrule: string): string;
/**
* Validate RRULE string
*/
export declare function isValidRRule(rrule: string): boolean;
export {};
//# sourceMappingURL=recurrence.utils.d.ts.map