import { type HTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type AgendaItem } from '../agenda-card'; declare const agendaTrayVariants: (props?: ({ size?: "sm" | "md" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * Curated imperative handle for AgendaTray. Exposed as the forwardRef * target so a future agent / MCP UI bridge can drive the tray without * touching the DOM. See `agenda-tray.agent.ts`. */ export interface AgendaTrayHandle { getItems: () => Array<{ id: string; status: string; }>; selectItem: (id: string) => void; } export interface AgendaTrayProps 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; items: AgendaItem[]; /** 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; size?: 'sm' | 'md'; onOpenAppointment?: (item: AgendaItem) => void; onAddAppointment?: () => void; /** Localised label for the "Add" affordance. */ addLabel?: string; loading?: boolean; emptyTitle?: string; emptyDescription?: string; /** Optional CTA wired into the empty state (EmptyState primaryAction). */ emptyAction?: { label: string; onClick: () => void; }; /** * Pinned footer link (e.g. "All upcoming appointments"). Localised by * the consumer; rendered after the list, before the section closes. */ viewAllLabel?: string; /** Fires when the footer link is activated. Required to render it. */ onViewAll?: () => void; /** * Per-row trailing action toolbar, forwarded to each AgendaCard's * `actions` slot. */ renderItemActions?: (item: AgendaItem) => ReactNode; /** * Constrain the list to the tray's own height and scroll inside it — * pair with a height/max-height on `className`. The scroll region is * keyboard-focusable so it stays operable without a pointer. */ scrollable?: boolean; } export declare const AgendaTray: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=agenda-tray.d.ts.map