import { GhanttTimelineScale } from './types'; /** Convierte `Date` o ISO/string en timestamp ms. */ export declare function ghanttParseTime(d: Date | string): number; /** Inicio del día local (00:00) para un timestamp. */ export declare function ghanttStartOfLocalDay(ms: number): number; /** Inicio del mes local. */ export declare function ghanttStartOfLocalMonth(ms: number): number; /** Inicio de la hora local (minutos y segundos a 0). */ export declare function ghanttStartOfLocalHour(ms: number): number; /** Suma meses calendario en hora local (mismo día del mes cuando existe). */ export declare function ghanttAddCalendarMonths(ms: number, delta: number): number; export interface GhanttExpandedDayRangeOptions { /** Incluye el mes completo **anterior** al mes que contiene `viewStart`. @default true */ includeLeadingFullMonth?: boolean; } /** * Rango de eje diario para rejilla y barras: mes anterior completo + meses hasta fin del mes de `viewEnd`. * `endExclusiveMs` es el instante 00:00 del día siguiente al último día incluido (intervalo semiabierto). */ export declare function ghanttResolveExpandedDayRange(viewStart: Date | string, viewEnd: Date | string, options?: GhanttExpandedDayRangeOptions): { startMs: number; endExclusiveMs: number; }; export interface GhanttTimelineSlot { /** Inicio del intervalo del slot (ms). */ startMs: number; /** Etiqueta breve para cabecera. */ label: string; } /** Piso superior de la cabecera Gantt (p. ej. meses o años), alineado en ancho con los slots inferiores. */ export interface GhanttUpperSegment { /** Texto visible (mes y año, año, etc.). */ label: string; /** Cuántos slots del piso inferior ocupa (misma suma que `slots.length`). */ slotSpan: number; } /** * Agrupa slots consecutivos para el primer piso de la cabecera (alineado con el segundo piso). * - `day` / `week`: agrupa por mes–año del inicio de cada slot. * - `month`: agrupa por año. * - `year`: sin piso superior (solo años en el piso inferior). */ export declare function ghanttBuildUpperFloorSegments(slots: readonly GhanttTimelineSlot[], scale: GhanttTimelineScale): GhanttUpperSegment[]; /** * Genera slots alineados a `scale` entre `viewStart` y `viewEnd` para rejilla y cabecera. * Con `scale: 'day'`, por defecto amplía a meses completos (ver `ghanttResolveExpandedDayRange`). */ export declare function ghanttBuildTimelineSlots(viewStart: Date | string, viewEnd: Date | string, scale?: GhanttTimelineScale, options?: GhanttExpandedDayRangeOptions): GhanttTimelineSlot[]; /** * Posición horizontal de un intervalo [start,end] dentro del viewport [viewStart,viewEnd] en %. * Devuelve `null` si no hay solape. */ export declare function ghanttBarLayoutPercent(viewStartMs: number, viewEndMs: number, barStartMs: number, barEndMs: number): { leftPct: number; widthPct: number; } | null; /** * Intervalo temporal que cubren los slots generados (para posicionar barras alineadas a la rejilla). * `endExclusiveMs` es exclusivo. */ export declare function ghanttSlotsTimeExtent(slots: readonly GhanttTimelineSlot[], scale: GhanttTimelineScale): { startMs: number; endExclusiveMs: number; } | null; //# sourceMappingURL=ganttTimeline.d.ts.map