import { GanttDate } from '../utils/date'; import { BehaviorSubject } from 'rxjs'; import { GanttLink } from './link'; import { GanttViewType } from './view-type'; export interface GanttItemRefs { width: number; x: number; y: number; } export declare enum GanttItemType { bar = "bar", range = "range", custom = "custom" } export interface GanttItem { id: string; title: string; start?: number; end?: number; group_id?: string; takeTime?: GanttItem[]; links?: (GanttLink | string)[]; draggable?: boolean; itemDraggable?: boolean; linkable?: boolean; expandable?: boolean; expanded?: boolean; children?: GanttItem[]; color?: string; barStyle?: Partial; origin?: T; type?: GanttItemType; progress?: number; dragGroup?: string; changed?: boolean; } export declare class GanttItemInternal { id: string; title: string; start: GanttDate; end: GanttDate; links: GanttLink[]; color?: string; barStyle?: Partial; draggable?: boolean; itemDraggable?: boolean; takeTime?: GanttItemInternal[]; linkable?: boolean; origin: GanttItem; expandable?: boolean; expanded?: boolean; loading: boolean; children: GanttItemInternal[]; type?: GanttItemType; progress?: number; fillDays?: number; viewType?: GanttViewType; level?: number; overlaps?: { start: GanttDate; end: GanttDate; width: number; }[]; draging?: boolean; changed?: boolean; get refs(): { width: number; x: number; y: number; }; refs$: BehaviorSubject<{ width: number; x: number; y: number; }>; constructor(item: GanttItem, level?: number, options?: { fillDays: number; }); fillItemStartOrEnd(item: GanttItem): void; updateRefs(refs: GanttItemRefs): void; updateDateInMinute(start: GanttDate, end: GanttDate): void; updateDate(start: GanttDate, end: GanttDate, isInMinute?: boolean): void; updateLevel(level: number): void; addChildren(items: GanttItem[]): void; setExpand(expanded: boolean): void; addLink(link: GanttLink): void; differenceInMinutes(): number; }