@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
99 lines (82 loc) • 1.86 kB
text/typescript
export enum NudgeDefinitionType {
message = 'message',
UIComponent = 'ui_component',
}
export enum NudgeRenderMethodType {
push_notification = 'push_notification',
inAppMessage = 'in_app_message',
inAppComponent = 'in_app_component',
}
export interface CTAResource {
type: string;
id: string;
}
export interface MessageInternal {
inv_id: number;
ref_time: string;
action_id: number;
expired_at: string;
model_class: string;
model_id: number;
followup_of: number;
followup_of_ref: string;
}
export enum NudgeAction {
Shown = 'shown',
Error = 'error',
Block = 'block',
Discard = 'discard',
Open = 'open',
Expired = 'expired',
}
export enum NudgeType {
Push = 'push_notification',
InApp = 'in_app_message',
}
export interface NudgeResponseProperties {
response: string;
details?: string;
internal: any;
}
export interface Nudge {
type: string;
render_method: string;
delivery_mode: string;
content: Record<string, any>;
attr: Record<string, any>;
internal: any;
tags?: any;
}
export interface NudgeResponseItem {
payload: Nudge;
error?: string | null;
}
export interface INudgesRepository {
getNudges(
userId: string,
nudgeScreenType: string
): Promise<NudgeResponseItem[]>;
markNudgeAsShown(nudgeId: string): void;
haveBeenAlreadyShown(nudgeId: string): boolean;
}
export interface ActionAPIResponse {
data?: NudgeResponseItem[];
}
export type NudgeCallBack = {
cta: 'redirect' | 'add_to_cart';
id?: string;
};
// Legacy support
export interface CTA {
type: CTAType,
cta_resource: CTAResource,
}
export enum CTAType {
None = '',
Redirect = 'redirect',
AddToCart = 'add_to_cart'
}
export interface CTAResource {
type: string,
id: string
}