UNPKG

tianji-client-sdk

Version:

114 lines 3.18 kB
/** * Client SDK for Tianji Application API */ import { IdentifyPayload } from './types'; import { BatchItem } from './utils/batch-manager'; /** * Application event payload interface */ export interface ApplicationEventPayload { /** * Language information (max 35 chars) */ language?: string; /** * Operating system information (max 20 chars) */ os?: string; /** * URL information (max 500 chars) */ url?: string; /** * Application identifier (required) */ application: string; /** * Event name (max 50 chars) */ name?: string; /** * Application data object */ data?: Record<string, any>; /** * Screen Name */ screen?: string; /** * Screen Params */ params?: Record<string, any>; } /** * Application identify payload interface */ export interface ApplicationIdentifyPayload extends ApplicationEventPayload { /** * User identification data (required for identify) */ data: Record<string, any>; } /** * Batch request item interface */ export interface ApplicationBatchRequestItem extends BatchItem<ApplicationEventPayload | ApplicationIdentifyPayload> { type: 'event' | 'identify'; payload: ApplicationEventPayload | ApplicationIdentifyPayload; } /** * Options for application tracking */ export interface ApplicationTrackingOptions { /** * Your Tianji server URL * @example https://tianji.example.com */ serverUrl: string; /** * Application identifier */ applicationId: string; /** * Batch delay in milliseconds (optional, defaults to 200ms) */ batchDelay?: number; /** * Disable batch mode and send requests immediately (optional, defaults to false) */ disableBatch?: boolean; } export declare function initApplication(_options: ApplicationTrackingOptions): void; /** * Update current application screen */ export declare function updateCurrentApplicationScreen(name: string, params: Record<string, any>): void; /** * Send application screen view event to Tianji server */ export declare function reportApplicationScreenView(screenName?: string, screenParams?: Record<string, any>): Promise<void>; /** * Send application event to Tianji server * * @param options - Application tracking options * @param eventName - Name of the event * @param eventData - Event data */ export declare function reportApplicationEvent(eventName: string, eventData?: Record<string, any>, screenName?: string, screenParams?: Record<string, any>): Promise<void>; export interface VersionPayload { version?: string; sdkVersion?: string; } /** * Identify user in application * * @param options - Application tracking options * @param userData - User identification data */ export declare function identifyApplicationUser(userInfo: IdentifyPayload | VersionPayload): Promise<void>; /** * Flush batch queue manually (send all pending requests immediately) * Useful for ensuring events are sent before app closes */ export declare function flushApplicationBatchQueue(): Promise<void>; //# sourceMappingURL=application.d.ts.map