import * as react_jsx_runtime from 'react/jsx-runtime'; import { AppointmentStatus, AppointmentTimeSlot } from './appointment-time-slot-picker.js'; /** @deprecated Use AppointmentStatus from appointment-time-slot-picker */ type AppointmentUpcomingStatus = AppointmentStatus; interface AppointmentUpcomingAdvisor { name: string; role: string; company: string; avatarInitials: string; } interface AppointmentUpcomingData { status: AppointmentStatus; advisor: AppointmentUpcomingAdvisor; /** Human-readable appointment type — shown as the card header title */ appointmentType?: string; /** Display date string — e.g. "2026-04-22" */ date: string; /** Display start time — e.g. "10:00 AM" */ timeStart: string; /** Display end time — e.g. "10:30 AM" */ timeEnd: string; /** Optional Google Calendar / iCal link shown on Confirmed appointments */ calendarLink?: string; /** Original date before advisor rescheduled — only set when status is "rescheduled" */ originalDate?: string; originalTimeStart?: string; originalTimeEnd?: string; } interface AppointmentUpcomingCardProps { /** Pass null or undefined to show the empty state with a Book CTA */ appointment?: AppointmentUpcomingData | null; /** AM time slots shown in the reschedule dialog */ amSlots?: AppointmentTimeSlot[]; /** PM time slots shown in the reschedule dialog */ pmSlots?: AppointmentTimeSlot[]; onBookAppointment?: () => void; /** * Called when the client submits a reschedule request. * @param date The preferred date the client chose. * @param slot The preferred time slot (undefined when no slot data is provided). * @param note Optional note from the client. */ onReschedule?: (date: Date, slot: AppointmentTimeSlot | undefined, note: string) => void; /** * Called when the client confirms cancellation. * @param reason Optional cancellation reason entered by the client. */ onCancel?: (reason: string) => void; onAcceptReschedule?: () => void; } /** * Client-facing upcoming appointment card. * * Five states: * - **Empty** — no appointment; prompts user to book * - **Pending** — client booked, waiting for advisor confirmation * - **Confirmed** — advisor confirmed; shows Add to Calendar if link provided * - **Rescheduled** — advisor proposed a new time; Accept or Request Another Time * - **Cancelled** — advisor cancelled; prompts user to rebook */ declare function AppointmentUpcomingCard({ appointment, amSlots, pmSlots, onBookAppointment, onReschedule, onCancel, onAcceptReschedule, }: AppointmentUpcomingCardProps): react_jsx_runtime.JSX.Element; export { AppointmentStatus, type AppointmentUpcomingAdvisor, AppointmentUpcomingCard, type AppointmentUpcomingCardProps, type AppointmentUpcomingData, AppointmentTimeSlot as AppointmentUpcomingSlot, type AppointmentUpcomingStatus };