import { Appearance, Message, NylasErrorResponse, Notetaker } from '@nylas/core'; import { EventEmitter } from '../stencil-public-runtime'; export type DataState = 'loading' | 'ready'; type StoresType = unknown; type StoreInstances = { [K in keyof StoresType]: StoresType[K]; }; type StoreStateKeys = T extends { state: infer S; } ? keyof S : never; export type CombinedStoreStateKeys = { [StoreKey in SK]: StoreStateKeys extends never | undefined ? never : `${StoreKey & string}.${StoreStateKeys & string}`; }[SK]; export type InternalMessage = { id: string; data: Message; collapse: boolean; showContactData: boolean; }; export type InternalAttachment = { blob: Blob; filename: string; contentType: string; size: number; messageId: string; }; export type MethodKeys = { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T]; export type AvailabilityTimeslot = { emails: string[]; start_time: number; end_time: number; capacity?: number; }; export type AvailabilityResponse = { order?: string[]; time_slots: AvailabilityTimeslot[]; participants: { email: string; name: string; }[]; duration: number; }; export type UISettingsResponse = { configuration_id: string; app_client_id: string; scheduler: { available_days_in_future: number; min_cancellation_notice: number; min_booking_notice: number; cancellation_policy: string; notetaker_settings?: Notetaker; }; organizer: { name: string; email: string; }; slug: string; appearance: Appearance; booking_type: string; name: string; }; export type ExtractEventEmitterKeys = { [K in keyof T]: T[K] extends EventEmitter ? K : never; }[keyof T]; export type EventEmitterEventType = T extends EventEmitter ? U : never; export type ExtractEventEmitterProperties = { [K in keyof T]: T[K] extends EventEmitter ? { key: K; eventType: U; } : never; }[keyof T]; export type NylasEvent = { booking_id: string; organizer: { email: string; name: string; is_organizer?: boolean; }; title: string; description: string; status: string; event_id: string; location: string; booking_ref: string; }; export type BookedEventInfo = NylasEvent & { start_time: string; end_time: string; timezone: string; email_language: string; additional_guests: NylasSchedulerBookingParticipant[]; guest: NylasSchedulerBookingParticipant; additional_fields: Record; }; export type NylasSchedulerBookingParticipant = { name: string; email: string; nameReadOnly?: boolean; emailReadOnly?: boolean; }; export type NylasSchedulerBookingData = { primaryParticipant: NylasSchedulerBookingParticipant; startTime?: Date; endTime?: Date; timezone?: string; language?: string; guests?: NylasSchedulerBookingParticipant[]; additionalFields?: Record; }; export type NylasSchedulerBookingDataWithFlatFields = Omit & { additionalFields?: Record; location?: string; booking_ref?: string; }; export type DataResponseError = Exclude; export type DataResponseReturnType = [T, null] | [null, DataResponseError]; export {};