saltfish
Version:
An interactive video-guided tour system for web applications
45 lines • 1.6 kB
TypeScript
import type { IUserManagementService, IPlayerInitializationService, ManagedManagers } from './ServiceInterfaces';
/**
* Service for handling user identification, anonymous users, and A/B testing
*/
export declare class UserManagementService implements IUserManagementService {
private managers;
private playerInitializationService?;
private userDataLoadedPromise;
private userDataLoadedResolve;
private lastUserIdentification;
constructor(managers: ManagedManagers);
/**
* Set the player initialization service for dependency
*/
setPlayerInitializationService(service: IPlayerInitializationService): void;
/**
* Get the last user identification for restoration
*/
getLastUserIdentification(): {
userId: string;
userData?: Record<string, unknown>;
} | null;
/**
* Get the user data loaded promise for waiting on A/B test assignments
*/
getUserDataLoadedPromise(): Promise<void> | null;
/**
* Identify a user with ID and optional data
*/
identifyUser(userId: string, userData?: Record<string, unknown>): void;
/**
* Identify user anonymously with optional data
*/
identifyAnonymous(userData?: Record<string, unknown>): Promise<void>;
/**
* Record A/B test attempt for analytics
*/
recordABTestAttempt(playlistId: string): Promise<void>;
/**
* Resolve the user data loaded promise (called by PlayerInitializationService)
*/
resolveUserDataLoaded(): void;
destroy(): void;
}
//# sourceMappingURL=UserManagementService.d.ts.map