/**
 * Normalizes a date string into a JavaScript Date object.
 *
 * If the input string is in ISO format (YYYY-MM-DD), it is parsed directly.
 *
 * This function transforms a date string that may include delimiters ("/" or "-")
 * into a Date object by parsing the input according to its length and the specified language.
 * The parsing strategy depends on the number of digits in the input (after removing delimiters):
 *
 * - 1 or 2 digits: The input is treated as a day of the current month.
 * - 3 or 4 digits: The input is split into two parts representing day and month,
 *   where the order depends on the language:
 *   - For languages other than "it", the order is MMDD.
 *   - For "it", the order is DDMM.
 * - 5 or 6 digits: The input includes day, month, and a two-digit year.
 *   The two-digit year is expanded:
 *   - If greater than 50, it is assumed to be in the 1900s.
 *   - Otherwise, it is assumed to be in the 2000s.
 * - 7 or 8 digits: The input includes day, month, and a four-digit year.
 *
 * The language parameter determines the order in which day and month are interpreted:
 * - If language is "it", the order is DDMMYYYY.
 * - For all other languages, the order is MMDDYYYY.
 *
 * Note that JavaScript’s Date object uses zero-based month indexing, so the month
 * value is adjusted accordingly.
 *
 * @param input - The date string to normalize. It may contain slashes or hyphens.
 * @param language - A string indicating the language format ("it" for Italian, defaults to other formats).
 * @returns A Date object representing the normalized date. If parts of the date are missing,
 *          the corresponding value from the current date is used. If the date is invalid,
 *          the original input string is returned.
 */
export declare function normalizeDate(input: string, language: string): string | Date;
/**
 * Determines if the provided string is a valid ISO date in the 'YYYY-MM-DD' format.
 *
 * This function checks that the input string conforms to the format where:
 * - The first four characters represent the year.
 * - The fifth character is a hyphen.
 * - The next two characters represent the month.
 * - The eighth character is a hyphen.
 * - The final two characters represent the day.
 *
 * The check is performed using a regular expression and ensures that the length
 * of the string is exactly 10 characters.
 *
 * @param date - The date string to validate.
 * @returns True if the string is a valid ISO date in 'YYYY-MM-DD' format; otherwise, false.
 */
export declare function isISODate(date: string): boolean;
/**
 * Determines whether the provided value is a valid Date object.
 *
 * The function checks if the given parameter is an instance of the Date class and that its
 * time value is not NaN, ensuring that it represents a valid date.
 *
 * @param date - The Date object to validate.
 * @returns True if the input is a valid Date, otherwise false.
 */
export declare function isValidDate(date: Date): boolean;
/**
 * Validates whether a given string is in the format "YYYYMMDD" and represents a valid date.
 *
 * @param dateStr - The date string to validate, expected to be in the format "YYYYMMDD".
 * @returns `true` if the string is a valid date in the "YYYYMMDD" format, otherwise `false`.
 */
export declare function isValidYYYYMMDD(dateStr: string): boolean;
/**
  * Validates whether a given string is in the format "YYMMDD" and represents a valid date.
 *
 * @param dateStr - The date string to validate, expected to be in the format "YYMMDD".
 * @returns `true` if the string is a valid date in the "YYMMDD" format, otherwise `false`.
 */
export declare function isValidYYMMDD(dateStr: string): boolean;
/**
 * Validates whether a given string is in the format "DDMMYY" and represents a valid date.
 *
 * @param dateStr - The date string to validate, expected to be in the format "DDMMYY".
 * @returns `true` if the string is a valid date in the "DDMMYY" format, otherwise `false`.
 */
export declare function isValidDDMMYY(dateStr: string): boolean;
/**
  * Validates whether a given string is in the format "DDMMYYYY" and represents a valid date.
 *
 * @param dateStr - The date string to validate, expected to be in the format "DDMMYYYY".
 * @returns `true` if the string is a valid date in the "DDMMYYYY" format, otherwise `false`.
 */
export declare function isValidDDMMYYYY(dateStr: string): boolean;
/**
 * Calculate the century of a 2-digit year, based on the official IBM specifications:
 * - Range: 1940 to 2039
 * - If 2-digit year is greater than 39, then 19xx, otherwise 20xx.
 * Source: https://www.ibm.com/docs/en/i/7.4.0?topic=formats-date-data-type
 *
 * @param year - The year in string format. If the number of digits is greater than 2, only the first ones are considered.
 * @returns The century 19 or 20.
 */
export declare function evaluateCenturyYY(year: string): "19" | "20";
/**
 * This function checks if the provided date is a valid date according to the
 * calendar rules.
 * Days should be in the range of 1-31 and consistent with the month.
 * Months should be in the range of 0-11 (January is 0, December is 11).
 * Leap years should be checked for February.
 *
 * @param dd - The day to check.
 * @param mm - The month to check.
 * @param yyyy - The year to check (not used in this function).
 * @returns True if the date is valid, otherwise false.
 */
export declare function isCalendarDate(dd: number, mm: number, yyyy: number): boolean;
/**
 * Checks if a given year is a leap year.
 * A year is considered a leap year if:
 * - It is divisible by 4.
 * - If it is divisible by 100, it must also be divisible by 400.
 *
 * @param year - The year to check.
 * @returns True if the year is a leap year, otherwise false.
 */
export declare function isLeapYear(year: number): boolean;
/**
 * Formats a Date object into a string with the format "YYYY-MM-DD" (ISO).
 * This function is useful when the toISOString() method is not reliable because
 * the date is not in UTC.
 *
 * @param date - The Date instance to be formatted.
 * @returns The date in ISO format.
 */
export declare function formatLocalDate(date: Date): string;
//# sourceMappingURL=date.d.ts.map