import { ITimeValidationService } from "../interfaces"; /** * TimeValidationService - Implementation of ITimeValidationService * Validates times against constraints */ export declare class TimeValidationService implements ITimeValidationService { /** * Check if a time is valid according to constraints * @param time Time to validate * @param minTime Minimum allowed time * @param maxTime Maximum allowed time * @param disabledTimes Array of disabled times * @param disabledHours Array of disabled hours * @param disabledMinutes Array of disabled minutes * @param disabledSeconds Array of disabled seconds * @returns Whether the time is valid */ isTimeValid(time: Date, minTime: Date | null, maxTime: Date | null, disabledTimes: Date[], disabledHours: number[], disabledMinutes: number[], disabledSeconds: number[]): boolean; /** * Check if a time is within allowed range * @param time Time to check * @param minTime Minimum allowed time * @param maxTime Maximum allowed time * @returns Whether time is in range */ isTimeInRange(time: Date, minTime: Date | null, maxTime: Date | null): boolean; /** * Check if a time is specifically disabled * @param time Time to check * @param disabledTimes Array of disabled times * @returns Whether time is disabled */ isTimeDisabled(time: Date, disabledTimes: Date[]): boolean; /** * Check if an hour is disabled * @param hour Hour to check (0-23) * @param disabledHours Array of disabled hours * @returns Whether hour is disabled */ isHourDisabled(hour: number, disabledHours: number[]): boolean; /** * Check if a minute is disabled * @param minute Minute to check (0-59) * @param disabledMinutes Array of disabled minutes * @returns Whether minute is disabled */ isMinuteDisabled(minute: number, disabledMinutes: number[]): boolean; /** * Check if a second is disabled * @param second Second to check (0-59) * @param disabledSeconds Array of disabled seconds * @returns Whether second is disabled */ isSecondDisabled(second: number, disabledSeconds: number[]): boolean; /** * Validate time format string * @param timeString Time string to validate * @param format Expected format * @returns Whether format is valid */ validateTimeFormat(timeString: string, format: string): boolean; /** * Get time-only milliseconds (ignoring date part) * @param time Date object * @returns Milliseconds since midnight */ private getTimeOnlyMs; /** * Basic time string parsing for validation * @param timeString Time string to parse * @returns Parsed time or null if invalid */ private parseBasicTimeString; }