export type hourlyInterval = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
export type hours = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23;
export type days = 0 | 1 | 2 | 3 | 4 | 5 | 6;
export declare enum ScheduleTypes {
    hourly = "hourly",
    daily = "daily",
    weekly = "weekly"
}
export declare const ScheduleTypesDefinitions: {
    [Name: string]: {
        title: string;
        value: ScheduleTypes;
    };
};
export interface IScheduleHourly {
    ScheduleType: ScheduleTypes.hourly;
    /** run every x number of hours */
    interval: hourlyInterval;
}
export interface IScheduleDaily {
    ScheduleType: ScheduleTypes.daily;
    /** run every day, at these hours */
    hours: hours[];
}
export interface IScheduleWeekly {
    ScheduleType: ScheduleTypes.weekly;
    /** run in the following days */
    days: days[];
    /** run at these hours */
    hours: hours[];
}
export type TypeSchedule = IScheduleHourly | IScheduleDaily | IScheduleWeekly;
export declare const defaultWeeklySchedule: IScheduleWeekly;
export declare const defaultDailySchedule: IScheduleDaily;
export declare const defaultHourlySchedule: IScheduleHourly;
export declare function isValidSchedule(schedule: TypeSchedule): boolean;
/** returns a yyyyMMddHH for the next time this schedule needs to run after the currentDate */
export declare function getNextUTC(currentDate: Date, schedule: TypeSchedule): string;
export declare function getUTCDateMarker(date: Date): string;
