import { type GenericListItemsProps, type GenericListRepeaterProps, type MoneyProps } from '@wix/headless-components/react'; import { type AsChildChildren } from '@wix/headless-utils/react'; import React from 'react'; import { type OrderServiceConfig } from '../services/order-service.js'; import { InvoiceItem as InvoiceItemType } from '../services/invoice-item-service.js'; /** * Props for the Order Root component. */ export interface RootProps { /** Configuration for the order service */ orderServiceConfig?: OrderServiceConfig; /** Child components */ children: React.ReactNode; } /** * Order Root component that provides order service context to child components. * Must be used as the top-level component for order functionality. * * @order 1 * @component * @example * ```tsx * * * * * * * * * * * ``` */ export declare const Root: (props: RootProps) => React.ReactNode; /** * Props for the Order OrderNumber component. */ export interface OrderNumberProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Order number */ orderNumber: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the order number. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ orderNumber }) => ( * Order No. #{orderNumber} * )} * * ``` */ export declare const OrderNumber: React.ForwardRefExoticComponent>; /** * Props for the Order GuestEmail component. */ export interface GuestEmailProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Guest email */ guestEmail: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the guest email. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ guestEmail }) => ( * Email: {guestEmail} * )} * * ``` */ export declare const GuestEmail: React.ForwardRefExoticComponent>; /** * Props for the Order CreatedDate component. */ export interface CreatedDateProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Created date */ createdDate: Date; /** Formatted date */ formattedDate: string; }>; /** CSS classes to apply to the default element */ className?: string; } /** * Displays the order creation date. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ createdDate, formattedDate }) => ( * Placed on: {formattedDate} * )} * * ``` */ export declare const CreatedDate: React.ForwardRefExoticComponent>; /** * Props for the Order DownloadTicketsButton component. */ export interface DownloadTicketsButtonProps { /** Whether to render as a child component */ asChild?: boolean; /** Custom render function when using asChild */ children?: AsChildChildren<{ /** Tickets PDF URL */ ticketsPdfUrl: string; }>; /** CSS classes to apply to the default element */ className?: string; /** The label to display inside the button */ label?: React.ReactNode; } /** * Download tickets button that provides access to event tickets PDF. * Only shows when tickets are available for download. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * * * * * // asChild with react component * * {({ ticketsPdfUrl }) => * * } * * ``` */ export declare const DownloadTicketsButton: React.ForwardRefExoticComponent>; /** * Props for the Order InvoiceItems component. */ export interface InvoiceItemsProps extends GenericListItemsProps { } /** * Container for order invoice items. * * @component * @example * ```tsx * *

*
Ticket type
*
Price
*
Quantity
*
Total
*
* * * * * * * * ``` */ export declare const InvoiceItems: React.ForwardRefExoticComponent>; /** * Props for the Order InvoiceItemRepeater component. */ export interface InvoiceItemRepeaterProps extends Omit, 'itemWrapper'> { } /** * Repeater component that renders InvoiceItem.Root for each invoice item in the order. * Must be used within Order.InvoiceItems component. * * @component * @example * ```tsx * * * * * * * * * ``` */ export declare const InvoiceItemRepeater: React.ForwardRefExoticComponent>; /** * Props for the Order Subtotal component. */ export interface SubtotalProps extends Omit { } /** * Displays the order subtotal amount. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts }) => ( *

* Subtotal: * {formattedMoney} *
* )} *
* ``` */ export declare const Subtotal: React.ForwardRefExoticComponent>; /** * Props for the Order PaidPlanDiscount component. */ export interface PaidPlanDiscountProps extends Omit { children?: React.ReactNode | AsChildChildren<{ /** Formatted paid plan discount value */ formattedMoney: string; /** Formatted paid plan discount value parts */ formattedMoneyParts: Intl.NumberFormatPart[]; /** Paid plan discount rate */ rate: number; }>; } /** * Displays the order paid plan discount. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts, rate }) => ( *

* Paid Plan Discount ({rate}%) * {formattedMoney} *
* )} *
* ``` */ export declare const PaidPlanDiscount: React.ForwardRefExoticComponent>; /** * Props for the Order CouponDiscount component. */ export interface CouponDiscountProps extends Omit { } /** * Displays the order coupon discount. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts }) => ( *

* Coupon Discount * {formattedMoney} *
* )} *
* ``` */ export declare const CouponDiscount: React.ForwardRefExoticComponent>; /** * Props for the Order Tax component. */ export interface TaxProps extends Omit { children?: React.ReactNode | AsChildChildren<{ formattedMoney: string; /** Formatted tax value parts */ formattedMoneyParts: Intl.NumberFormatPart[]; /** Tax rate */ rate: number; /** Tax name */ name: string; }>; } /** * Displays the order tax. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts, rate, name }) => ( *

* {name} ({rate}%) * {formattedMoney} *
* )} *
* ``` */ export declare const Tax: React.ForwardRefExoticComponent>; /** * Props for the Order Fee component. */ export interface FeeProps extends Omit { children?: React.ReactNode | AsChildChildren<{ /** Formatted fee value */ formattedMoney: string; /** Formatted fee value parts */ formattedMoneyParts: Intl.NumberFormatPart[]; /** Fee rate */ rate: number; }>; } /** * Displays the order fee. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts, rate }) => ( *

* Service Fee ({rate}%) * {formattedMoney} *
* )} *
* ``` */ export declare const Fee: React.ForwardRefExoticComponent>; /** * Props for the Order Total component. */ export interface TotalProps extends Omit { } /** * Displays the order total amount. * This represents the final amount to be paid including all fees and taxes. * * @component * @example * ```tsx * // Default usage * * * // asChild with primitive * *

* * * // asChild with react component * * {({ formattedMoney, formattedMoneyParts }) => ( *

* Total: * {formattedMoney} *
* )} *
* ``` */ export declare const Total: React.ForwardRefExoticComponent>;