@casual-simulation/aux-vm-browser
Version:
A set of utilities required to securely run an AUX in a web browser.
73 lines • 2.81 kB
TypeScript
import type { RoomOptions, RuntimeActions } from '@casual-simulation/aux-runtime';
import type { BotHelper, GetRoomOptions, RoomJoin, RoomLeave, SetRoomOptions } from '@casual-simulation/aux-vm/managers';
import type { Room, Track } from 'livekit-client';
import type { Observable, SubscriptionLike } from 'rxjs';
/**
* Defines a class that is able to manage Livekit rooms and make streams available to scripts.
*/
export declare class LivekitManager implements SubscriptionLike {
private _helper;
private _rooms;
private _addressToTrack;
private _addressToPublication;
private _addressToParticipant;
private _addressToVideo;
private _trackToAddress;
private _closed;
private _onTrackNeedsAttachment;
private _onTrackNeedsDetachment;
private _livekit;
/**
* Gets an observable that resolves whenever a track needs to be attached to the document.
*/
get onTrackNeedsAttachment(): Observable<Track>;
/**
* Gets an observable that resolves whenever a track needs to be detached from the document.
*/
get onTrackNeedsDetachment(): Observable<Track>;
get closed(): boolean;
constructor(helper: BotHelper);
unsubscribe(): void;
private _requestMediaPermissions;
joinRoom(join: RoomJoin): Promise<void>;
leaveRoom(leave: RoomLeave): Promise<void>;
setRoomOptions(setRoomOptions: SetRoomOptions): Promise<void>;
_setRoomOptions(room: Room, options: Partial<RoomOptions>): Promise<boolean>;
getRoomOptions(getRoomOptions: GetRoomOptions): Promise<void>;
private _getRoomOptions;
private _getParticipantOptions;
handleEvents(events: RuntimeActions[]): void;
private _getRoomTrackOptions;
private _setRoomTrackOptions;
private _findRemoteParticipant;
private _getRoomRemoteOptions;
/**
* Gets the media stream that is referenced by the given address.
* @param address The address that should be used.
*/
getMediaByAddress(address: string): MediaStream;
/**
* Gets the video that is referenced by the given address.
* @param address The address that should be used.
*/
getVideoByAddress(address: string): HTMLVideoElement;
private _onTrackSubscribed;
private _onTrackUnsubscribed;
private _onLocalTrackPublished;
private _onLocalTrackUnpublished;
private _trackArg;
private _getTrackOptions;
private _onDisconnected;
private _onReconnected;
private _onTrackMuted;
private _onTrackUnmuted;
private _onActiveSpeakersChanged;
private _onParticipantConnected;
private _onParticipantDisconnected;
private _saveTrack;
private _deleteTrack;
private _getTrackKind;
private _getTrackQuality;
private _getTrackAddress;
}
//# sourceMappingURL=LivekitManager.d.ts.map