@benshi.ai/js-sdk
Version:
Benshi SDK
119 lines (118 loc) • 3.52 kB
TypeScript
import { CartProperties, CheckoutProperties, DeliveryProperties, ECommerceTypes, ItemProperties } from "../modules/ECommerce/typings";
import { LevelProperties, MilestoneProperties } from "../modules/Loyalty/typings";
import { ELearningTypes } from "../modules/ELearning/typings";
import { LoyaltyTypes } from "../modules/Loyalty/typings";
import { AppProperties, ContentBlock, IdentifyProperties, InternalSearchProperties, MediaProperties, NavigationTypes, PageProperties, NudgeResponseProperties } from "../modules/Navigation/typings";
import { DeferredPaymentProperties, PaymentsTypes } from "../modules/Payments/typings";
import { InteractProperties, ReferenceGuideTypes } from "../modules/ReferenceGuide/typings";
import { FeedProperties, FeedTypes, PublicationProperties } from "../modules/Feed/typings";
export declare enum GlobalTypes {
NavigationTypes = 0,
ECommerceTypes = 1
}
export interface BsBrowserOptions {
logScroll: boolean;
logPage: boolean;
logUrlChanges: boolean;
flushOnLeave: boolean;
}
export interface LogIngestorOptions {
flushInterval: number;
flushMaxRetries: number;
ingestPath: string;
cacheEventsInLocalstorage: boolean;
cacheEventsKey: string;
}
export interface BsLogOptions {
baseUrl: string;
nudgeFetchPath: string;
currencyPath: string;
catalogPath: string;
activateNudgeMechanism: boolean;
defaultBlock: ContentBlock;
debug: boolean;
skipDynamicLoading?: boolean;
}
export interface BatteryStatus {
charging: boolean;
chargingTime: number;
dischargingTime: number;
level: number;
}
export interface EventContext {
browser?: {
user_agent: string;
languages: string[];
online: boolean;
battery?: BatteryStatus;
};
}
export type AnyKnownType = NavigationTypes | ECommerceTypes | ELearningTypes | ReferenceGuideTypes | PaymentsTypes | LoyaltyTypes | FeedTypes;
export type EventTeaser = {
name?: string;
type: NavigationTypes;
props: PageProperties | AppProperties | IdentifyProperties | MediaProperties | InternalSearchProperties | NudgeResponseProperties;
} | {
name?: string;
type: ECommerceTypes;
props: CartProperties | DeliveryProperties | CheckoutProperties | ItemProperties;
} | {
name?: string;
type: ReferenceGuideTypes;
props: InteractProperties;
} | {
name?: string;
type: PaymentsTypes;
props: DeferredPaymentProperties;
} | {
name?: string;
type: LoyaltyTypes;
props: LevelProperties | MilestoneProperties;
} | {
name?: string;
type: FeedTypes;
props: PublicationProperties | FeedProperties;
};
export type EventCommon = {
block: ContentBlock;
ol: boolean;
ts: string;
};
export type Event = EventTeaser & EventCommon;
export type DeviceInfoObject = {
id: string;
brand: string;
model: string;
os: string;
os_ver: string;
};
export type AppInfoObject = {
id: string;
min_sdk_version: number;
target_sdk_version: number;
version_code: number;
version_name: string;
version: string;
};
export type EventMainObject = {
s_id: string;
u_id: string;
app_info: AppInfoObject;
d_info: DeviceInfoObject;
sdk: string;
up?: number;
dn?: number;
data?: Event[];
};
export interface QueueItem {
uuid: string;
event: Event;
time: number;
retries: number;
lastRetry?: number;
}
export interface TypedRows {
header: string[];
data_type: string[];
rows: any[][];
}