import * as react_jsx_runtime from 'react/jsx-runtime'; import { AppointmentStatus } from './appointment-time-slot-picker.js'; /** A single item in the ⋮ overflow DropdownMenu */ interface AdvisorCardMenuItem { /** Display label */ label: string; /** Called when the item is clicked */ onClick: () => void; /** Visual variant — use "destructive" for delete/remove actions */ variant?: "default" | "destructive"; /** Disables the item without removing it */ disabled?: boolean; } /** Appointment data shown in the strip inside the advisor card */ interface AdvisorAppointmentStrip { status: AppointmentStatus; /** Human-readable appointment type — e.g. "Financial Review" */ appointmentType?: string; /** Display date string — e.g. "Wed, 23 Apr 2026" */ date: string; /** Display start time — e.g. "2:00 PM" */ timeStart: string; /** Display end time — e.g. "2:30 PM" */ timeEnd: string; } interface AdvisorCardProps { /** Advisor full name */ name: string; /** Job title / role label */ role: string; /** Phone number string */ phone: string; /** Email address */ email: string; /** Broker company name — shown as text fallback when no logo is provided */ companyName?: string; /** URL of the broker company logo — renders as avatar image */ companyLogoUrl?: string; /** Explicit initials for the avatar fallback; derived from companyName if omitted */ avatarInitials?: string; /** Whether this is the client's primary assigned advisor */ isPrimary?: boolean; /** * Upcoming appointments shown as stacked strips. * - `undefined` — strip section hidden * - `null` or `[]` — empty state: "No upcoming appointments" * - array of items — one coloured strip per appointment */ appointments?: AdvisorAppointmentStrip[] | null; /** Called when "Refer [name] to Others" is clicked */ onRefer?: () => void; /** * Items to render in the ⋮ overflow DropdownMenu. * When provided, the button opens an inline dropdown — `onMoreOptions` is ignored. */ menuItems?: AdvisorCardMenuItem[]; /** @deprecated Pass `menuItems` for an inline DropdownMenu instead */ onMoreOptions?: () => void; /** Called when "Book Appointment" is clicked */ onBookAppointment?: () => void; /** Called when "View →" in an appointment strip is clicked; receives the appointment index */ onViewAppointment?: (index: number) => void; } interface AdvisorInviteCardProps { /** Called when the "Add Advisor" CTA is clicked */ onInvite?: () => void; } declare function AdvisorCard({ name, role, phone, email, companyName, companyLogoUrl, avatarInitials, isPrimary, appointments, onRefer, menuItems, onMoreOptions, onBookAppointment, onViewAppointment, }: AdvisorCardProps): react_jsx_runtime.JSX.Element; declare function AdvisorInviteCard({ onInvite }: AdvisorInviteCardProps): react_jsx_runtime.JSX.Element; export { type AdvisorAppointmentStrip, AdvisorCard, type AdvisorCardMenuItem, type AdvisorCardProps, AdvisorInviteCard, type AdvisorInviteCardProps };