import dayjs from "dayjs"; type PresetValidator = (args: { date: dayjs.Dayjs; lastSendAt: dayjs.Dayjs | null; args: string[]; }) => boolean; export declare class CronTime { source: dayjs.Dayjs | string; presetValidation?: PresetValidator; presetArgs?: string[]; presetStep?: number; realDate: boolean; utcOffset?: number; startAt?: dayjs.Dayjs; unitMap: Record>; lastSendAt: dayjs.Dayjs | null; constructor(source: Date | string, startAt?: dayjs.Dayjs, utcOffset?: number); /** * Calculate the "next" scheduled time */ sendAt(): dayjs.Dayjs; sendAt(i: number): dayjs.Dayjs[]; /** * Get the number of milliseconds in the future at which to fire our callbacks. */ getTimeout(): number; /** * writes out a cron string */ toString(): string; /** * Json representation of the parsed cron syntax. */ toJSON(): string[]; setLastSendAt(date: dayjs.Dayjs): void; private parse; private parsePrestArgs; private parseField; private verifyParse; private getNextDateFromWithValidation; /** * Get next date matching the specified cron time. * * Algorithm: * - Start with a start date and a parsed crontime. * - Loop until 5 seconds have passed, or we found the next date. * - Within the loop: * - If it took longer than 5 seconds to select a date, throw an exception. * - Find the next month to run at. * - Find the next day of the month to run at. * - Find the next day of the week to run at. * - Find the next hour to run at. * - Find the next minute to run at. * - Find the next second to run at. * - Check that the chosen time does not equal the current execution. * - Return the selected date object. */ private getNextDateFrom; /** * wildcard, or all params in array (for to string) */ private wcOrAll; private hasAll; } export {};