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 {};