import { type HTMLAttributes, type ReactNode } from 'react'; import { type AppointmentState } from '../_shared/entity-card'; export interface AppointmentPeekDetail { /** Leading glyph, decorative. */ icon?: ReactNode; /** The term, already translated: "Care", "Operator". */ label: string; value: ReactNode; } export interface AppointmentPeekProps extends HTMLAttributes { /** Patient name, or the event title for an appointment with no patient. */ name: string; /** Photo for the avatar; initials are drawn from `name` without one. */ avatarSrc?: string; /** Host-formatted time range, e.g. "09:30–11:00". */ time: string; /** Chair or room, already translated. With `telehealth`, the visit type. */ location?: string; /** Swaps the chair glyph for a video camera. */ telehealth?: boolean; /** * Appointment status, shown through `WorkflowStatusDisplay`. Leave it out * when the host has none recorded: no status is not the same as * confirmed, so the card shows no status face at all. */ status?: AppointmentState; /** * Override the status caption, e.g. "Arrived · waiting 12 min". Still shown * under `privacy`, so keep it free of patient data. Ignored without * `status`. */ statusLabel?: string; /** Extra rows after time and location: care, operator. */ details?: AppointmentPeekDetail[]; /** Event suffix fallback when appointment metadata is absent. Hidden in privacy. */ treatment?: string; /** Indicator chips (Badges): booked online, anamnesis. Never status. */ flags?: ReactNode; /** * Masks the name and drops everything personal: avatar, details and * flags. Time, place and status stay; they * are not patient data. */ privacy?: boolean; } export declare const AppointmentPeek: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=appointment-peek.d.ts.map