export declare enum PaymentMode { CASH = "CASH", CARD = "CARD", UPI = "UPI" } export declare enum AppointmentType { CONSULTATION = "CONSULTATION", FOLLOW_UP = "FOLLOW_UP", LAB_TEST = "LAB_TEST", SURGERY = "SURGERY", VIRTUAL = "VIRTUAL", IN_PERSON = "IN_PERSON" } export declare enum AppointmentStatus { SCHEDULED = "SCHEDULED", CANCELLED = "CANCELLED", COMPLETED = "COMPLETED", NO_SHOW = "NO_SHOW" } export declare enum AppointmentMode { ONLINE = "ONLINE", OFFLINE = "OFFLINE" } export declare enum AppointmentAction { EDIT = "EDIT", RESCHEDULE = "RESCHEDULE", CANCEL = "CANCEL" } export declare enum AppointmentSource { MEDOS_WEBSITE = "MEDOS_WEBSITE", WEBSITE = "WEBSITE", ANDROID = "ANDROID", IOS = "IOS", MEDOS_APP_ANDROID = "MEDOS_APP_ANDROID", MEDOS_APP_IOS = "MEDOS_APP_IOS" } export interface CreateAppointmentPayload { workspaceId: number; addressId: number; doctorId: number; patientId: number; mode: AppointmentMode; appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; consultationCharge: number; appointmentNotes?: string; paymentMode: PaymentMode; type: AppointmentType; patientCheckedIn?: boolean; isNoShow?: boolean; source: AppointmentSource; attachments?: File[]; } export interface UpdateAppointmentPayload { id: number; workspaceId: number; addressId: number; mode: AppointmentMode; consultationCharge: number; appointmentNotes?: string; paymentMode: PaymentMode; type: AppointmentType; patientCheckedIn?: boolean; isNoShow?: boolean; source: AppointmentSource; } export interface RescheduleAppointmentPayload { id: number; workspaceId: number; addressId: number; doctorId: number; appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; } export interface AppointmentListPayload { workspaceId: number; addressId: number; doctorId?: number; patientId?: number; appointmentDate: string; startDate: string; endDate: string; status: string; } export interface Appointment { id: number; createdAt: string; deleted: boolean; createdAtEpoch: number; workspaceId: number; addressId: number; doctorId: number; patientId: number; fromDateTimeTs: number; toDateTimeTs: number; appointmentDate: string; status: AppointmentStatus; appointmentNotes: string; type: string; durationInSeconds: number; mode: AppointmentMode; reminderSent: boolean; paymentMode: string; patientCheckedIn: boolean; consultationCharge: number; isNoShow: boolean; source: AppointmentSource; } export interface AppointmentListResponse { appointment: Appointment; patient?: any; } export interface AvailableSlot { appointmentDate: string; fromDateTimeTs: string; toDateTimeTs: string; } export interface AvailableSlotsPayload { workspaceId: number; addressId: number; doctorId: number; appointmentDate?: string; } export interface CreateMeetingPayload { hostId: number; channelName: string; appointmentId: number; joinerId: number; } export interface CreateMeetingResponse { meetingId: number; hostToken: string; appId: string; channelName: string; joinerTokens: { userId: number; token: string; }[]; } export interface EndMeetingPayload { id: number; }