import { ReactNode } from 'react'; import { IEventsGroup, IOptions, IPartialRanges, ISlot, ISlotEventsToSpaces, ISlotsEvents, ISlotsEventsAndEventsWithSpaces, TOnChangeInCalender } from '../types'; export declare type DateRange = { [key: number]: { startDate: string; endDate: string; }; }; export declare type MiddlewareContent = { datesRange: DateRange; updateDatesRange: (id: number, startDate: string, endDate: string, onChangeData?: any) => void; hasCollision: (event: ISlot, list: ISlot[]) => boolean; day: number; incrementDay: () => void; updateEventsToSpaceByDatesRange: (spaces: ISlotEventsToSpaces, onChange?: TOnChangeInCalender) => { [x: number]: ISlot[]; }; draggableDatesRange: DateRange; setDraggableRange: (id: number, startDate: string, endDate: string) => void; options: IOptions; setOptions: (options: IOptions) => void; partialRanges: IPartialRanges; setPartialRanges: (range: IPartialRanges) => void; getPartialEvents: (events: ISlot[], from: number, to: number) => ISlot[]; getTopAndHeight: (startDate: number, endDate: number, horizontal?: boolean) => { top: number; height: number; }; getEventsGroups: (events: ISlot[], horizontal?: boolean) => IEventsGroup[]; isResizing: boolean; setIsResizing: (isResizing: boolean) => void; initiateEventsToSpaces: (slots: ISlotsEventsAndEventsWithSpaces) => void; updateEventsData: () => void; handleDrop: (eventId: number | string, parentId: number | string, spaceId: number | string, newDate: string, newEndDate?: string) => void; eventsToSpaces: ISlotEventsToSpaces; events: ISlotsEvents; }; export declare const MiddlewareContextProvider: ({ children, onChange, }: { children: ReactNode; onChange?: TOnChangeInCalender | undefined; }) => JSX.Element; export declare const useMiddlewareContext: () => MiddlewareContent;