import { CalendarProps } from 'react-big-calendar'; import { withDragAndDropProps } from 'react-big-calendar/lib/addons/dragAndDrop'; export type SchedularEvent = { allDay: boolean | undefined; title: React.ReactNode | undefined; start: Date | undefined; end: Date | undefined; resource: Resource | undefined; }; export type Resource = { id: string; name: string; }; export type SlotInfo = { start: Date; end: Date; slots: Date[]; }; export type SchedularWrapperProps = CalendarProps & withDragAndDropProps & { locale: string; }; export interface CalendarEvent { id: string; title: string; start: Date; end: Date; allDay?: boolean; attendees?: string; location?: string; description?: string; calendar?: string; recurrenceRule?: string; eventType?: "Hearing" | "Payment" | "Review" | "Other"; [key: string]: any; } export interface AppointmentEvent extends CalendarEvent { caseId?: string; facilitator?: string; putativeParent?: string; participants?: string[]; meetingMethod?: string; labName?: string; hearingType?: string; judge?: string; courtAddress?: string; courtCity?: string; courtState?: string; courtRoom?: string; notes?: string; appointmentType?: string; } export interface SchedularProps { events?: CalendarEvent[]; caseOptions?: string[]; facilitators?: string[]; labs?: string[]; hearingTypes?: string[]; onAppointmentSave?: (data: any) => void; onAppointmentDelete?: (data: any) => void; defaultView?: "month" | "week"; selectable?: boolean; }