export enum InAppMessageEvents { BEFORE_OPEN = 'beforeInAppMessageOpenEvent', AFTER_OPEN = 'afterInAppMessageOpenEvent', BEFORE_CLOSE = 'beforeInAppMessageCloseEvent', AFTER_CLOSE = 'afterInAppMessageCloseEvent', ON_CLICK = 'onInAppMessageClickEvent', } export interface HackleInAppMessageListener { beforeInAppMessageOpen?(inAppMessage: HackleInAppMessage): void; afterInAppMessageOpen?(inAppMessage: HackleInAppMessage): void; beforeInAppMessageClose?(inAppMessage: HackleInAppMessage): void; afterInAppMessageClose?(inAppMessage: HackleInAppMessage): void; onInAppMessageClick?( inAppMessage: HackleInAppMessage, view: HackleInAppMessageView, action: HackleInAppMessageAction ): boolean; } export interface HackleInAppMessage { key: number; } export interface HackleInAppMessageView { close(): void; } export type HackleInAppMessageActionType = 'CLOSE' | 'LINK'; export interface HackleInAppMessageAction { type: HackleInAppMessageActionType; close?: { hideDurationMillis: number | null; }; link?: { url: string; shouldCloseAfterLink: boolean; }; }