import React, { CSSProperties, FC, ForwardedRef, ForwardRefRenderFunction, ReactElement, RefObject } from 'react'; import { VariableSizeGridProps } from 'react-window'; import { ChildGroup, Item, ItemMap, RowMap } from './timeline-data'; export declare type BodyRenderer = ForwardRefRenderFunction; export interface BodyRendererProps { style: CSSProperties; ref: ForwardedRef; } export declare type ItemRenderer = FC>; export interface ItemRendererProps { item: T; style: CSSProperties; } export declare type GroupRenderer = FC; export interface GroupRendererProps { group: ChildGroup; isEven: boolean; isOdd: boolean; isParentGroup: boolean; rowIndex: number; style: CSSProperties; } export declare type TimebarIntervalRenderer = FC; export interface TimebarIntervalRendererProps { time: number; isOdd: boolean; isEven: boolean; isDay: boolean; style: CSSProperties; } export declare type RowRenderer = FC; export interface RowRendererProps { group: ChildGroup; isEven: boolean; isOdd: boolean; rowIndex: number; style: CSSProperties; } export declare type ColumnRenderer = FC; export declare type ColumnRendererProps = Omit; export declare type TimebarHeaderRenderer = FC; export interface TimebarHeaderProps { style: CSSProperties; } export declare type SidebarHeaderRenderer = FC; export interface SidebarHeaderRendererProps { style: CSSProperties; } export declare type SidebarRenderer = FC; export interface SidebarRendererProps { style: CSSProperties; } export declare type UpsertItem = (item: T) => void; export declare type RemoveItem = (item: T) => void; export declare enum UpdateItemAction { MOVE = 0, RESIZE = 1 } export declare type GetUpdatedItem = (event: React.MouseEvent, item: Item, options: { action?: UpdateItemAction; snapToRow?: boolean; }) => null | Item; export declare type CreateItemAtCursor = (event: React.MouseEvent, defaultValues: Partial & { id: Item['id']; duration: number; defaultGroupId?: ChildGroup['id']; }) => null | { start: number; end: number; groupId?: string; }; export interface TimelineContextValue { BodyRenderer: BodyRenderer; ColumnRenderer?: ColumnRenderer; GroupRenderer?: GroupRenderer; ItemRenderer: ItemRenderer; RowRenderer?: RowRenderer; SidebarHeaderRenderer: SidebarHeaderRenderer; SidebarRenderer: SidebarRenderer; TimebarHeaderRenderer?: TimebarHeaderRenderer; TimebarIntervalRenderer?: TimebarIntervalRenderer; children?: ReactElement | null; columnCount: number; columnWidth: VariableSizeGridProps['columnWidth']; createItemAtCursor: CreateItemAtCursor; endTime: number; getUpdatedItem: GetUpdatedItem; height: number; intervalDuration: number; intervalWidth: number; intervals: number[]; itemData: any; itemHeight: number; itemMap: ItemMap; minItemWidth: number; outerRef: RefObject; overscanColumnStartIndex: number; overscanColumnStopIndex: number; overscanRowStartIndex: number; overscanRowStopIndex: number; removeItem: RemoveItem; rowCount: number; rowHeight: VariableSizeGridProps['rowHeight']; rowMap: RowMap; setStickyItemIds: (items: Array) => void; collectionSidebarWidth: number; groupSidebarWidth: number; snapDuration: number; startTime: number; stickyItemIds: Array; timebarHeaderHeight: number; timebarIntervalHeight: number; upsertItem: UpsertItem; visibleColumnStartIndex: number; visibleColumnStopIndex: number; visibleRowStartIndex: number; visibleRowStopIndex: number; width: number; } declare const TimelineContext: React.Context; export default TimelineContext;