@opentelemetry/web-common
Version:
Common utilities for web instrumentation
45 lines • 1.73 kB
TypeScript
import { SessionIdGenerator } from './types/SessionIdGenerator';
import { Session } from './types/Session';
import { SessionProvider } from './types/SessionProvider';
import { SessionObserver } from './types/SessionObserver';
import { SessionStore } from './types/SessionStore';
import { SessionPublisher } from './types/SessionPublisher';
export interface SessionManagerConfig {
/** Class responsible for generating a session ID */
sessionIdGenerator: SessionIdGenerator;
/** Class responsible for storing session data over multiple page loads. */
sessionStore: SessionStore;
/** Maximum duration of a session in seconds */
maxDuration?: number;
/** Maximum time without a user activity after which a session should be expired, in seconds */
inactivityTimeout?: number;
}
/**
* SessionManager is responsible for managing the active session including starting,
* resetting, and persisting.
*/
export declare class SessionManager implements SessionProvider, SessionPublisher {
private _session;
private _idGenerator;
private _store;
private _observers;
private _maxDuration?;
private _maxDurationTimeoutId?;
private _inactivityTimeout?;
private _inactivityTimeoutId?;
private _lastActivityTimestamp;
private _inactivityResetDelay;
constructor(config: SessionManagerConfig);
start(): Promise<void>;
addObserver(observer: SessionObserver): void;
getSessionId(): string | null;
getSession(): Session;
shutdown(): void;
private startSession;
private endSession;
private resetSession;
private resetTimers;
private resetInactivityTimer;
private resetMaxDurationTimer;
}
//# sourceMappingURL=SessionManager.d.ts.map