import { HackleAppInvocator } from "./HackleAppInvocator"; import { WebAppInAppMessageView } from "../iam/HackleWebAppInAppMessage"; import { DecisionReason, InAppMessageActionType, InAppMessageBehavior, Properties, User, VariationKey } from "../../../core/internal/model/model"; import { InAppMessageEventType } from "../../iam/ui/event/InAppMessageViewEvent"; import { InAppMessageViewEventHandleType } from "../../iam/ui/event/InAppMessageViewEventHandleType"; export declare class HackleAppInvocationProcessor { private readonly invocator; constructor(invocator: HackleAppInvocator); private createInvocationRequestDto; process

| never, R>(invocation: Invocation): R | null; } declare type InvocationProcessCommand = "getUser" | "getSessionId" | "setUser" | "setUserId" | "setDeviceId" | "setUserProperty" | "updateUserProperties" | "updatePushSubscriptions" | "updateSmsSubscriptions" | "updateKakaoSubscriptions" | "resetUser" | "variation" | "variationDetail" | "isFeatureOn" | "featureFlagDetail" | "track" | "showUserExplorer" | "hideUserExplorer" | "remoteConfig" | "setPhoneNumber" | "unsetPhoneNumber" | "isOptOutTracking" | "setOptOutTracking" | "getCurrentInAppMessageView" | "closeInAppMessageView" | "handleInAppMessageView"; export interface SetUserInvocationDto { user: User; } export interface SetUserIdInvocationDto { userId: string | null; } export interface SetDeviceIdInvocationDto { deviceId: string; } export interface SetUserPropertyInvocationDto { key: string; value: any; } export interface UpdateUserPropertiesInvocationDto { operations: Record; } export interface UpdateSubscriptionsInvocationDto { operations: Record; } export interface VariationInvocationDto { experimentKey: number; user?: User | string; defaultVariation?: VariationKey; } export interface FeatureFlagInvocationDto { featureKey: number; user?: User | string; } export interface TrackInvocationDto { event: { key: string; value?: number; properties?: Properties; }; user?: User | string; } export interface RemoteConfigInvocationDto { key: string; valueType: string; defaultValue: string | number | boolean; user?: User | string; } export interface InvocationDecisionDto { variation: VariationKey; reason: DecisionReason; config: { parameters: Record; }; } export interface InvocationFeatureFlagDecisionDto { isOn: boolean; reason: DecisionReason; config: { parameters: Record; }; } export interface SetPhoneNumberInvocationDto { phoneNumber: string; } export interface CloseInAppMessageViewInvocationDto { viewId: string; } export interface InAppMessageEventDto { type: InAppMessageEventType; action?: InAppMessageActionDto; element?: InAppMessageElementDto; } export interface InAppMessageActionDto { behavior: InAppMessageBehavior; type: InAppMessageActionType; value: string | null; } interface InAppMessageElementDto { elementId?: string; area?: string; } export interface HandleInAppMessageViewInvocationDto { viewId: string; handleTypes: InAppMessageViewEventHandleType[]; event: InAppMessageEventDto; } export interface Invocation

| never, R> { readonly command: InvocationProcessCommand; readonly parameters?: P; readonly browserProperties: Properties; } export interface GetUserInvocation extends Invocation { readonly command: "getUser"; } export interface GetSessionIdInvocation extends Invocation { readonly command: "getSessionId"; } export interface SetUserInvocation extends Invocation { readonly command: "setUser"; readonly parameters: SetUserInvocationDto; } export interface SetUserIdInvocation extends Invocation { readonly command: "setUserId"; readonly parameters: SetUserIdInvocationDto; } export interface SetDeviceIdInvocation extends Invocation { readonly command: "setDeviceId"; readonly parameters: SetDeviceIdInvocationDto; } export interface SetUserPropertyInvocation extends Invocation { readonly command: "setUserProperty"; readonly parameters: SetUserPropertyInvocationDto; } export interface UpdateUserPropertiesInvocation extends Invocation { readonly command: "updateUserProperties"; readonly parameters: UpdateUserPropertiesInvocationDto; } export interface UpdatePushSubscriptionsInvocation extends Invocation { readonly command: "updatePushSubscriptions"; readonly parameters: UpdateSubscriptionsInvocationDto; } export interface UpdateSmsSubscriptionsInvocation extends Invocation { readonly command: "updateSmsSubscriptions"; readonly parameters: UpdateSubscriptionsInvocationDto; } export interface UpdateKakaoSubscriptionsInvocation extends Invocation { readonly command: "updateKakaoSubscriptions"; readonly parameters: UpdateSubscriptionsInvocationDto; } export interface ResetUserInvocation extends Invocation { readonly command: "resetUser"; } export interface VariationInvocation extends Invocation { readonly command: "variation"; readonly parameters: VariationInvocationDto; } export interface VariationDetailInvocation extends Invocation { readonly command: "variationDetail"; readonly parameters: VariationInvocationDto; } export interface IsFeatureOnInvocation extends Invocation { readonly command: "isFeatureOn"; readonly parameters: FeatureFlagInvocationDto; } export interface FeatureFlagDetailInvocation extends Invocation { readonly command: "featureFlagDetail"; readonly parameters: FeatureFlagInvocationDto; } export interface TrackInvocation extends Invocation { readonly command: "track"; readonly parameters: TrackInvocationDto; } export interface ShowUserExplorerInvocation extends Invocation { readonly command: "showUserExplorer"; } export interface HideUserExplorerInvocation extends Invocation { readonly command: "hideUserExplorer"; } export interface RemoteConfigInvocation extends Invocation { readonly command: "remoteConfig"; } export interface SetPhoneNumberInvocation extends Invocation { readonly command: "setPhoneNumber"; readonly parameters: SetPhoneNumberInvocationDto; } export interface UnsetPhoneNumberInvocation extends Invocation { readonly command: "unsetPhoneNumber"; } export interface SetOptOutTrackingInvocationDto { optOut: boolean; } export interface IsOptOutTrackingInvocation extends Invocation { readonly command: "isOptOutTracking"; } export interface SetOptOutTrackingInvocation extends Invocation { readonly command: "setOptOutTracking"; readonly parameters: SetOptOutTrackingInvocationDto; } export interface GetCurrentInAppMessageViewInvocation extends Invocation { readonly command: "getCurrentInAppMessageView"; } export interface CloseInAppMessageViewInvocation extends Invocation { readonly command: "closeInAppMessageView"; readonly parameters: CloseInAppMessageViewInvocationDto; } export interface HandleInAppMessageViewInvocation extends Invocation { readonly command: "handleInAppMessageView"; readonly parameters: HandleInAppMessageViewInvocationDto; } export {};