export declare type TimeStringFormat = 'hh:mm' | 'hh:m' | 'h:m' | 'h:mm' | '12-hour' | '24-hour'; /** * CalendarTime represents hours/minutes in 24-hour format and centralizes parsing/formatting logic. */ export declare class CalendarTime { private readonly _hours; private readonly _minutes; constructor(hours: number, minutes: number); /** * Parse a raw time string into a CalendarTime instance. * * @param {string} rawTime - Source time value such as "9:00" or "9am". * @returns {CalendarTime} Parsed time. */ static fromString(rawTime: string): CalendarTime; /** * Build a CalendarTime from a Date instance while preserving hours/minutes. * * @param {Date} date - The source date. * @returns {CalendarTime} Time representation extracted from the date. */ static fromDate(date: Date): CalendarTime; /** * Calculate the duration in the requested precision between two CalendarTime values, accounting for overnight spans. * * @param {CalendarTime} start - Start time of the interval. * @param {CalendarTime} end - End time of the interval. * @param {'minutes' | 'hours'} precision - Desired unit of measure for the result (defaults to minutes). * @returns {number} Duration expressed in the requested precision. */ static calculateDuration(start: CalendarTime, end: CalendarTime, precision?: 'minutes' | 'hours'): number; /** * Normalize various time inputs (e.g. 9am, 9:30 PM) to a 24-hour HH:mm string. * * @param {string} timeString - User supplied time value. * @returns {string} 24-hour formatted string. */ private static convertTimeTo24Hour; /** * Hour component in 24-hour clock. * * @returns {number} Hours between 0-23. */ get hours(): number; /** * Minute component. * * @returns {number} Minutes between 0-59. */ get minutes(): number; /** * Total minutes elapsed since midnight for this time value. * * @returns {number} Minutes from 00:00. */ get totalMinutes(): number; /** * Format the time into a string using a simple formatter. * * @param {TimeStringFormat} format - time string Format. Defaults to 'hh:mm'. * @returns {string} Formatted time string. */ toString(format?: TimeStringFormat): string; }