import { DateTime, RecurrenceRuleResult, RuleOption } from '@rschedule/core'; import '../ByMonthOfYear/types'; import { IFrequencyRuleOptions, INormFrequencyRuleOptions } from '../Frequency'; import { RecurrenceRuleBase } from '../utilities/recurrence-rule-base'; import './types'; declare module '../../recurrence-rule-options' { interface IRuleOptions extends IByDayOfWeekRuleOptions {} interface INormRuleOptions extends INormByDayOfWeekRuleOptions {} } export interface IByDayOfWeekRuleOptions extends IFrequencyRuleOptions { byDayOfWeek?: RuleOption.ByDayOfWeek[]; } export interface INormByDayOfWeekRuleOptions extends INormFrequencyRuleOptions { byDayOfWeek?: RuleOption.ByDayOfWeek[]; byMonthOfYear?: RuleOption.ByMonthOfYear[]; } export declare class ByDayOfWeekRule extends RecurrenceRuleBase< INormByDayOfWeekRuleOptions > { private expandYearly; private expandMonthly; private expand; private result; run(date: DateTime): RecurrenceRuleResult; } /** For each byDayOfWeek entry, find the next DateTime */ export declare function getNextWeekdaysOfYear( date: DateTime, byDayOfWeek: RuleOption.ByDayOfWeek[], ): DateTime[]; /** For each byDayOfWeek entry, find the next DateTime */ export declare function getNextWeekdaysOfMonth( date: DateTime, byDayOfWeek: RuleOption.ByDayOfWeek[], ): DateTime[];