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;
}
