@thrivestack/analytics-browser
Version:
ThriveStack Analytics Platform - Comprehensive web analytics tracking with privacy-first approach
222 lines • 5.39 kB
TypeScript
export interface ThriveStackOptions {
apiKey: string;
apiEndpoint?: string;
trackClicks?: boolean;
trackForms?: boolean;
enableConsent?: boolean;
batchSize?: number;
batchInterval?: number;
geoIpServiceUrl?: string;
source?: string;
sessionTimeout?: number;
debounceDelay?: number;
defaultConsent?: boolean;
debug?: boolean;
enableDeveloperLogs?: boolean;
}
export interface LocationInfo {
city?: string | null;
region?: string | null;
country?: string | null;
postal?: string | null;
loc?: string | null;
timezone?: string | null;
country_code?: string | null;
}
export interface UTMParameters {
utm_campaign?: string | null;
utm_medium?: string | null;
utm_source?: string | null;
utm_term?: string | null;
utm_content?: string | null;
}
export interface EventContext {
device_id?: string | null;
group_id?: string;
session_id?: string;
source?: string;
}
export interface EventProperties {
page_title?: string;
page_url?: string;
page_path?: string;
page_referrer?: string | null;
language?: string | null;
ip_address?: string | null;
city?: string | null;
region?: string | null;
country?: string | null;
postal?: string | null;
loc?: string | null;
timezone?: string | null;
element_text?: string | null;
element_tag?: string | null;
element_id?: string | null;
element_href?: string | null;
element_aria_label?: string | null;
element_class?: string | null;
element_position_left?: number | null;
element_position_top?: number | null;
viewport_height?: number;
viewport_width?: number;
form_id?: string | null;
form_name?: string | null;
form_action?: string | null;
form_fields?: number;
form_completion?: number;
interaction_time?: number | null;
activity?: string | null;
[key: string]: any;
}
export interface ThriveStackEvent {
event_name: string;
properties: EventProperties;
user_id?: string;
context: EventContext;
timestamp: string;
}
export interface UserData {
user_id: string;
context: EventContext;
traits: {
user_email?: string;
user_name?: string;
[key: string]: any;
};
timestamp: string;
}
export interface GroupData {
group_id: string;
user_id?: string;
context: EventContext;
traits: {
group_type?: string;
account_domain?: string;
account_name?: string;
[key: string]: any;
};
timestamp: string;
}
export interface SessionData {
sessionId: string;
startTime: string;
lastActivity: string;
}
export interface ConsentCategories {
functional: boolean;
analytics: boolean;
marketing: boolean;
}
export interface InteractionHistoryItem {
type: string;
details: EventProperties;
timestamp: string;
sequence: number;
}
export interface SubscriptionStatus {
status: string;
timestamp: number;
}
export interface SubscriptionStatusResponse {
status: string;
[key: string]: any;
}
export interface ApiResponse {
success: boolean;
reason?: string;
[key: string]: any;
}
export interface FingerprintJSResult {
visitorId: string;
[key: string]: any;
}
export interface FingerprintJSInstance {
get(): Promise<FingerprintJSResult>;
}
export interface FormTrackingData {
startTime: number;
filledFields: Set<string>;
}
export interface ScriptAttributes {
'data-api-key'?: string;
'api-key'?: string;
'data-source'?: string;
source?: string;
'data-track-clicks'?: string;
'track-clicks'?: string;
'data-track-forms'?: string;
'track-forms'?: string;
'data-respect-dnt'?: string;
'respect-dnt'?: string;
'data-enable-developer-logs'?: string;
'enable-developer-logs'?: string;
}
export interface EmailAbuseRequest {
email: string;
}
export interface EmailAbuseApiResponse {
isAbuse: number;
reasonForAbuse: {
isDisposable: boolean;
domainExists: boolean;
isDuplicate: boolean;
};
}
export interface EmailAbuseResponse {
success: boolean;
message?: string;
data?: EmailAbuseApiResponse;
}
export interface IpLocationData {
ip?: string;
city?: string;
region?: string;
country?: string;
country_code?: string;
postal?: string;
loc?: string;
timezone?: string;
[key: string]: any;
}
export interface DebugMode {
enabled: boolean;
logEvents?: boolean;
}
export interface ThriveStackError {
message: string;
code?: string;
details?: any;
}
export interface TrackingConfig {
enabled: boolean;
categories: ConsentCategories;
subscriptionStatus: string | null;
}
export interface DeviceInfo {
deviceId: string | null;
ready: boolean;
source: 'fingerprintjs' | 'cookie' | 'random';
}
export interface SessionInfo {
sessionId: string;
startTime: string;
lastActivity: string;
timeout: number;
}
export interface BatchConfig {
size: number;
interval: number;
queue: ThriveStackEvent[];
}
export interface UserInfo {
userId: string;
groupId: string;
source: string;
}
export interface ApiEndpoints {
track: string;
identify: string;
group: string;
subscriptionStatus: string;
}
//# sourceMappingURL=types.d.ts.map