import { type HTMLAttributes } from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type AppointmentItem } from './appointment-card'; declare const appointmentTrayVariants: (props?: ({ size?: "sm" | "md" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * Curated imperative handle for AppointmentTray — the forwardRef target so a * future agent / MCP UI bridge can drive the tray without touching the DOM. * Reads identifiers + lifecycle state only, never patient identity. See * `appointment-tray.agent.ts`. */ export interface AppointmentTrayHandle { getItems: () => Array<{ id: string; state: string; }>; selectItem: (id: string) => void; } export interface AppointmentTrayProps extends Omit, 'onClick' | 'id'>, VariantProps { /** * Stable instance id. Surfaced on the root as `data-component-id` so an * agent / MCP UI bridge can address this specific tray. */ id?: string; /** The appointments to render. */ items: AppointmentItem[]; /** Section title — rendered in the header. Localised by the consumer. */ title?: string; /** Optional small caption (e.g. localised date) shown next to the title. */ caption?: string; /** Visual density passed through to each AppointmentCard. */ size?: 'sm' | 'md'; /** BCP-47 locale override passed to each AppointmentCard. */ locale?: string; /** ISO-4217 currency code passed to each AppointmentCard. */ currency?: string; onOpenAppointment?: (item: AppointmentItem) => void; onAddAppointment?: () => void; /** Localised label for the "Add" affordance. */ addLabel?: string; loading?: boolean; emptyTitle?: string; emptyDescription?: string; } export declare const AppointmentTray: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=appointment-tray.d.ts.map