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