@chaseleto/sessions-sdk
Version:
Privacy-conscious session recording SDK for self-hosted session tracking
75 lines • 1.68 kB
TypeScript
import { SessionSDKOptions } from './types';
export declare class SessionSDK {
private apiKey;
private options;
private sessionId;
private isRecording;
private startTime;
private events;
private consoleLogger;
private networkLogger;
private uploadQueue;
private stopRecording?;
constructor(apiKey: string, options?: SessionSDKOptions);
/**
* Initialize and start session recording
*/
init(): void;
/**
* Start recording the session
*/
private startRecording;
/**
* Start the actual rrweb recording
*/
private startRrwebRecording;
/**
* Stop recording and upload final data
*/
stop(): void;
/**
* Add custom attributes to the session
*/
setAttributes(attributes: Record<string, any>): void;
/**
* Set user ID for the session
*/
setUserId(userId: string): void;
/**
* Get current session ID
*/
getSessionId(): string;
/**
* Get current session duration
*/
getSessionDuration(): number;
/**
* Check if recording is active
*/
isActive(): boolean;
/**
* Merge default options with user options
*/
private mergeOptions;
/**
* Schedule periodic uploads
*/
private scheduleUpload;
/**
* Clean up old data to prevent memory leaks
*/
private cleanupOldData;
/**
* Set up page unload handler
*/
private setupUnloadHandler;
/**
* Upload current session data
*/
private uploadSessionData;
/**
* Destroy the SDK instance
*/
destroy(): void;
}
//# sourceMappingURL=session-sdk.d.ts.map