/// export interface CurrentOrderInfo { /** 订单UUID */ uuid?: string; /** 订单ID */ orderId?: string; /** 订单状态 */ status?: string; /** 当前步骤 */ step?: string; /** 订单总金额 */ totalAmount?: string; /** 待付金额 */ remainingAmount?: string; /** 支付状态 */ paymentStatus?: string; /** 是否为定金订单 */ isDeposit?: boolean; /** 定金金额 */ depositAmount?: string; /** 订单类型 */ orderType?: 'virtual' | 'appointment_booking'; /** 平台类型 */ platform?: 'pc' | 'h5'; /** 创建时间 */ createdAt?: string; /** 商品数量 */ itemCount?: number; /** 是否有本地订单数据 */ hasLocalOrderData?: boolean; /** 当前订单客户 ID */ customerId?: string | number; /** 当前订单客户展示名 */ customerName?: string; /** 当前订单客户手机号 */ customerPhone?: string; /** 当前订单客户邮箱 */ customerEmail?: string; /** 当前订单客户 UI 快照 */ customerSnapshot?: any; } export interface PaymentData { orderId?: string | number; totalAmount?: number; currency?: string; customerId?: string | number; customerName?: string; description?: string; items?: PaymentItem[]; } export interface PaymentItem { id: string | number; name: string; quantity: number; price: number; total: number; } export interface ModuleConfig { showWalletPass?: boolean; showCashPayment?: boolean; showAdditionalModule?: boolean; showPaymentOptions?: boolean; } export interface StatusConfig { leftStatus?: string; rightStatus?: string; } export interface PaymentResult { type: 'cash' | 'walletpass' | 'etfpos' | 'custom' | 'mx51' | 'CASHMANUAL'; amount?: number; totalAmount?: number; status: 'success' | 'failed' | 'cancelled' | 'pending'; orderId?: string | number; transactionId?: string; message?: string; timestamp?: number; roundingAmount?: number; change?: number; actual_paid_amount?: number; } export declare type PaymentModalCallbackType = 'payment-result' | 'modal-close' | 'toast-close' | 'error'; export declare type PaymentModalCallbackStatus = 'success' | 'failed' | 'cancelled' | 'paid' | 'partially_paid' | 'pending'; export declare type PaymentModalCallbackReason = 'paid' | 'back' | 'cancel' | 'start-new-order' | 'save-pay-later' | 'send-payment-link' | 'sync-failed'; export interface PaymentModalCallbackEvent { type: PaymentModalCallbackType; status?: PaymentModalCallbackStatus; reason?: PaymentModalCallbackReason; orderId?: string | number; reset?: boolean; shouldRefreshOrder?: boolean; shouldCloseCaller?: boolean; payload?: any; error?: string; /** @deprecated 兼容旧调用方读取 data。新代码请使用 payload。 */ data?: any; /** @deprecated 兼容旧调用方判断 toast 二次回调。新代码请使用 type === 'toast-close'。 */ isCallbackFromToast?: boolean; /** @deprecated 兼容旧调用方判断返回来源。新代码请使用 reason。 */ source?: string; isChangePaymentNotIncludeVoucher: boolean; } export interface CheckoutCallbacks { onPaymentComplete?: (result: PaymentResult) => void; onPaymentCancel?: () => void; onStatusChange?: (status: string) => void; } export interface PaymentModalPluginCustomerChangePayload { customer: unknown; source: string; orderIdentity?: unknown; } export interface PaymentModalPluginProps { baseSalesModuleName?: string; order?: { id?: string | number; }; order_id?: string | number; orderId?: string | number; paymentResultDisplayMode?: string; config?: any; onCustomerChange?: (payload: PaymentModalPluginCustomerChangePayload) => void; callback?: (result: any) => void; } export interface CheckoutProps { paymentData?: PaymentData; moduleConfig?: ModuleConfig; statusConfig?: StatusConfig; cashAmountButtons?: number[]; onPaymentComplete?: (result: PaymentResult) => void; onPaymentCancel?: () => void; onStatusChange?: (status: string) => void; } export interface StatusSectionProps { config?: StatusConfig; onStatusChange?: (status: string) => void; } export interface AmountSummaryProps { orderInfo?: CurrentOrderInfo; open_deposit?: boolean; customAmount?: string; onAmountChange?: (amount: string) => void; } export interface WalletPassModuleProps { orderInfo?: CurrentOrderInfo; } export interface CashPaymentModuleProps { orderInfo?: CurrentOrderInfo; onPaymentComplete?: (result: PaymentResult) => void; amountButtons?: number[]; } export interface PaymentOptionsModuleProps { orderInfo?: CurrentOrderInfo; onClick?: (method: PaymentMethod) => void; } export interface AdditionalModuleProps { orderInfo?: CurrentOrderInfo; customAmount?: string; handleButtonClick: (key: string) => void; hasOrderNote?: boolean; } export interface PaymentMethod { id: string; name: string; nameEn?: string; surcharge: string; surchargeAmount?: number; icon?: string; iconComponent?: React.ReactNode; color?: string; enabled?: boolean; code: string; type: string; fixed?: number; percentage?: number; totalAmount?: string; } export interface PaymentMethodSelection { method: PaymentMethod; amount: number; totalWithSurcharge: number; } /** * SCI EFTPOS 手续费展示配置 */ export interface SciEftposSurchargeDisplay { /** 是否显示手续费 */ is_surcharge: boolean; /** 固定手续费 */ fixed: number; /** 百分比手续费 */ percentage: number; } /** * SCI EFTPOS 手续费展示配置映射 */ export declare type SciEftposSurchargeDisplayMap = Record; /** * 刷卡机列表 */ export interface CardReader { /** 刷卡机ID */ id?: string | number; /** 刷卡机类型 */ type?: string; /** 刷卡机状态 */ status?: string; /** 刷卡机设置 */ setting?: { /** iot设备列表 */ iot_devices?: { /** 设备id */ number?: string | number; }[]; /** 固定费率 */ constant_rate?: number | string; /** 固定金额 */ constant_money?: number | string; /** 是否显示手续费 */ surcharge?: boolean; /** 设备列表 */ devices?: { /** 设备编号 */ number?: string | number; }[]; }; }