/** * Módulo extremadamente modular para validaciones de tiempo * Maneja horarios específicos, días festivos y fines de semana */ export interface TimeInfo { hour: number; minutes: number; weekday: number; date: Date; isWeekend: boolean; isHoliday: boolean; } export interface TimeRange { startHour: number; startMinutes: number; endHour: number; endMinutes: number; } export interface HolidayConfig { usHolidays: Date[]; colombiaHolidays: Date[]; } /** * Clase para obtener información de tiempo en zona horaria de Bogotá */ export declare class BogotaTimeProvider { /** * Obtiene la fecha y hora actual en zona horaria de Bogotá */ static getCurrentBogotaTime(): Date; /** * Convierte una fecha UTC a zona horaria de Bogotá */ static convertToBogotaTime(utcDate: Date): Date; /** * Obtiene información detallada del tiempo en Bogotá */ static getBogotaTimeInfo(date?: Date): TimeInfo; /** * Verifica si una fecha es fin de semana */ private static isWeekend; } /** * Clase para validar rangos de tiempo específicos */ export declare class TimeRangeValidator { /** * Verifica si una hora está dentro de un rango específico */ static isTimeInRange(timeInfo: TimeInfo, range: TimeRange): boolean; /** * Verifica si es horario de mercado abierto (8:00 AM - 1:00 PM) */ static isMarketOpenHours(timeInfo: TimeInfo): boolean; /** * Verifica si es horario de mercado cerrado (1:00 PM - 4:30 PM) */ static isMarketClosedHours(timeInfo: TimeInfo): boolean; /** * Verifica si es después de las 4:30 PM (horario de comparación Yahoo) */ static isAfterMarketHours(timeInfo: TimeInfo): boolean; } /** * Clase para validar días festivos */ export declare class HolidayValidator { private static holidayConfig; /** * Configura los días festivos */ static setHolidayConfig(config: HolidayConfig): void; /** * Verifica si una fecha es día festivo en Estados Unidos */ static isUSHoliday(date: Date): boolean; /** * Verifica si una fecha es día festivo en Colombia */ static isColombiaHoliday(date: Date): boolean; /** * Verifica si una fecha es día festivo en cualquiera de los dos países */ static isHoliday(date: Date): boolean; /** * Compara si dos fechas son el mismo día */ private static isSameDate; /** * Obtiene los días festivos configurados para el año actual */ static getHolidaysForYear(year: number): HolidayConfig; } /** * Clase principal para validaciones de tiempo */ export declare class TimeValidator { /** * Inicializa el validador con días festivos del año actual */ static initialize(): void; /** * Obtiene información completa de tiempo incluyendo validaciones de festivos */ static getCompleteTimeInfo(date?: Date): TimeInfo; /** * Verifica si es un día hábil (no fin de semana ni festivo) */ static isBusinessDay(timeInfo: TimeInfo): boolean; /** * Verifica si es día no hábil (fin de semana o festivo) */ static isNonBusinessDay(timeInfo: TimeInfo): boolean; } //# sourceMappingURL=time-validator.d.ts.map