import React from 'react'; import { type TicketDefinition } from '../../services/ticket-definition-service.js'; import { type PricingOption } from '../../services/pricing-option-service.js'; export interface RootProps { /** Child components that will have access to the ticket definition service */ children: React.ReactNode; /** Ticket definition */ ticketDefinition: TicketDefinition; } /** * TicketDefinition Root core component that provides ticket definition service context. * * @component */ export declare function Root(props: RootProps): React.ReactNode; export interface NameProps { /** Render prop function */ children: (props: NameRenderProps) => React.ReactNode; } export interface NameRenderProps { /** Ticket definition name */ name: string; } /** * TicketDefinition Name core component that provides ticket definition name. * * @component */ export declare function Name(props: NameProps): React.ReactNode; export interface DescriptionProps { /** Render prop function */ children: (props: DescriptionRenderProps) => React.ReactNode; } export interface DescriptionRenderProps { /** Ticket definition description */ description: string; } /** * TicketDefinition Description core component that provides ticket definition description. Not rendered if there is no description. * * @component */ export declare function Description(props: DescriptionProps): React.ReactNode; export interface FixedPricingProps { /** Render prop function */ children: (props: FixedPricingRenderProps) => React.ReactNode; } export interface FixedPricingRenderProps { /** Fixed price value */ value: number; /** Price currency */ currency: string; /** Whether ticket definition is free */ free: boolean; } /** * TicketDefinition FixedPricing core component that provides fixed pricing data. Not rendered if ticket definition doesn't have fixed pricing. * * @component */ export declare function FixedPricing(props: FixedPricingProps): React.ReactNode; export interface GuestPricingProps { /** Render prop function */ children: (props: GuestPricingRenderProps) => React.ReactNode; } export interface GuestPricingRenderProps { /** Current price */ price: string | undefined; /** Minimum price */ minPrice: number; /** Price currency */ currency: string; /** Function to set price */ setPrice: (price: string) => void; } /** * TicketDefinition GuestPricing core component that provides guest pricing data. Not rendered if ticket definition doesn't have guest pricing. * * @component */ export declare function GuestPricing(props: GuestPricingProps): React.ReactNode; export interface PricingRangeProps { /** Render prop function */ children: (props: PricingRangeRenderProps) => React.ReactNode; } export interface PricingRangeRenderProps { /** Minimum price */ minPrice: number; /** Maximum price */ maxPrice: number; /** Price currency */ currency: string; } /** * TicketDefinition PricingRange core component that provides pricing range data. Not rendered if ticket definition doesn't have pricing options. * * @component */ export declare function PricingRange(props: PricingRangeProps): React.ReactNode; export interface TaxProps { /** Render prop function */ children: (props: TaxRenderProps) => React.ReactNode; } export interface TaxRenderProps { /** Tax name */ name: string; /** Tax rate */ rate: number; /** Whether tax is included in price */ included: boolean; /** Taxable value */ taxableValue: number; /** Tax value */ taxValue: number; /** Tax currency */ currency: string; } /** * TicketDefinition Tax core component that provides tax data. Not rendered when event has no tax settings, or when ticket definition is free or has pricing options, or when ticket definition has guest pricing and tax is not applied to donations. * * @component */ export declare function Tax(props: TaxProps): React.ReactNode; export interface FeeProps { /** Render prop function */ children: (props: FeeRenderProps) => React.ReactNode; } export interface FeeRenderProps { /** Fee rate */ rate: number; /** Fee value */ value: number; /** Fee currency */ currency: string; } /** * TicketDefinition Fee core component that provides fee data. Not rendered when ticket definition has no fee enabled, or when ticket definition is free or has pricing options, or when fee is included in the price. * * @component */ export declare function Fee(props: FeeProps): React.ReactNode; export interface RemainingProps { /** Render prop function */ children: (props: RemainingRenderProps) => React.ReactNode; } export interface RemainingRenderProps { /** Remaining tickets count */ remaining: number; } /** * TicketDefinition Remaining core component that provides remaining tickets count. * * @component */ export declare function Remaining(props: RemainingProps): React.ReactNode; export interface SaleStartDateProps { /** Render prop function */ children: (props: SaleStartDateRenderProps) => React.ReactNode; } export interface SaleStartDateRenderProps { /** Sale start date */ startDate: Date; /** Formatted sale start date */ startDateFormatted: string; } /** * TicketDefinition SaleStartDate core component that provides sale start date. Not rendered if sale isn't scheduled. * * @component */ export declare function SaleStartDate(props: SaleStartDateProps): React.ReactNode; export interface SaleEndDateProps { /** Render prop function */ children: (props: SaleEndDateRenderProps) => React.ReactNode; } export interface SaleEndDateRenderProps { /** Sale end date */ endDate: Date; /** Formatted sale end date */ endDateFormatted: string; /** Whether sale has ended */ saleEnded: boolean; } /** * TicketDefinition SaleEndDate core component that provides sale end date. Not rendered if sale is scheduled or there is no sale period. * * @component */ export declare function SaleEndDate(props: SaleEndDateProps): React.ReactNode; export interface QuantityProps { /** Render prop function */ children: (props: QuantityRenderProps) => React.ReactNode; } export interface QuantityRenderProps { /** Array of quantity options */ options: number[]; /** Current quantity */ quantity: number; /** Maximum quantity allowed */ maxQuantity: number; /** Function to increment quantity */ increment: () => void; /** Function to decrement quantity */ decrement: () => void; /** Function to set specific quantity */ setQuantity: (quantity: number) => void; } /** * TicketDefinition Quantity core component that provides quantity controls. Not rendered for ticket definitions with pricing options, or if ticket definition is not available (is sold out or sale hasn't started). * * @component */ export declare function Quantity(props: QuantityProps): React.ReactNode; export interface PricingOptionsProps { /** Render prop function */ children: (props: PricingOptionsRenderProps) => React.ReactNode; } export interface PricingOptionsRenderProps { /** Array of pricing options */ pricingOptions: PricingOption[]; } /** * TicketDefinition PricingOptions core component that provides pricing options. Not rendered if there are no pricing options. * * @component */ export declare function PricingOptions(props: PricingOptionsProps): React.ReactNode;