import Locale from '../locale'; import type { DateParts, DayInMonth, DayOfWeek, DayParts, MonthInYear, WeekInMonth } from './helpers'; import { GroupRuleType, type Rule, type RuleType, type SingleOrArray } from './rules'; export type RepeatIntervalShort = 'day' | 'week' | 'month' | 'year'; export type RepeatInterval = 'days' | 'weeks' | 'months' | 'years'; export interface DateRepeatConfig { every: RepeatIntervalShort | [number, RepeatInterval]; from: Date; until: Date; weekdays: SingleOrArray; days: SingleOrArray; weeks: SingleOrArray; months: SingleOrArray; years: SingleOrArray; ordinalWeekdays: SingleOrArray; on: SingleOrArray>; } export type DateRepeatFn = (dayParts: DayParts) => boolean; export interface DateRepeatOptions { locale: Locale; } export declare class DateRepeat implements Rule { private parent?; validated: boolean; config: Partial | DateRepeatFn; type: GroupRuleType; from: DateParts | undefined; until: DateParts | undefined; rules: Rule[]; locale: Locale; constructor(config: Partial | DateRepeatFn, options?: Partial, parent?: DateRepeat | undefined); getObjectRules(config: any): Rule[]; passes(dayParts: DayParts): boolean; }