import type { DefaultAttachComponentOptions } from '@superviz/sdk/dist/components/base/types'; import type { MpSdk as Matterport } from '../common/types/matterport.types'; import { MatterportComponentOptions } from '../types'; export declare class Presence3D { name: string; private room; private useStore; private presence3DManager; private localParticipant; private isPrivate; private eventBus; private logger; private config; private participants; private roomParticipants; private isAttached; private followParticipantId?; private localFollowParticipantId?; private matterportSdk; private localSlot; private currentCirclePosition; private currentLocalPosition; private currentLocalRotation; private currentLocalFloorId; private currentLocalMode; private currentLocalLaserDest; private circlePositions; private currentSweepId; private THREE; private directionalLight; private ambientLight; private avatars; private lasers; private laserUpdateIntervals; private positionInfos; private tempQuaternion; private mpInputComponent; private isSweeping; private unsubscribeFrom; private hasJoinedRoom; private hasJoined3D; constructor(matterportSdk: Matterport, options?: MatterportComponentOptions); private get localParticipantId(); /** * @function attach * @description attach component * @returns {void} */ attach: (params: DefaultAttachComponentOptions) => void; detach: () => void; private destroy; private start; private subscribeToRealtimeEvents; private unsubscribeToRealtimeEvents; private subscribeToEventBusEvents; private unsubscribeToEventBusEvents; /** Realtime Callbacks */ private onParticipantJoined; private onLocalParticipantJoined; private onParticipantLeave; private onParticipantUpdated; private updateParticipant; private onFollowParticipantUpdate; private onGatherUpdate; /** Participants */ private createParticipantList; private createParticipantOn3D; private removeParticipant; private addParticipant; /** * @function goTo * @description go to a participant * @param participantId - participant id to go to * @returns {void} */ goTo: (participantId: string) => void; /** * @function gather * @description gather all participants * @returns {void} */ gather: () => void; /** * @function setPrivate * @param {boolean} isPrivate * @description updates participant private status * @returns {void} */ private setPrivate; /** * @function follow * @description follow a participant * @param participantId - participant id to follow, if not provided, follow is disabled * @returns {void} */ follow: (participantId?: string) => void; /** * @function localFollow * @description follow a unique participant * @param participantId - participant id to follow, if not provided, follow is disabled * @returns {void} */ private localFollow; /** Matterport */ private destroyAvatar; private destroyLaser; private moveToAnotherParticipant; private createAvatar; private createName; private createLaser; private subscribeToMatterportEvents; private _onLocalSweepChangeObserver; private _onLocalFloorChangeObserver; private _onLocalModeChangeObserver; private _onLocalCameraMoveObserver; private _onLocalMouseMoveObserver; private addInputComponent; private addSceneLight; private createDirectionLight; private createAmbientLight; private adjustMyPositionToCircle; private createCircleOfPositions; private onParticipantsUpdated; private moveToSweep; private updateAvatar; private updateLaser; }