import { CronDate, DateType, ICronExpression, IStringResult, ParserOptions, } from './common'; type BuildRangeTuple = Current["length"] extends Count ? Current : BuildRangeTuple<[number, ...Current], Count> type RangeTuple = BuildRangeTuple<[], Count> type BuildRange = Accu["length"] extends End ? Current : BuildRange type Range = BuildRange> export type SixtyRange = Range<0, 30> | Range<30, 60>; // Typescript restriction on recursion depth export type HourRange = Range<0, 24>; export type DayOfTheMonthRange = Range<1, 32> | 'L'; export type MonthRange = Range<1, 13>; export type DayOfTheWeekRange = Range<0, 8>; export type CronFields = { readonly second: readonly SixtyRange[]; readonly minute: readonly SixtyRange[]; readonly hour: readonly HourRange[]; readonly dayOfMonth: readonly DayOfTheMonthRange[]; readonly month: readonly MonthRange[]; readonly dayOfWeek: readonly DayOfTheWeekRange[]; } export {ParserOptions, CronDate, DateType} export type CronExpression = ICronExpression export type StringResult = IStringResult export function parseExpression(expression: string, options?: ParserOptions): CronExpression; export function fieldsToExpression(fields: CronFields, options?: ParserOptions): CronExpression; export function parseFile(filePath: string, callback: (err: any, data: StringResult) => any): void; export function parseString(data: string): StringResult;