/** * event send to parent window */ declare const JOLIBOX_CUSTOM_ADS_EVENT_TYPE = "JOLIBOX_ADS_EVENT"; declare const JOLIBOX_CUSTOM_REWARDS_EVENT_TYPE = "JOLIBOX_CUSTOM_REWARDS_EVENT"; declare const JOLIBOX_TOPUP_EVENT = "JOLIBOX_TOPUP_EVENT"; declare const JOLIBOX_JOLI_COIN_USE_EVENT = "JOLIBOX_JOLI_COIN_USE_EVENT"; declare const JOLIBOX_JOLI_UNLOGIN_MODAL_EVENT = "JOLIBOX_JOLI_UNLOGIN_MODAL_EVENT"; declare const JOLIBOX_GET_USER_SUB_STATUS = "JOLIBOX_GET_USER_SUB_STATUS"; declare const JOLIBOX_SUB_EVENT = "JOLIBOX_SUB_EVENT"; declare const CP_LOAD_FINISH = "CP_LOAD_FINISH"; declare const CP_LOAD_PROGRESS = "CP_LOAD_PROGRESS"; declare const CP_GAME_TTI = "CP_GAME_TTI"; interface JoliboxCustomEvent { [JOLIBOX_CUSTOM_ADS_EVENT_TYPE]: { isAdShowing: boolean; }; [JOLIBOX_CUSTOM_REWARDS_EVENT_TYPE]: { ['JOLI_COIN']?: { quantity: number; balance: number; }; }; [JOLIBOX_TOPUP_EVENT]: { ['JOLI_COIN']?: { quantity: number; balance: number; enableAutoDeduct?: boolean; }; type: 'ADS-JOLI_COIN' | 'JOLI_COIN'; sequenceId: string; }; [JOLIBOX_JOLI_COIN_USE_EVENT]: { ['JOLI_COIN']?: { quantity: number; balance: number; enableAutoDeduct?: boolean; }; type: 'ADS-JOLI_COIN' | 'JOLI_COIN'; sequenceId: string; }; [JOLIBOX_JOLI_UNLOGIN_MODAL_EVENT]: { sequenceId: string; type: 'ADS-JOLI_COIN' | 'JOLI_COIN'; }; [JOLIBOX_GET_USER_SUB_STATUS]: { sequenceId: string; }; [JOLIBOX_SUB_EVENT]: { sequenceId: string; }; [CP_LOAD_FINISH]: {}; [CP_LOAD_PROGRESS]: { progress: number; }; [CP_GAME_TTI]: { duration?: number; }; } declare const notifyCustomEvent: (eventName: T, data: JoliboxCustomEvent[T]) => void; /** * received event to parent window * @param eventName * @param data */ declare const ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT = "ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT"; declare const ON_JOLIBOX_JOLI_COIN_USE_RESULT = "ON_JOLIBOX_JOLI_COIN_USE_RESULT"; declare const ON_JOLIBOX_JOLI_UNLOGIN_MODAL_RESULT_EVENT = "ON_JOLIBOX_JOLI_UNLOGIN_MODAL_RESULT_EVENT"; declare const ON_GET_USER_SUB_STATUS = "ON_JOLIBOX_GET_USER_SUB_STATUS"; declare const ON_JOLIBOX_SUB_RESULT_EVENT = "ON_JOLIBOX_SUB_RESULT_EVENT"; interface ReceivedJoliboxCustomEvent { [ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT]: { sequenceId: string; result: 'SUCCESS' | 'CANCEL' | 'ADS'; type: 'ADS-JOLI_COIN' | 'JOLI_COIN'; joliCoin: { enableAutoDeduct: boolean; balance: number; }; }; [ON_JOLIBOX_JOLI_COIN_USE_RESULT]: { sequenceId: string; result: 'USE_COIN' | 'ADS' | 'CANCEL'; }; [ON_JOLIBOX_JOLI_UNLOGIN_MODAL_RESULT_EVENT]: { sequenceId: string; result: 'SUCCESS' | 'CANCEL' | 'ADS' | 'FAILED' | 'NOT_SUPPORT'; extra?: { firstLogin?: { reward: { rewardValue: number; rewardType: 'JOLI_COIN'; }; }; }; isFirstLogin?: boolean; }; [ON_GET_USER_SUB_STATUS]: { sequenceId: string; isSubUser: boolean; userId?: string; }; [ON_JOLIBOX_SUB_RESULT_EVENT]: { sequenceId: string; result: 'SUCCESS' | 'CANCEL' | 'FAILED'; }; } type ReceivedJoliboxCustomEventResult = keyof ReceivedJoliboxCustomEvent; declare const onCustomEvent: (eventName: T, callback: (data: ReceivedJoliboxCustomEvent[T]) => void) => () => void; export { onCustomEvent, notifyCustomEvent };