import * as react_jsx_runtime from 'react/jsx-runtime'; import { ReactNode } from 'react'; import { UseMyBookingsOptions, UseMyBookingsResult } from '../../hooks/useMyBookings.js'; import { SchedulingMyBookingRow } from '../../types/scheduling.js'; interface MyBookingsListProps extends UseMyBookingsOptions { className?: string; children: ReactNode; /** * Optionally pass an externally-managed bookings result (e.g. when the * parent island already calls useMyBookings to drive a header summary). * When omitted, the root creates its own via useMyBookings(). */ bookings?: UseMyBookingsResult; } declare function MyBookingsListRoot({ className, children, bookings: external, ...hookOpts }: MyBookingsListProps): react_jsx_runtime.JSX.Element; interface MyBookingsListLoadingProps { className?: string; children?: ReactNode; } declare function Loading({ className, children }: MyBookingsListLoadingProps): react_jsx_runtime.JSX.Element | null; interface MyBookingsListErrorProps { className?: string; /** Render override receiving the error message. */ children?: (message: string) => ReactNode; } declare function ErrorMessage({ className, children }: MyBookingsListErrorProps): react_jsx_runtime.JSX.Element | null; interface MyBookingsListEmptyProps { className?: string; children?: ReactNode; } declare function Empty({ className, children }: MyBookingsListEmptyProps): react_jsx_runtime.JSX.Element | null; interface MyBookingsItemHelpers { /** Initiate cancellation of this row. */ cancel: () => void; /** True while THIS row's cancellation is in flight. */ cancelling: boolean; } type MyBookingsItemRenderer = (booking: SchedulingMyBookingRow, helpers: MyBookingsItemHelpers) => ReactNode; interface MyBookingsListUpcomingProps { className?: string; /** Render each upcoming booking. Receives { cancel, cancelling }. */ renderItem: MyBookingsItemRenderer; /** Wrapper around the item list (e.g. a section header). */ children?: ReactNode; /** * If true, the section renders even when there are no upcoming bookings — * useful when `children` carries a heading you want shown regardless. * Defaults to false (whole section hides when empty). */ renderEmpty?: boolean; } declare function Upcoming({ className, renderItem, children, renderEmpty, }: MyBookingsListUpcomingProps): react_jsx_runtime.JSX.Element | null; interface MyBookingsListPastProps { className?: string; renderItem: MyBookingsItemRenderer; children?: ReactNode; renderEmpty?: boolean; } declare function Past({ className, renderItem, children, renderEmpty, }: MyBookingsListPastProps): react_jsx_runtime.JSX.Element | null; declare const MyBookingsList: typeof MyBookingsListRoot & { Loading: typeof Loading; Error: typeof ErrorMessage; Empty: typeof Empty; Upcoming: typeof Upcoming; Past: typeof Past; }; export { type MyBookingsItemHelpers, type MyBookingsItemRenderer, MyBookingsList, type MyBookingsListEmptyProps, type MyBookingsListErrorProps, type MyBookingsListLoadingProps, type MyBookingsListPastProps, type MyBookingsListProps, type MyBookingsListUpcomingProps };