@loopkit/javascript
Version:
JavaScript SDK for LoopKit analytics platform
62 lines • 1.69 kB
TypeScript
import type { LoopKitConfig, ISessionManager } from '../types/index.js';
import type { Logger } from '../utils/Logger.js';
import type { IdGenerator } from '../utils/IdGenerator.js';
import type { StorageManager } from './StorageManager.js';
type SessionEventCallback = (eventName: string, properties: Record<string, any>) => void;
/**
* Session manager for handling user sessions and anonymous IDs
*/
export declare class SessionManager implements ISessionManager {
private config;
private logger;
private idGenerator;
private storageManager;
private sessionEventCallback?;
private sessionId;
private anonymousId;
private lastActivityTime;
private sessionStartTime;
constructor(config: LoopKitConfig, logger: Logger, idGenerator: IdGenerator, storageManager: StorageManager);
/**
* Set callback for session events
*/
setSessionEventCallback(callback: SessionEventCallback): void;
/**
* Get current session ID
*/
getSessionId(): string;
/**
* Get anonymous ID
*/
getAnonymousId(): string;
/**
* Start new session
*/
startSession(): void;
/**
* End current session
*/
endSession(): void;
/**
* Check if session is active
*/
isSessionActive(): boolean;
/**
* Update activity timestamp
*/
updateActivity(): void;
/**
* Update configuration
*/
updateConfig(config: LoopKitConfig): void;
/**
* Reset session state
*/
reset(): void;
/**
* Load existing anonymous ID or create new one
*/
private loadOrCreateAnonymousId;
}
export {};
//# sourceMappingURL=SessionManager.d.ts.map