--- /dev/null
+from ._common import weekday as weekdaybase\r
+from typing import Any, Iterable, Optional, Union\r
+import datetime\r
+\r
+YEARLY: int\r
+MONTHLY: int\r
+WEEKLY: int\r
+DAILY: int\r
+HOURLY: int\r
+MINUTELY: int\r
+SECONDLY: int\r
+\r
+class weekday(weekdaybase):\r
+ ...\r
+\r
+MO: weekday\r
+TU: weekday\r
+WE: weekday\r
+TH: weekday\r
+FR: weekday\r
+SA: weekday\r
+SU: weekday\r
+\r
+class rrulebase:\r
+ def __init__(self, cache: bool = ...) -> None: ...\r
+ def __iter__(self): ...\r
+ def __getitem__(self, item): ...\r
+ def __contains__(self, item): ...\r
+ def count(self): ...\r
+ def before(self, dt, inc: bool = ...): ...\r
+ def after(self, dt, inc: bool = ...): ...\r
+ def xafter(self, dt, count: Optional[Any] = ..., inc: bool = ...): ...\r
+ def between(self, after, before, inc: bool = ..., count: int = ...): ...\r
+\r
+class rrule(rrulebase):\r
+ def __init__(self,\r
+ freq,\r
+ dtstart: Optional[datetime.datetime] = ...,\r
+ interval: int = ...,\r
+ wkst: Optional[Union[weekday, int]] = ...,\r
+ count: Optional[int] = ...,\r
+ until: Optional[Union[datetime.datetime, int]] = ...,\r
+ bysetpos: Optional[Union[int, Iterable[int]]] = ...,\r
+ bymonth: Optional[Union[int, Iterable[int]]] = ...,\r
+ bymonthday: Optional[Union[int, Iterable[int]]] = ...,\r
+ byyearday: Optional[Union[int, Iterable[int]]] = ...,\r
+ byeaster: Optional[Union[int, Iterable[int]]] = ...,\r
+ byweekno: Optional[Union[int, Iterable[int]]] = ...,\r
+ byweekday: Optional[Union[int, Iterable[int]]] = ...,\r
+ byhour: Optional[Union[int, Iterable[int]]] = ...,\r
+ byminute: Optional[Union[int, Iterable[int]]] = ...,\r
+ bysecond: Optional[Union[int, Iterable[int]]] = ...,\r
+ cache: bool = ...) -> None: ...\r
+ def replace(self, **kwargs): ...\r
+\r
+class _iterinfo:\r
+ rrule: Any = ...\r
+ def __init__(self, rrule) -> None: ...\r
+ yearlen: int = ...\r
+ nextyearlen: int = ...\r
+ yearordinal: int = ...\r
+ yearweekday: int = ...\r
+ mmask: Any = ...\r
+ mdaymask: Any = ...\r
+ nmdaymask: Any = ...\r
+ wdaymask: Any = ...\r
+ mrange: Any = ...\r
+ wnomask: Any = ...\r
+ nwdaymask: Any = ...\r
+ eastermask: Any = ...\r
+ lastyear: int = ...\r
+ lastmonth: int = ...\r
+ def rebuild(self, year, month): ...\r
+ def ydayset(self, year, month, day): ...\r
+ def mdayset(self, year, month, day): ...\r
+ def wdayset(self, year, month, day): ...\r
+ def ddayset(self, year, month, day): ...\r
+ def htimeset(self, hour, minute, second): ...\r
+ def mtimeset(self, hour, minute, second): ...\r
+ def stimeset(self, hour, minute, second): ...\r
+\r
+class rruleset(rrulebase):\r
+ class _genitem:\r
+ dt: Any = ...\r
+ genlist: Any = ...\r
+ gen: Any = ...\r
+ def __init__(self, genlist, gen) -> None: ...\r
+ def __next__(self): ...\r
+ next: Any = ...\r
+ def __lt__(self, other): ...\r
+ def __gt__(self, other): ...\r
+ def __eq__(self, other): ...\r
+ def __ne__(self, other): ...\r
+ def __init__(self, cache: bool = ...) -> None: ...\r
+ def rrule(self, rrule): ...\r
+ def rdate(self, rdate): ...\r
+ def exrule(self, exrule): ...\r
+ def exdate(self, exdate): ...\r
+\r
+class _rrulestr:\r
+ def __call__(self, s, **kwargs): ...\r
+\r
+rrulestr: _rrulestr\r