import { ReactNode, RefObject } from 'react'; import { SchedulerProps } from '../types/scheduler-types'; import { ViewsInfo, ActiveViewProps } from '../types/internal-interface'; import { CalendarView, CalendarChangeEvent } from '@syncfusion/react-calendars'; /** * Props interface for useScheduler hook */ interface UseSchedulerProps extends SchedulerProps { /** * Array of view components */ viewComponents: ViewsInfo[]; } /** * Result interface for useScheduler hook */ interface UseSchedulerResult { /** * The class names for the scheduler */ classNames: string; /** * The current selected date */ selectedDate: Date; /** * The current active view */ view: string; /** * The dates to render in the current view */ renderDates: Date[]; /** * The merged props for the current active view */ activeViewProps: ActiveViewProps; /** * The formatted date range text */ dateRangeText: string; /** * Whether the calendar popup is showing */ showCalendar: boolean; /** * Specifies the view of the Calendar. * * @default 'Month' */ calendarView?: CalendarView; /** * Handle selected date change */ handleSelectedDateChange: (date: Date) => void; /** * Handle current view change */ handleCurrentViewChange: (view: string) => void; /** * Get available views from view components */ getAvailableViews: () => ViewsInfo[]; /** * Handle view button click */ handleViewButtonClick: (name: string) => void; /** * Handle navigation to previous time period */ handlePreviousClick: () => void; /** * Handle navigation to next time period */ handleNextClick: () => void; /** * Handle navigation to today */ handleTodayClick: () => void; /** * Handle date dropdown click */ handleDateDropdownClick: () => void; /** * Handle calendar date change */ handleCalendarChange: (args: CalendarChangeEvent) => void; /** * Render the current view component */ renderCurrentView: () => ReactNode; } /** * Hook for managing scheduler state and functionality * * @param {UseSchedulerProps} props - Scheduler component props * @returns {UseSchedulerResult} Scheduler state and handlers * @private */ export declare const useScheduler: (props: UseSchedulerProps) => UseSchedulerResult; /** * Hook to handle clicks outside a specific element. * Sets up a document-level click listener that checks if clicks occur outside the specified element. * * @param {RefObject} elementRef - Reference to the element to check clicks against * @param {boolean} isOpen - Whether the element is currently open/visible * @param {Function} onOutsideClick Callback to execute when we click outside the popup * @returns {void} * @private */ export declare const useOutsideClick: (elementRef: RefObject, isOpen: boolean, onOutsideClick: () => void) => void; export {};