tianji-client-sdk
Version:
114 lines • 3.18 kB
TypeScript
/**
* 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