UNPKG

matrix-react-sdk

Version:
91 lines (90 loc) 3.11 kB
interface IEvent { key: string; count: number; sum?: number; dur?: number; segmentation?: Record<string, unknown>; timestamp?: number; hour?: unknown; dow?: unknown; } interface IJoinRoomEvent extends IEvent { key: "join_room"; dur: number; segmentation: { room_id: string; num_users: number; is_encrypted: boolean; is_public: boolean; type: "room_directory" | "slash_command" | "link" | "invite"; }; } export default class CountlyAnalytics { private baseUrl; private appKey; private userKey; private anonymous; private appPlatform; private appVersion; private initTime; private firstPage; private heartbeatIntervalId; private activityIntervalId; private trackTime; private lastBeat; private storedDuration; private lastView; private lastViewTime; private lastViewStoredDuration; private sessionStarted; private heartbeatEnabled; private inactivityCounter; private pendingEvents; private static internalInstance; static get instance(): CountlyAnalytics; get disabled(): boolean; canEnable(): boolean; private changeUserKey; enable(anonymous?: boolean): Promise<void>; disable(): Promise<void>; reportFeedback(rating: 1 | 2 | 3 | 4 | 5, comment: string): void; trackPageChange(generationTimeMs?: number): void; private trackPageView; static getTimestamp(): number; private lastMsTs; private getMsTimestamp; recordError(err: Error | string, fatal?: boolean): Promise<void>; private trackErrors; private heartbeat; private request; private getTimeParams; private queue; private getOrientation; private reportOrientation; private startTime; private stopTime; private getMetrics; private beginSession; private reportViewDuration; private endSession; private onVisibilityChange; private onUserActivity; private trackSessions; trackBeginInvite(roomId: string): void; trackSendInvite(startTime: number, roomId: string, qty: number): void; trackRoomCreate(startTime: number, roomId: string): Promise<void>; trackRoomJoin(startTime: number, roomId: string, type: IJoinRoomEvent["segmentation"]["type"]): void; trackSendMessage(startTime: number, sendPromise: Promise<{ event_id: string; }>, roomId: string, isEdit: boolean, isReply: boolean, content: { format?: string; msgtype: string; }): Promise<void>; trackStartCall(roomId: string, isVideo?: boolean, isJitsi?: boolean): void; trackJoinCall(roomId: string, isVideo?: boolean, isJitsi?: boolean): void; trackRoomDirectoryBegin(): void; trackRoomDirectory(startTime: number): void; trackRoomDirectorySearch(numResults: number, query: string): void; track<E extends IEvent>(key: E["key"], segments?: Omit<E["segmentation"], "room_id" | "num_users" | "is_encrypted" | "is_public">, roomId?: string, args?: Partial<Pick<E, "dur" | "sum" | "timestamp">>, anonymous?: boolean): Promise<void>; } export {};