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