import { WeekDay } from '@core/types';
/**
 * Check whether a date comes before another date
 * @param leftDate first date
 * @param rightDate second date
 * @returns true if leftDate comes before rightDate and vice versa
 */
declare function isBefore(leftDate: Date, rightDate: Date): boolean;
/**
 * Check whether a date comes after another date
 * @param leftDate first date
 * @param rightDate second date
 * @returns true if leftDate comes after rightDate and vice versa
 */
declare function isAfter(leftDate: Date, rightDate: Date): boolean;
/**
 * Check whether two dates are equal
 * @param leftDate first date
 * @param rightDate: second date
 * @returns true if leftDate equals rightDate and vice versa
 */
declare function isEqual(leftDate: Date, rightDate: Date): boolean;
/**
 * normalize a date by setting its time to 00:00
 * @param date the date to normalize
 * @returns Normalized date
 */
declare function normalizeDay(date: Date): Date;
/**
 * normalize a date by setting its time to 23:59
 * @param date the date to normalize
 * @returns Normalized date
 */
declare function normalizeDayEnd(date: Date): Date;
/**
 * normalize a date by setting seconds and milliseconds to 0
 * @param date the date to normalize
 * @returns normalized date
 */
declare function normalizeSeconds(date: Date): Date;
declare function getWeekDay(date: Date): WeekDay;
declare function rangeDates(start: Date, end: Date): Date[];
/**
 * validate if the given string is a valid iso8601 date string
 * @param date The date string to validate
 * @returns true is given date is a valid iso8601 string
 */
declare function isIsoDateString(date: string): boolean;
export declare const DateUtils: {
    isBefore: typeof isBefore;
    isAfter: typeof isAfter;
    isEqual: typeof isEqual;
    normalizeDay: typeof normalizeDay;
    normalizeDayEnd: typeof normalizeDayEnd;
    normalizeSeconds: typeof normalizeSeconds;
    getWeekDay: typeof getWeekDay;
    rangeDates: typeof rangeDates;
    isIsoDateString: typeof isIsoDateString;
};
export {};
