export declare const WEEKDAYS: readonly ["MO", "TU", "WE", "TH", "FR", "SA", "SU"]; export type Weekday = (typeof WEEKDAYS)[number]; export declare const WEEKDAY_LABELS: Record; export type Frequency = "DAILY" | "WEEKLY" | "MONTHLY"; export type ParsedRRule = { frequency: Frequency; interval: number; byWeekdays: Weekday[]; byMonthDays: number[]; }; export type RRuleValidationResult = { ok: true; parsed: ParsedRRule; } | { ok: false; message: string; }; export declare function validateRRule(rrule: string): RRuleValidationResult; /** * Parse a minimal RRULE string (subset of RFC 5545). * Supports FREQ, INTERVAL, BYDAY, BYMONTHDAY. */ export declare function parseRRule(rrule: string): ParsedRRule; /** * Build an RRULE string from structured values. */ export declare function buildRRule(values: ParsedRRule): string; /** * Human-readable preview: "Every Monday" / "Every 2 weeks on Mon, Wed, Fri" */ export declare function describeRRule(rrule: string | ParsedRRule): string; /** * Expand an RRULE into a sorted list of local date strings (YYYY-MM-DD). * Operates on UTC-anchored wall-clock dates — timezone conversion is * the caller's responsibility. */ export declare function expandRRule(rrule: string | ParsedRRule, fromDate: Date, toDate: Date, limit?: number): string[];