import { RefObject } from 'react'; import { SchedulerEventClickEvent, EventModel, TimeScaleProps, SchedulerScrollToProps } from '../types/scheduler-types'; import { TimelineProcessedEvent } from '../types/internal-interface'; import { CloneBase } from './clone-manager'; type EventVisibilityBounds = { isOverflowLeft: boolean; isOverflowRight: boolean; visibleStart: number; visibleEnd: number; isVisibleOnDate: boolean; }; export declare function parseHourStringToMinutes(hour?: string): number; export declare const clearAndSelect: (target: HTMLElement) => void; export declare const getCellFromIndex: (root: HTMLElement | null | undefined, rowIndex: number, colIndex: number) => HTMLElement | null; export declare const clearAndSelectAppointment: (target: HTMLElement) => void; export declare const getSelectedEvents: (eventsData: EventModel[], schedulerElement?: HTMLElement) => SchedulerEventClickEvent; export declare const getCellDetails: (input?: Element | Element[], timeScale?: TimeScaleProps) => { startTime?: Date; endTime?: Date; isAllDay: boolean; element: HTMLElement; } | null; export declare const getScrollContainer: (root: HTMLElement) => HTMLElement; export declare const setScroll: (root: HTMLElement, target: HTMLElement | null, offset?: number) => void; export declare const scrollToWorkHour: (scrollTo: SchedulerScrollToProps, schedulerElementRef: RefObject, selectedDate?: Date) => void; export declare const scrollToHour: (hour: string, date: Date | undefined, schedulerElementRef: RefObject) => void; export declare function focusElement(root: HTMLElement, selector: string): void; export declare function getEventIDType(eventsData?: EventModel[]): string; export declare function getEventMaxID(eventsData?: EventModel[], resourceId?: number): string | number; export declare function findIndexInData(data: Record[], field: string, value: string | number): number; export declare function getGroupIndexFromElement(element: HTMLElement | null): number | undefined; export declare function getCloneTop(element: HTMLElement | null, groupIndex: number | null | undefined, cloneInfo: CloneBase): number; export declare const applyClassToElements: (element: HTMLElement | null, selector: string, className: string) => void; export declare const removeClassFromElements: (element: HTMLElement | null, selector: string, className: string) => void; export declare function getEventVisibilityBounds(startMins: number, endMins: number, schedulerStartMinutes: number, schedulerEndMinutes: number): EventVisibilityBounds; export declare function getDayBounds(date: Date): { dayStart: Date; dayEnd: Date; }; export declare function getClampedEventMinutesInRange(eventStart: Date, eventEnd: Date, rangeStart: Date, rangeEnd: Date): { startMins: number; endMins: number; }; export declare function isBlockEventIndicator(event: EventModel, startDate: Date, endDate: Date): boolean; export declare function getEventOverlappingInfo(eventStart?: Date | number | null, eventEnd?: Date | number | null, rangeStart?: Date | number | null, rangeEnd?: Date | number | null): boolean; /** @private */ export type TimelineEventMetadata = { isMultiDay: boolean; isFirstDay: boolean; isLastDay: boolean; firstIdx?: number; lastIdx?: number; isAllDay?: boolean; }; /** @private */ export type TimelineEventsByDateMap = { multiDayEventMap: Map; singleDayEventsPerDate: Map; allDayEventsPerDate: Map; }; /** @private */ export type TimelineEventBuilders = { buildMultiDayEventForRender: (event: EventModel, firstDateIndex: number, lastDateIndex: number, positionIndex: number) => TimelineProcessedEvent | null; buildAllDayEventForRender: (dateIndex: number, date: Date, event: EventModel, positionIndex: number) => TimelineProcessedEvent | null; buildMultiDayAllDayEventForRender: (event: EventModel, firstDateIndex: number, lastDateIndex: number, positionIndex: number) => TimelineProcessedEvent | null; buildSingleDayEventForRender: (dateIndex: number, date: Date, event: EventModel, isFirstDay: boolean, isLastDay: boolean, positionIndex: number) => TimelineProcessedEvent | null; }; export declare function collectTimelineEventsForDate(dateIndex: number, eventsByDateMap: TimelineEventsByDateMap): { eventsOnThisDate: EventModel[]; eventMetadata: Map; }; export declare function assignTimelineEventPositions(sortedEvents: EventModel[], eventMetadata: Map, multiDayPositionCache: Map, eventsOverlap?: (eventA: EventModel, eventB: EventModel) => boolean): Map; export declare function buildPositionedTimelineEvent(event: EventModel, meta: TimelineEventMetadata, positionIndex: number, dateIndex: number, date: Date, eventBuilders: TimelineEventBuilders, multiDayPositionedCache?: Map): TimelineProcessedEvent | null; export declare function calculateTimelineEventRowHeight(visibleStackCount: number, eventHeight: number, hasMoreIndicator: boolean, ignoreWhitespace?: boolean): number; export {};