UNPKG

@multiplayer-app/session-recorder-node

Version:
69 lines 2.62 kB
import { SessionType, SessionRecorderIdGenerator } from '@multiplayer-app/session-recorder-common'; import { ISession } from './types'; export declare class SessionRecorder { private _isInitialized; private _shortSessionId; private _traceIdGenerator; private _sessionType; private _sessionState; private _apiService; private _sessionShortIdGenerator; private _resourceAttributes; /** * Initialize session recorder with default or custom configurations */ constructor(); /** * @description Initialize the session recorder * @param config - Configuration object * @param config.apiKey - multiplayer otlp key * @param config.traceIdGenerator - multiplayer compatible trace id generator * @param config.resourceAttributes - Optional resource attributes * @param config.generateSessionShortIdLocally - Optional session short ID generator * @param config.apiBaseUrl - Optional base API URL override */ init(config: { apiKey: string; traceIdGenerator: SessionRecorderIdGenerator; resourceAttributes?: object; generateSessionShortIdLocally?: boolean | (() => string); apiBaseUrl?: string; }): void; /** * @description Start a new session * @param {SessionType} SessionType - the type of session to start * @param {ISession} [sessionPayload] - session metadata * @returns {Promise<void>} */ start(sessionType: SessionType, sessionPayload?: Omit<ISession, '_id'>): Promise<void>; /** * @description Save the continuous session * @param {String} [reason] * @returns {Promise<void>} */ static save(reason?: string): Promise<void>; /** * @description Save the continuous session * @param {ISession} [sessionData] * @returns {Promise<void>} */ save(sessionData?: ISession): Promise<void>; /** * @description Stop the current session with an optional comment * @param {ISession} [sessionData] - user-provided comment to include in session metadata * @returns {Promise<void>} */ stop(sessionData?: ISession): Promise<void>; /** * @description Cancel the current session * @returns {Promise<void>} */ cancel(): Promise<void>; /** * @description Check if continuous session should be started/stopped automatically * @param {ISession} [sessionPayload] * @returns {Promise<void>} */ checkRemoteContinuousSession(sessionPayload?: Omit<ISession, '_id' | 'shortId'>): Promise<void>; } //# sourceMappingURL=sessionRecorder.d.ts.map