export type Doctor = { id: number; name: string; specialty?: string; [key: string]: any; }; export type Slot = { start: string; end: string; id?: string; [key: string]: any; }; type PatientPayload = { id?: number; firstName: string; lastName: string; email?: string; countryCode: string; phoneNumber: string; age?: number; gender?: "MALE" | "FEMALE" | "OTHER"; dob?: string; bloodGroup?: string; }; type PatientAddressPayload = { addressLine1: string; city: string; state: string; country: string; zipcode: string; landmark?: string; addressLine2?: string; completeAddress?: string; countryCode?: string; phoneNumber?: string; patientId?: number; }; type BookAppointmentPayload = { workspaceId?: string | number; workspaceAddressId: string | number; doctorId: string | number; mode?: "OFFLINE" | "ONLINE"; appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; consultationCharge?: string | number; type?: "CONSULTATION" | string; source?: string; bookingType?: "PACKAGE_PURCHASE" | "ONE_TIME_APPOINTMENT" | "USE_ACTIVE_PACKAGE"; paymentMode?: "CASH" | "CARD" | string; packageConfigId?: number; patientPackageId?: number; packageAmount?: number; patientPayload: PatientPayload; patientAddress: PatientAddressPayload; attachments?: File[]; }; export type UnifiedBookAppointmentPayload = { workspaceId: number; workspaceAddressId: number; doctorId: number; mode: "ONLINE" | "OFFLINE"; appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; bookingType: "PACKAGE_PURCHASE" | "ONE_TIME_APPOINTMENT" | "USE_ACTIVE_PACKAGE"; consultationCharge: number; packageConfigId?: number; patientPackageId?: number; packageAmount?: number; paymentMode: "CASH" | "CARD" | string; type: "CONSULTATION" | string; source: string; patientPayload: { id?: number; firstName: string; lastName: string; email: string; countryCode: string; phoneNumber: string; dob: string; age: number; gender: "MALE" | "FEMALE" | "OTHER"; bloodGroup: string; }; patientAddress: { completeAddress: string; addressLine1: string; addressLine2?: string; city: string; state: string; country: string; zipcode: string; landmark?: string; countryCode: string; phoneNumber: string; patientId: number; }; }; export type AppointmentResponse = { id: number; patientName: string; patientEmail: string; patientPhone: string; doctorId: number; addressId: number; appointmentDate: string; startTime: string; endTime: string; status: string; consultationCharge: number; paymentMode: string; type: string; mode: string; notes?: string; createdAt: string; [key: string]: any; }; type AppointmentPayload = { workspaceId?: string | number; workspaceAddressId: string | number; doctorId: string | number; mode?: "OFFLINE" | "ONLINE"; appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; consultationCharge?: string; type?: string; source?: string; patientPayload: PatientPayload; patientAddress: PatientAddressPayload; attachments?: File[]; }; type AddressItem = { id: number; completeAddress?: string; label?: string; address?: string; countryCode?: string | null; phoneNumber?: string | null; doctorsCount?: number; totalConfiguredAppointments?: number; doctors?: Doctor[]; }; type AddressesResponse = { totalAddresses?: number; totalDoctors?: number; totalConfiguredAppointments?: number; totalPartialConfiguredAppointments?: number; totalNotConfiguredAppointments?: number; workspaceId?: number; addresses: AddressItem[]; }; declare const AppointmentService: { arePackagesConfigured(): Promise; getAddresses(): Promise; fetchSlots(workspaceId: number, addressId: number, doctorId: number, appointmentDate: string): Promise; transformToUnifiedPayload(payload: BookAppointmentPayload): UnifiedBookAppointmentPayload; createLegacyAppointment(payload: BookAppointmentPayload): Promise; createAppointment(payload: BookAppointmentPayload): Promise; createUnifiedAppointment(payload: BookAppointmentPayload): Promise; }; export { AppointmentService, AppointmentPayload, BookAppointmentPayload, PatientPayload, PatientAddressPayload, AddressesResponse, AddressItem, };