UNPKG

@osobh/reactar

Version:

AR Library for React Native and Expo

59 lines (58 loc) 1.33 kB
import { EventEmitter } from 'events'; export interface ARUser { userId: string; deviceId: string; position: { x: number; y: number; z: number; }; rotation: { x: number; y: number; z: number; }; lastUpdate: number; isActive: boolean; } export interface UserSessionOptions { serverUrl?: string; heartbeatInterval?: number; inactivityTimeout?: number; } export declare class UserSessionManager extends EventEmitter { private options; private users; private currentUser; private heartbeatInterval; constructor(options?: UserSessionOptions); /** * Initializes a user session */ initializeSession(deviceId: string): Promise<ARUser>; /** * Updates the current user's position and rotation */ updateUserPosition(position: { x: number; y: number; z: number; }, rotation: { x: number; y: number; z: number; }): void; /** * Handles incoming user updates from other devices */ handleRemoteUserUpdate(user: ARUser): void; /** * Gets all active users in the session */ getActiveUsers(): ARUser[]; private startHeartbeat; /** * Ends the current user's session */ endSession(): void; }