import { BaseNylasConnectorInterface, NylasSchedulerConfigConnectorInterface, NylasSchedulerConnectorInterface } from "../connector/connector-interface"; import { NylasBookedEventCard } from '../components/scheduler/nylas-booked-event-card/nylas-booked-event-card'; import { NylasDatePicker } from '../components/scheduler/nylas-date-picker/nylas-date-picker'; import { NylasLocaleSwitch } from '../components/scheduler/nylas-locale-switch/nylas-locale-switch'; import { NylasBookingForm } from '../components/scheduler/nylas-booking-form/nylas-booking-form'; import { NylasSelectedEventCard } from '../components/scheduler/nylas-selected-event-card/nylas-selected-event-card'; import { NylasTimeslotPicker } from '../components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker'; import { ExtractEventEmitterProperties } from './types'; import { NylasAvailabilityPicker } from '../components/scheduler-editor/nylas-availability-picker/nylas-availability-picker'; import { NylasCalendarPicker } from '../components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker'; import { NylasBookingCalendarPicker } from '../components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker'; import { NylasEventTitle } from '../components/scheduler-editor/nylas-event-title/nylas-event-title'; import { NylasEventDuration } from '../components/scheduler-editor/nylas-event-duration/nylas-event-duration'; import { NylasEventDescription } from '../components/scheduler-editor/nylas-event-description/nylas-event-description'; import { NylasEditorTabs } from '../components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs'; import { NylasListConfigurations } from '../components/scheduler-editor/nylas-list-configurations/nylas-list-configurations'; import { NylasCancelBookingForm } from '../components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form'; import { NylasCancelledEventCard } from '../components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card'; import { NylasAdditionalParticipants } from '../components/scheduler-editor/nylas-additional-participants/nylas-additional-participants'; import { NylasBookingConfirmationRedirect } from '../components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect'; import { NylasBookingConfirmationType } from '../components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type'; import { NylasBookingFormConfig } from '../components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config'; import { NylasSchedulingMethod } from '../components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method'; import { NylasCancellationPolicy } from '../components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy'; import { NylasConfirmationEmail } from '../components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email'; import { NylasConnectedCalendars } from '../components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars'; import { NylasCustomBookingFlow } from '../components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow'; import { NylasCustomizeBookingSettings } from '../components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings'; import { NylasEventLocation } from '../components/scheduler-editor/nylas-event-location/nylas-event-location'; import { NylasLimitFutureBookings } from '../components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings'; import { NylasMinBookingNotice } from '../components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice'; import { NylasParticipantBookingCalendars } from '../components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars'; import { NylasParticipantsCustomAvailability } from '../components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability'; import { NylasReminderEmails } from '../components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails'; import { NylasReminderTime } from '../components/scheduler-editor/nylas-reminder-time/nylas-reminder-time'; export type EventOverride = Record, connector?: Connector) => Promise>; export type SchedulerComponents = NylasTimeslotPicker | NylasDatePicker | NylasLocaleSwitch | NylasBookingForm | NylasSelectedEventCard | NylasBookedEventCard; export type NylasTimeslotPickerEventEmitterProperties = Exclude, undefined>; export type NylasDatePickerEventEmitterProperties = Exclude, undefined>; export type NylasLocaleSwitchEventEmitterProperties = Exclude, undefined>; export type NylasSchedulerAdditionalDataEventEmitterProperties = Exclude, undefined>; export type NylasSelectedEventCardEventEmitterProperties = Exclude, undefined>; export type NylasBookedEventCardEventEmitterProperties = Exclude, undefined>; export type NylasBookingFormEventEmitterProperties = Exclude, undefined>; export type NylasCancelBookingFormEventEmitterProperties = Exclude, undefined>; export type NylasCancelledEventCardEventEmitterProperties = Exclude, undefined>; export type SchedulerEventEmitterProperties = NylasTimeslotPickerEventEmitterProperties | NylasDatePickerEventEmitterProperties | NylasLocaleSwitchEventEmitterProperties | NylasSchedulerAdditionalDataEventEmitterProperties | NylasSelectedEventCardEventEmitterProperties | NylasBookedEventCardEventEmitterProperties | NylasBookingFormEventEmitterProperties | NylasCancelBookingFormEventEmitterProperties | NylasCancelledEventCardEventEmitterProperties; export type SchedulerEventOverride = Partial<{ [P in SchedulerEventEmitterProperties as P['key']]: (event: CustomEvent, connector?: NylasSchedulerConnectorInterface) => Promise; }> & EventOverride; export type NylasSchedulerEditorComponents = NylasAdditionalParticipants | NylasAvailabilityPicker | NylasBookingCalendarPicker | NylasBookingConfirmationRedirect | NylasBookingConfirmationType | NylasBookingFormConfig | NylasSchedulingMethod | NylasCalendarPicker | NylasCancellationPolicy | NylasConfirmationEmail | NylasConnectedCalendars | NylasCustomBookingFlow | NylasCustomizeBookingSettings | NylasEditorTabs | NylasEventDescription | NylasEventDuration | NylasEventLocation | NylasEventTitle | NylasLimitFutureBookings | NylasListConfigurations | NylasMinBookingNotice | NylasParticipantBookingCalendars | NylasParticipantsCustomAvailability | NylasReminderEmails | NylasReminderTime; export type NylasEditorTabsEventEmitterProperties = Exclude, undefined>; export type NylasListConfigurationsEventEmitterProperties = Exclude, undefined>; export type NylasSchedulerEditorEventEmitterProperties = NylasEditorTabsEventEmitterProperties | NylasListConfigurationsEventEmitterProperties; export type SchedulerEditorEventOverride = Partial<{ [P in NylasSchedulerEditorEventEmitterProperties as P['key']]: (event: CustomEvent, connector?: NylasSchedulerConfigConnectorInterface) => Promise; }> & EventOverride;