import React from 'react'; import { type TicketDefinitionListServiceConfig } from '../../services/ticket-definition-list-service.js'; import { type TicketDefinition } from '../../services/ticket-definition-service.js'; import { type EventServiceConfig } from '../../services/event-service.js'; import { type CheckoutServiceConfig } from '../../services/checkout-service.js'; export interface RootProps { /** Child components that will have access to necessary services */ children: React.ReactNode; /** Event service configuration */ eventServiceConfig: EventServiceConfig; /** Ticket definition list service configuration */ ticketDefinitionListServiceConfig: TicketDefinitionListServiceConfig; /** Checkout service configuration */ checkoutServiceConfig: CheckoutServiceConfig; } /** * TicketsPicker Root core component that provides necessary services context. * * @component */ export declare function Root(props: RootProps): React.ReactNode; export interface TicketDefinitionsProps { /** Render prop function */ children: (props: TicketDefinitionsRenderProps) => React.ReactNode; } export interface TicketDefinitionsRenderProps { /** List of ticket definitions */ ticketDefinitions: TicketDefinition[]; } /** * TicketsPicker TicketDefinitions core component that provides ticket definitions. * * @component */ export declare function TicketDefinitions(props: TicketDefinitionsProps): React.ReactNode; export interface TotalsProps { /** Render prop function */ children: (props: TotalsRenderProps) => React.ReactNode; } export interface TotalsRenderProps { /** Total value */ total: number; /** Subtotal value */ subtotal: number; /** Tax value */ tax: number; /** Fee value */ fee: number; /** Currency */ currency: string; /** Tax name */ taxName: string | null; /** Tax rate */ taxRate: number | null; /** Whether tax is included in price */ taxIncluded: boolean; /** Fee rate */ feeRate: number; } /** * TicketsPicker Totals core component that provides totals data. * * @component */ export declare function Totals(props: TotalsProps): React.ReactNode; export interface CheckoutErrorProps { /** Render prop function */ children: (props: CheckoutErrorRenderProps) => React.ReactNode; } export interface CheckoutErrorRenderProps { /** Error message */ error: string; } /** * TicketsPicker CheckoutError core component that provides checkout error. Not rendered if there is no error. * * @component */ export declare function CheckoutError(props: CheckoutErrorProps): React.ReactNode; export interface CheckoutTriggerProps { /** Render prop function */ children: (props: CheckoutTriggerRenderProps) => React.ReactNode; } export interface CheckoutTriggerRenderProps { /** Whether the checkout is in progress */ isLoading: boolean; /** Error message if any */ error: string | null; /** Whether any ticket definitions are selected */ hasSelectedTicketDefinitions: boolean; /** Function to trigger the checkout */ checkout: () => Promise; } /** * TicketsPicker CheckoutTrigger core component that provides checkout functionality. Not rendered if there are no ticket definitions. * * @component */ export declare function CheckoutTrigger(props: CheckoutTriggerProps): React.ReactNode;