import { ITime } from '@core/types';
/**
 * Converts a time string into {@link ITime}.
 * Throws an error if invalid time string is provided
 * @param time The time string to parse in hh:mm format
 * @returns Instance of {@link ITime}
 * @throws {@link Error}
 * If Invalid time string is provided
 */
declare function parseFromString(time: string): ITime;
/**
 * Formates a {@link ITime} object into string of hh:mm format
 * @param time The {@link time} to format
 * @returns Formatted string
 */
declare function formatAsString(time: ITime): string;
/**
 * Extract time information as {@link ITime} from a {@link Date} object
 * @param date The {@link Date} from which time is extracted
 * @returns An instance of {@link ITime}
 */
declare function extractTimeFromDate(date: Date): ITime;
/**
 * Checks if two instances of {@link ITime} have same time information
 * @param leftTime
 * @param rightTime
 * @returns True if both times are same and vice versa
 */
declare function isEqual(leftTime: ITime, rightTime: ITime): boolean;
/**
 * Is the first time before the second one?
 * @param time the time that should be before the other one to return true
 * @param timeToCompare	the time to compare with
 * @returns True if the first time is before the second time
 */
declare function isBefore(time: ITime, timeToCompare: ITime): boolean;
/**
 * Is the first time after the second one?
 * @param time the time that should be after the other one to return true
 * @param timeToCompare	the time to compare with
 * @returns True if the first time is after the second time
 */
declare function isAfter(time: ITime, timeToCompare: ITime): boolean;
/**
 * Add the specified number of minutes to the given time
 * @param time the time to be changed
 * @param minutes the amount of minutes to be added
 * @param options Optional list of arguments
 * - Prevent Overflow: After adding minutes if time exceeds 23:59 (end of day),
 * setting this value to true will return 23:59
 * @returns the new time with the minutes added
 */
declare function addMinutes(time: ITime, minutes: number, options?: {
    preventOverflow: boolean;
}): ITime;
/**
 * Add the specified number of hours to the given time
 * @param time the time to be changed
 * @param hours the amount of hours to be added
 * @param options Optional list of arguments
 * - Prevent Overflow: After adding hours if time exceeds 23:59 (end of day),
 * setting this value to true will return 23:59
 * @returns the new time with the hours added
 */
declare function addHours(time: ITime, hours: number, options?: {
    preventOverflow: boolean;
}): ITime;
declare function localToUtc(time: ITime, timezone?: string): ITime;
declare function utcToLocal(time: ITime, timezone?: string): ITime;
export declare const TimeUtils: {
    parseFromString: typeof parseFromString;
    formatAsString: typeof formatAsString;
    extractTimeFromDate: typeof extractTimeFromDate;
    isEqual: typeof isEqual;
    isBefore: typeof isBefore;
    isAfter: typeof isAfter;
    addMinutes: typeof addMinutes;
    addHours: typeof addHours;
    localToUtc: typeof localToUtc;
    utcToLocal: typeof utcToLocal;
};
export {};
