import type { CalendarRow } from './calendar.model'; import { type BookingRowView } from './calendar-workspace.model'; /** Which gap the user asked to complete: a hint for the host editor's * landing step. Absent means the plain "edit" entry. */ export type BookingCompleteIntent = 'patient' | 'operator' | 'chair'; /** * The digits `wa.me` needs from the SMS-verified booking number, or null. * A host may hand over a redacted display value ("+39 *** 121"): anything * but a plain number is refused rather than turned into a wrong chat. */ export declare function bookingWhatsAppDigits(phone: string | undefined): string | null; /** "Fri 18 Sep": the rail is narrow, and the year is never in doubt in a * thirty-day queue. Accessible names keep the long form. Exported so * `BookingsPanel` (calendar.sheets.tsx) can label its date groups the * same way the card labels its own "booked on" line. */ export declare function shortDay(locale: string, value: Date): string; export interface BookingCardProps { view: BookingRowView; locale?: string; /** Masked title, no photo, no contact, no reason, no WhatsApp number. */ privacy?: boolean; /** False withholds the assign segments and the pencil: a host that cannot * complete a booking is never offered a control it would refuse. */ canComplete: boolean; onComplete?: (row: CalendarRow, intent?: BookingCompleteIntent) => void; onShowInCalendar: (eventId: string) => void; /** The host addressed this card: ring it (see `BookingsPanel`). */ addressed?: boolean; /** Changes on every address, so a repeat address replays the ring. */ addressKey?: string | number; } export declare const BookingCard: import("react").ForwardRefExoticComponent>; /** The first read's placeholders, in the card's own shape: time block, * avatar, three lines, and the strip under its divider. */ export declare function BookingCardsSkeleton(): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=calendar-bookings-panel.d.ts.map