export type EntityId = string; export type TaskId = EntityId; export type DependencyId = EntityId; export type ISODateString = `${number}-${number}-${number}` | `${number}-${number}-${number}T${string}`; export type TaskType = 'summary' | 'task' | 'milestone'; export type DependencyType = 'finish-to-start' | 'start-to-start' | 'finish-to-finish' | 'start-to-finish'; export interface TaskEntity { readonly id: TaskId; readonly parentId: TaskId | null; readonly name: string; readonly type: TaskType; readonly startDate: ISODateString; readonly endDate: ISODateString; readonly progressPercent: number; readonly [key: string]: unknown; } export interface DependencyEntity { readonly id: DependencyId; readonly predecessorTaskId: TaskId; readonly successorTaskId: TaskId; readonly type: DependencyType; readonly lagDays?: number; } export type TimelineZoomPreset = 'day-week' | 'week-month' | 'month-quarter'; export interface GanttVisualConfig { readonly showDependencies?: boolean; readonly showTaskLabels?: boolean; } export interface GanttPluginConfig { readonly id: EntityId; readonly name: string; readonly version: string; readonly timeZone: string; readonly updatedAt: string; readonly zoomPreset?: TimelineZoomPreset; readonly visuals?: GanttVisualConfig; } declare global { interface HTMLRevoGridElement { gantt?: GanttPluginConfig; ganttDependencies?: readonly DependencyEntity[]; } } //# sourceMappingURL=types.d.ts.map