/**
 * Checks if a given date is valid or not.
 * @param date The date object to check.
 */
export declare function isValidDate(date: Date): boolean;
/**
 * Converts a given two-digit year to its four digit string equivalent or pads with leading zero's to make four digit.
 * Returns undefined if the input is invalid.
 * @param year The string for the year.
 */
export declare function tryParseYear(year: string): string;
/**
 * Converts a given string to a corresponding two digit month. Performs basic validation.
 * Returns undefined if input is valid.
 * @param month The string for the month.
 */
export declare function tryParseMonth(month: string): string;
/**
 * Converts a given string to a corresponding two digit day. Performs basic validation.
 * Returns undefined if input is valid.
 * @param month The string for the day.
 */
export declare function tryParseDay(day: string): string;
/**
 * Processes user input and parses it in the current date format if possible. Else returns undefined.
 * The purpose of this function is to allow maximum leeway to the user. As long as there are three
 * numeric values in the input, we'll parse it correctly regardless of separator used and regardless
 * of whether the day/month were entered as 1 or 2 digits or whether year was entered as 2 or 4 digits.
 * While some basic validation is performed, this function is simply intended to format user input
 * correctly and should not be relied upon for validation. Note that this function will always return
 * four digit year and two digit day and month tokens.
 * @param input The input date text.
 */
export declare function tryParseDateText(input: string): string;
/**
 * Retrieves the DateFns locale corresponding to the specified language. This function will return undefined
 * if the locale is not found.
 * If the specified language is region specific eg. 'de-AT', this function will first try to retrieve it. In
 * the event of failure, it will also try to retrieve the generic locale for the given language i.e. 'de' for the
 * current example.
 * @param language The target language to retrieve the locale for.
 */
export declare function getDateFnsLocale(language: string): Promise<Locale | undefined>;
/**
 * Gets the date format based on the current browser locale. This function will always return four digit year tokens
 * and two digit month and day tokens. The browser locale however, will determine their placement and the separator.
 */
export declare function getLocaleDateFormat(): string;
export declare function getLocaleDateFormatSeparator(): string;
/**
 * Returns the position of the year, month or day in the date format. eg. 2 for year position in mm/dd/yyyy
 * 1 for year position in mm/yyyy/dd and 0 for year position in yyyy/mm/dd.
 */
export declare function getLocaleDateFormatTokenPosition(token: "yyyy" | "dd" | "MM"): number;
/**
 * Returns a string formatted using the locale date format while always using 'yyyy', 'MM' and
 * 'dd' token styles ie two digit months and days and four digit years.
 * @param date The input date
 */
export declare function getDateAsLocaleFormattedString(date: Date): string;
/**
 * This function is for the sole purpose of facilitating testing. This should not be
 * used for any other purpose. An incorrect value set here will result in incorrect
 * behaviour for the duration of the session or until the value is cleared.
 * @param dateFormat The date format to set in cache.
 */
export declare function __test__setlocaleDateFormatInCache(dateFormat: string): void;
