import { ISODateString, TaskEntity, TimelineZoomPreset } from './types'; export interface TimelineHeaderCell { readonly key: string; readonly label: string; readonly x: number; readonly width: number; } export interface TimelineHeaderRow { readonly key: string; readonly cells: readonly TimelineHeaderCell[]; } export interface TimelineScale { readonly startDate: ISODateString; readonly endDate: ISODateString; readonly tickWidth: number; readonly tickCountDays: number; readonly totalWidth: number; dateToX(date: ISODateString): number; xToDate(x: number): ISODateString; getHeaderRows(): readonly TimelineHeaderRow[]; } /** Resolve a named zoom preset to its tick width and calendar-day span. */ export declare function getTimelinePreset(preset?: TimelineZoomPreset): { tickWidth: number; tickCountDays: number; }; /** * Compute the timeline date range for a task set. * * The returned range includes light padding around the task dates and always * spans at least two years so the timeline has enough future scheduling space. */ export declare function getTaskTimelineRange(tasks: readonly TaskEntity[]): { startDate: ISODateString; endDate: ISODateString; }; /** * Create a deterministic timeline scale for date/pixel conversion and headers. * * The scale is pure: callers can use it in tests, renderers, or future * scheduling code without depending on DOM or RevoGrid state. */ export declare function createTimelineScale(options: { readonly startDate: ISODateString; readonly endDate: ISODateString; readonly zoomPreset?: TimelineZoomPreset; readonly locale?: string; }): TimelineScale; //# sourceMappingURL=timeline.d.ts.map