import { type LucideIcon } from "lucide-react"; import * as React from "react"; export interface BookingActivityTimelineProps { bookingId: string; /** * Which finance API surface should provide payment events. Public/customer * contexts use the public endpoint by default; admin booking pages must use * the admin endpoint because public checkout capabilities are not present in * an operator session. */ paymentsVariant?: "public" | "admin"; /** * Extra events to merge into the timeline alongside the built-in * activity / document / payment sources. Operator starters pass * action-ledger entries through here so the timeline stays a single * chronological feed instead of getting split across tabs. */ additionalEvents?: readonly TimelineEvent[]; /** Rendered below the pagination — e.g. a "load more" pager for action-ledger entries. */ footer?: React.ReactNode; /** Page size for the client-side pager. Defaults to 10. */ pageSize?: number; } export type TimelineSource = "activity" | "document" | "payment" | "action"; export type TimelineEvent = { id: string; source: TimelineSource; title: string; description?: string | null; actorId?: string | null; timestamp: string; icon: LucideIcon; link?: { href: string; label: string; }; }; export declare function BookingActivityTimeline({ bookingId, paymentsVariant, additionalEvents, footer, pageSize, }: BookingActivityTimelineProps): React.JSX.Element;