@benshi.ai/js-sdk
Version:
Benshi SDK
76 lines (67 loc) • 1.3 kB
text/typescript
export enum EventType {
Identify = 'identify',
Page = 'page',
Level = 'level',
Purchase = 'purchase',
View = 'view',
Scroll = 'scroll',
PushNotification = 'push_notification',
Video = 'video',
Audio = 'audio',
Track = 'track',
Click = 'click'
}
export enum DebugLevel {
Debug,
Info,
Log,
Warn,
Error,
None
}
export interface BsBrowserOptions {
logScroll: boolean;
logPage: boolean;
logUrlChanges: boolean;
flushOnLeave: boolean;
}
export interface BsLogOptions {
flushInterval: number;
flushMaxRetries: number;
endpoint: string;
cacheEventsInLocalstorage: boolean;
cacheEventsKey: string;
debugLevel: DebugLevel;
}
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 interface EventTeaser {
user_id: string;
type: EventType;
name?: string;
properties: Record<string, any>
}
export interface Event extends EventTeaser{
uuid: string;
device_time: number;
context: EventContext;
}
export interface QueueItem {
uuid: string;
event: Event;
time: number;
retries: number;
lastRetry?: number;
}