export interface CheckoutChangeDetail { pointsUsed: number; pointsDiscount: number; couponId: number | null; couponDiscount: number; totalDiscount: number; finalAmount: number; } /** UI SDK 事件映射表 */ export interface UiEventMap { 'checkout:discountChanged': CheckoutChangeDetail; 'coupon:claimed': { couponId: number; }; 'checkin:completed': { pointsEarned: number; streak: number; }; 'exchange:redeemed': { orderId: number; productId: number; }; 'auth:signedIn': { method: string; }; 'auth:signedOut': void; 'module:opened': { module: string; }; 'module:closed': { module: string; }; } type UiEventHandler = (payload: UiEventMap[K]) => void; declare class UiEventBus { private handlers; on(event: K, handler: UiEventHandler): () => void; once(event: K, handler: UiEventHandler): () => void; off(event: K, handler: UiEventHandler): void; emit(event: K, ...args: UiEventMap[K] extends void ? [] : [payload: UiEventMap[K]]): void; } export type { UiEventHandler }; export declare const uiEvents: UiEventBus; //# sourceMappingURL=ui-events.d.ts.map