import { Nullable, TimeFormat } from '../types/general';
/**
 * It returns true if the input is a valid date string, and false otherwise.
 * Note:
 *  This is not a strict date validation, it just use Date.parse to check the input string can be parsed to a valid date or not.
 *  For strict date validation, please use CalendarDate.fromString method in calendar-date.ts
 *  Example:
 *      For Chrome: Date.parse('Jan/08/2026') => 1767801600000
 *      For Safari: Date.parse('Jan/08/2026') => NaN
 *      Format is DD/MM/YYYY: Date.parse('20/11/2024') => NaN
 *
 * @param {string} input - The string to check.
 * @returns {boolean} is a valid date string or not
 */
export declare const isDateStr: (input: string) => boolean;
/**
 * Compare if the firstDate is after the secondDate
 *
 * @param {Date} firstDate - The first date to compare.
 * @param {Date} secondDate - The date to compare to.
 * @returns {boolean} Return true if the firstDate is after the secondDate, otherwise it returns false.
 */
export declare const compareIsAfter: (firstDate: Date, secondDate: Date) => boolean;
/**
 * Compare if the firstDate is before the secondDate
 *
 * @param {Date} firstDate - The first date to compare.
 * @param {Date} secondDate - The date to compare to.
 * @returns {boolean} Return true if the firstDate is before the secondDate, otherwise it returns false.
 */
export declare const compareIsBefore: (firstDate: Date, secondDate: Date) => boolean;
/**
 * Compare if the first date is before or the same as the second date.
 *
 * @param {Date} firstDate - The first date to compare.
 * @param {Date} secondDate - The date to compare against.
 * @returns {boolean} Return true if the firstDate is before or the same as the secondDate, otherwise it returns false.
 */
export declare const compareIsSameOrBefore: (firstDate: Date, secondDate: Date) => boolean;
/**
 * It returns true if the input string is a valid time string in the format specified by the timeFormat parameter
 *
 * @param {string} input - The string to be tested.
 * @param {TimeFormat} timeFormat - '12-hour' | '24-hour'
 * @returns {boolean} A boolean value.
 */
export declare const isTimeStr: (input: string, timeFormat: TimeFormat) => boolean;
/**
 * It takes a number and returns a string
 *
 * @param {number} number - number - The number to pad
 * @param {number} [length=2] - The length of the resulting string.
 * @param {string} [padChar='0'] - The character to pad the number with.
 * @returns {Nullable<string>} A function that takes a number as an argument and returns a nullable string.
 */
export declare const pad: (number: number, length?: number, padChar?: string) => Nullable<string>;
/**
 * The `convert12HourTo24HourFormat` function takes a time string in 12-hour format and converts it to 24-hour format.
 *
 * @param {string} time the time string need to convert, the time string should be 12-hour or 24-hour format
 * @returns {string} 24 hour format time string
 */
export declare const convert12HourTo24HourFormat: (time: string) => string;
