import { BaseZenskarElementInstance, ZenskarElementProps } from './base.types'; /** * Payment Method Element Props (Future Implementation) * Will be used when payment method elements are implemented */ export type PaymentMethodElementProps = {} & ZenskarElementProps; /** * Event data emitted when payment method form changes * @future - Will be used with onChange callback */ export type PaymentMethodChangeEvent = { /** Type of element that emitted the event */ elementType: 'payment-method'; /** Whether the payment method is complete and valid */ complete: boolean; /** Whether the payment method form is empty */ empty: boolean; /** Payment method brand (visa, mastercard, etc.) */ brand?: string; /** Error information if validation fails */ error?: { type: 'validation_error' | 'card_error' | 'api_error'; code: string; message: string; }; }; /** * Configuration options for payment method element * @future - Will allow customization of payment method behavior */ export type PaymentMethodElementOptions = { /** * Payment method types to display * @future - Will control which payment methods are available */ paymentMethodTypes?: ('card' | 'bank_transfer' | 'wallet')[]; /** * Appearance customization * @future - Will allow theming and styling customization */ appearance?: { theme?: 'stripe' | 'night' | 'flat'; variables?: Record; }; /** * Currency for payment processing * @future - Will set the currency for payment amounts */ currency?: string; /** * Country code for localization * @future - Will localize payment methods by country */ country?: string; }; /** * Element instance type for internal registry (Future) * This will be what gets registered with the ZenskarProvider */ export type PaymentMethodElementInstance = { /** Element type identifier */ type: 'payment-method'; } & BaseZenskarElementInstance;