import { StripeElementsOptions } from '@stripe/stripe-js' interface ITicketHolderData { firstName?: string; lastName?: string; email?: string | null; phone?: string | null; } interface ICheckoutData { ticketHolders?: Array; brandOptIn?: boolean; ttfOptIn?: boolean; dobDay?: number; dobMonth?: number; dobYear?: number; streetAddress?: string; city?: string; stateId?: number; zip?: string; countryId?: string | number; } interface ICheckoutResponseData { hash?: string; total?: string; cart_price_breakdown?: { total: number; debt: number; guest_count: number; guest_revenue: number; currency: { currency: string; decimal_places: number; symbol: string; }; insurance_amount: number; goods_tax: number; goods_tax_name: string; total_add_ons: number; payment_option_additional_fees: number; tickets_price_breakdown: [ { fees_breakdown: Array<{ name: string; amount: number; }>; is_table: boolean; ticket_type_name: string; ticket_type_id: string; quantity: number; fees_per_ticket: number; discount: number; description: string; refund_on_checkin: boolean; price_per_ticket: string; cost_per_ticket: string; total_price: number; } ]; add_ons_price_breakdown: []; insurance_items_breakdown: []; event_name: string; }; additional_payment_information?: { basic_config: { apiKey: string; accountId: string; }; elements_config: StripeElementsOptions; additional_config: { decimalMultiplier: number; canChangeCaptureMode: boolean; }; stripe_wallets: { applePay?: 'auto' | 'never'; googlePay?: 'auto' | 'never'; }; payment_plan_available: boolean; }; } interface ICheckoutResponse extends IAxiosResponseData { data: { attributes: ICheckoutResponseData; relationships: Array; type: string; }; }