1export = CronParser
2
3declare class CronDate {
4  addYear(): void
5  addMonth(): void
6  addDay(): void
7  addHour(): void
8  addMinute(): void
9  addSecond(): void
10
11  subtractYear(): void
12  subtractMonth(): void
13  subtractDay(): void
14  subtractHour(): void
15  subtractMinute(): void
16  subtractSecond(): void
17
18  getDate(): number
19  getFullYear(): number
20  getDay(): number
21  getMonth(): number
22  getHours(): number
23  getMinutes(): number
24  getSeconds(): number
25  getMilliseconds(): number
26  getTime(): number
27  getUTCDate(): number
28  getUTCFullYear(): number
29  getUTCDay(): number
30  getUTCMonth(): number
31  getUTCHours(): number
32  getUTCMinutes(): number
33  getUTCSeconds(): number
34
35  toISOString(): string
36  toJSON(): string
37
38  setDate(d: number): void
39  setFullYear(y: number): void
40  setDay(d: number): void
41  setMonth(m: number): void
42  setHours(h: number): void
43  setMinutes(m: number): void
44  setSeconds(s: number): void
45  setMilliseconds(s: number): void
46
47  getTime(): number
48  toString(): string
49  toDate(): Date
50}
51
52interface ParserOptions {
53  currentDate?: string | number | Date
54  startDate?: string | number | Date
55  endDate?: string | number | Date
56  iterator?: boolean
57  utc?: boolean
58  tz?: string
59}
60
61declare class CronExpression {
62  constructor(fields: {}, options: {})
63
64  /** Find next suitable date */
65  next(): CronDate
66  /** Find previous suitable date */
67  prev(): CronDate
68
69  /** Check if next suitable date exists */
70  hasNext(): boolean
71  /** Check if previous suitable date exists */
72  hasPrev(): boolean
73
74  /** Iterate over expression iterator */
75  iterate(steps: number, callback?: (item: CronDate, i: number) => any): CronDate[]
76
77  /** Reset expression iterator state */
78  reset(resetDate?: string | number | Date): void
79
80  /** Parse input expression (async) */
81  parse(expression: string, options?: ParserOptions, callback?: () => any): CronExpression
82}
83
84interface StringResult {
85  variables: { [key: string]: string },
86  expressions: CronExpression[],
87  errors: { [key: string]: string }
88}
89
90declare namespace CronParser {
91  /** Wrapper for CronExpression.parse method */
92  function parseExpression(expression: string, options?: ParserOptions): CronExpression
93  /** Parse crontab file */
94  function parseFile(filePath: string, callback: (err: any, data: StringResult) => any): void
95  /** Parse content string */
96  function parseString(data: string): StringResult
97}
98