import * as React from 'react'; import React__default, { RefObject, Dispatch, SetStateAction, ReactNode, ForwardedRef } from 'react'; import { ListOnItemsRenderedProps } from 'react-window'; import dayjs from 'dayjs'; declare enum DataRepeatTypes { DAY = "DAY", WEEK = "WEEK", MONTH = "MONTH" } declare enum DragStepSizes { FIVE_MIN = "FIVE_MIN", TEN_MIN = "TEN_MIN", FIFTEEN_MIN = "FIFTEEN_MIN", TWENTY_MIN = "TWENTY_MIN", THIRTY_MIN = "THIRTY_MIN", ONE_HOUR = "ONE_HOUR", EIGHT_HOURS = "EIGHT_HOURS", TWELVE_HOURS = "TWELVE_HOURS", ONE_DAY = "ONE_DAY" } declare enum DragTypes { RESIZE_LEFT = 0, RESIZE_RIGHT = 1, DRAG = 2 } declare enum GanttDimensions { HOUR = "hour", TWO_HOURS = "twoHours", THREE_HOURS = "threeHours", FOUR_HOURS = "fourHours", SIX_HOURS = "sixHours", EIGHT_HOURS = "eightHours", TWELVE_HOURS = "twelveHours", DAY = "day" } declare enum GanttUnitOfTimes { DAY = "day", MONTH = "month" } type RepeatDataType = { /** * Type of repeatable gantt item */ repeatType: DataRepeatTypes; /** * Repeatable gantt item start time in seconds (0-86400) */ fromTime: number; /** * Repeatable gantt item end time in seconds (0-86400) */ toTime: number; /** * Start date of repeatable gantt items */ fromDate?: string; /** * End date of Repeatable gantt items */ toDate?: string; /** * Numbers of weekdays for repeating (0-6) */ weekdays?: number[]; /** * Numbers of monthdays for repeating (0-31) */ monthdays?: number[]; startDate?: never; endDate?: never; }; type NoRepeatDataType = { /** * Start date and time of unrepeatable bar item */ startDate: string; /** * End date and time of unrepeatable bar item */ endDate: string; fromTime?: never; toTime?: never; fromDate?: never; toDate?: never; repeatType?: never; weekdays?: never; monthdays?: never; }; type BarItemDataType = RepeatDataType | NoRepeatDataType; type RawGanttDataType> = { /** * Title of gantt item */ title: string; /** * Unique gantt item key */ key: string; /** * Color of gantt item */ color?: string; /** * Data to render gantt item on the chart */ data?: BarItemDataType; /** * Nested gantt items */ children?: GanttDataType[]; }; type GanttDataType> = RawGanttDataType & { [P in keyof T]: T[P]; }; type TransformedDataType = { [P in keyof T as Exclude]: T[P]; }; type GanttItemDataType> = TransformedDataType> & { /** * Tree level of gantt item */ level: number; /** * Parents keys of gantt item */ parentsKeys: string[]; /** * Color of gantt item */ color: string; /** * Is gantt item expanded? */ expanded?: boolean; } & T; type OnBarDoubleClickType = any> = (barData: GanttItemDataType) => any; type OnBarChangeType = any> = (barData: GanttItemDataType, data: (GanttItemDataType & T)[]) => any; interface GanttSettingsType { stepWidth: number; secondsInPixel: number; scaleStepItems: number; initialScrollOffset: number; dimension: GanttDimensions; dragStepSize: DragStepSizes; gridSize: number; } interface GanttContextType { wrapRef: RefObject; scaleDates: number[]; setScaleDates: Dispatch>; settings: GanttSettingsType; setSettings: Dispatch>; scaleRenderState: ListOnItemsRenderedProps; setScaleRenderState: Dispatch>; currentDate: number; setCurrentDate: Dispatch>; } interface BarsRowContextType { barData: GanttItemDataType; } interface IconProps { className?: string; } interface ChartProps { data: GanttDataType[]; className?: string; onBarDoubleClick?: OnBarDoubleClickType; onBarChange?: OnBarChangeType; } declare const Chart: React__default.FC; interface ControlsProps { className?: string; } declare const Controls: React__default.FC; type GanttProps = { children: ReactNode | ReactNode[]; }; declare const Gantt: React__default.FC & { Chart: typeof Chart; Controls: typeof Controls; }; declare const GanttDimensionsSettings: { hour: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; twoHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; threeHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; fourHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; sixHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; eightHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; twelveHours: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; day: { value: number; hours: number; label: string; unitOfTime: GanttUnitOfTimes; itemsCount: number; stepWidth: number; scaleStepItems: number; secondsInPixel: number; }; }; declare const DragStepOptions: { FIVE_MIN: { seconds: number; label: string; }; TEN_MIN: { seconds: number; label: string; }; FIFTEEN_MIN: { seconds: number; label: string; }; TWENTY_MIN: { seconds: number; label: string; }; THIRTY_MIN: { seconds: number; label: string; }; ONE_HOUR: { seconds: number; label: string; }; EIGHT_HOURS: { seconds: number; label: string; }; TWELVE_HOURS: { seconds: number; label: string; }; ONE_DAY: { seconds: number; label: string; }; }; declare const GanttConsts: { ROW_HEIGHT: number; HEADER_HEIGHT: number; TREE_WIDTH: number; LEAF_TITLE_PADDING_LEFT: number; LEAF_CHILDREN_PADDING_LEFT: number; SCALE_STEP_DEFAULT_WIDTH: number; SECONDS_IN_HOUR: number; SECONDS_IN_DAY: number; HOURS_IN_DAY: number; MIN_SCROLL_OFFSET: number; SCALE_STEP_RATIO: number; }; declare const useForwardRef: (ref: ForwardedRef, initialValue?: any) => React.MutableRefObject; declare const useGanttCalculate: () => { calculate: (dimension: GanttDimensions) => void; }; declare const getInitialScrollOffset: (dimension: GanttDimensions, scaleDates: number[], currentDate?: number) => number; declare const getScaleDates: (startDate?: number, count?: number, unitOfTime?: dayjs.ManipulateType) => number[]; declare const getScaleItems: (dimension: GanttDimensions, date: number) => string[]; declare const getWholeWidth: (scaleDates: number[], dimension: GanttDimensions, stepItemsCount: number, stepWidth: number) => number; declare const transformData: (data: RawGanttDataType[], expanded?: boolean, level?: number, index?: number, parentsKeys?: string[]) => GanttItemDataType[]; export { BarItemDataType, BarsRowContextType, DataRepeatTypes, DragStepOptions, DragStepSizes, DragTypes, Gantt, GanttConsts, GanttContextType, GanttDataType, GanttDimensions, GanttDimensionsSettings, GanttItemDataType, GanttSettingsType, GanttUnitOfTimes, IconProps, NoRepeatDataType, OnBarChangeType, OnBarDoubleClickType, RawGanttDataType, RepeatDataType, getInitialScrollOffset, getScaleDates, getScaleItems, getWholeWidth, transformData, useForwardRef, useGanttCalculate };