@cloudflare/realtimekit 1.2.0-staging.19 → 1.2.0-staging.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import * as _dyteinternals_utils from '@dyteinternals/utils';
3
- import { MediaVideoQualityType, ViewType, LivestreamViewerMediaQualityType, MediaProductionPermissionType, WaitingRoomTypes, createNewFlagsmithInstance, PresetTypeV2, MediaScreenShareQualityType, PluginAccessControls, RecorderType as RecorderType$1, BorderRadius, BorderWidth, Theme } from '@dyteinternals/utils';
3
+ import { PresetTypeV2, MediaVideoQualityType, ViewType, MediaScreenShareQualityType, LivestreamViewerMediaQualityType, PluginAccessControls, WaitingRoomTypes, MediaProductionPermissionType, RecorderType as RecorderType$1, BorderRadius, BorderWidth, Theme, createNewFlagsmithInstance } from '@dyteinternals/utils';
4
4
  import { MessageType as MessageType$1 } from '@protobuf-ts/runtime';
5
5
  import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
6
6
  import * as WorkerTimers from 'worker-timers';
@@ -2217,16 +2217,16 @@ interface PeerMetaData$1 {
2217
2217
  }
2218
2218
  /** Similar to what web-core has for media permissions */
2219
2219
  type MediaPermissions$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'CANCELED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE';
2220
- interface InhouseCallStatsInitializeParams {
2221
- peerId: string;
2222
- engineName: string;
2223
- env?: ClientEnvTypeAll;
2224
- iceServers: any[];
2225
- apiBase?: string;
2226
- flags: Record<string, Record<'enabled' | 'value', any>>;
2227
- logger?: RTKLogger$2;
2228
- apiHostnames: ApiHostnames;
2229
- skipConnectivityChecks: boolean;
2220
+ interface InhouseCallStatsInitializeParams {
2221
+ peerId: string;
2222
+ engineName: string;
2223
+ env?: ClientEnvTypeAll;
2224
+ iceServers: any[];
2225
+ apiBase?: string;
2226
+ flags: Record<string, Record<'enabled' | 'value', any>>;
2227
+ logger?: DyteLogger;
2228
+ apiHostnames: ApiHostnames;
2229
+ skipConnectivityChecks: boolean;
2230
2230
  }
2231
2231
  /**
2232
2232
  * Note(ravindra-dyte):
@@ -2235,12 +2235,12 @@ interface InhouseCallStatsInitializeParams {
2235
2235
  declare type LogData$3 = {
2236
2236
  [key: string]: string | number | boolean | null | undefined | LogData$3;
2237
2237
  };
2238
- declare interface RTKLogger$2 {
2239
- info(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2240
- error(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2241
- debug(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2242
- log(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2243
- warn(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2238
+ declare interface DyteLogger {
2239
+ info(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2240
+ error(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2241
+ debug(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2242
+ log(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2243
+ warn(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
2244
2244
  }
2245
2245
  declare enum Event {
2246
2246
  PRECALL_TEST_BEGIN = "precall_begin",
@@ -2535,14 +2535,19 @@ interface IVSPlayerLiveLatencyEntry extends EventEntryBase {
2535
2535
  metaData: IVSPlayerLiveLatencyData;
2536
2536
  }
2537
2537
  type EventEntry = CallJoinBeginEntry | NetworkQualityTestBeginEntry | NetworkQualityTestEndEntry | BrowserForegroundedEntry | PingStatsEntry | PreCallTestBeginEntry | PreCallTestCompletedEntry | WebSocketConnectedEntry | TransportConnectedEntry | AudioToggleEntry | VideoToggleEntry | ScreenShareToggleEntry | DisconnectEntry | ReconnectEntry | ParticipantRoleToggleEntry | DominantSpeakerEntry | DevicesEntry | SelectedDeviceEntry | MediaPermissionEntry | MediaPlaybackFailureEntry | MediaTrackFailureEntry | ScreenShareRequestedEntry | ExpectedVideoResolutionEntry | ExpectedScreenshareResolutionEntry | TabChangeEntry | BrowserBackgroundedEntry | LegacySwitchEntry | IVSPlayerRebufferingEntry | IVSPlayerAudioBlockedEntry | IVSPlayerPlaybackBlockedEntry | IVSPlayerNetworkUnavailableEntry | IVSPlayerInitializedEntry | IVSPlayerErrorEntry | IVSPlayerRecoverableErrorEntry | IVSPlayerAnalyticsEventEntry | IVSPlayerLiveLatencyEntry | IVSPlayerPlaybackRateChangedEntry | IVSPlayerQualityChangedEntry | IVSPlayerWorkerErrorEntry;
2538
- declare class EventHandler extends EventEmitter {
2539
- constructor({ logger, peerId, apiHostnames, }: {
2540
- logger: RTKLogger$2;
2541
- peerId: string;
2542
- apiHostnames: ApiHostnames;
2543
- });
2544
- callEvent(entry: EventEntry): void;
2545
- flush(): Promise<boolean>;
2538
+ declare class EventHandler extends EventEmitter {
2539
+ private logger;
2540
+ private peerId;
2541
+ private eventStore;
2542
+ private apiEndpoint;
2543
+ constructor({ logger, peerId, apiHostnames, }: {
2544
+ logger: DyteLogger;
2545
+ peerId: string;
2546
+ apiHostnames: ApiHostnames;
2547
+ });
2548
+ private sendEventsChunkToServer;
2549
+ callEvent(entry: EventEntry): void;
2550
+ flush(): Promise<boolean>;
2546
2551
  }
2547
2552
  interface ParsedProducerStats {
2548
2553
  outboundVideoRtpId: string[];
@@ -2640,12 +2645,20 @@ declare abstract class Measurements extends EventEmitter {
2640
2645
  generateProducerStreamMap(producer: any, parse?: boolean): Promise<ProducerStatistics>;
2641
2646
  generateConsumerStreamMap(consumer: any, parse?: boolean): Promise<ConsumerStatistics>;
2642
2647
  deregisterProducer(producer: any): void;
2643
- deregisterConsumer(consumer: any): void;
2644
- getWorkingSimulcastVideoStats(videoStatsList: OutboundVideoStreamStats[]): OutboundVideoStreamStats;
2648
+ deregisterConsumer(consumer: any): void;
2649
+ protected getIceCandidateStats(stats: any): IceCandidateStats;
2650
+ getWorkingSimulcastVideoStats(videoStatsList: OutboundVideoStreamStats[]): OutboundVideoStreamStats;
2651
+ protected parseRTCReport(report: RTCStatsReport, filters?: string[], onceOnly?: boolean, ownerId?: string, transportInfo?: {
2652
+ id: string;
2653
+ producing: boolean;
2654
+ consuming: boolean;
2655
+ }): ParsedRTCStats;
2645
2656
  getProducersReport(producers: any[]): Promise<ProducerStatistics[]>;
2646
2657
  getConsumersReport(consumers: any[]): Promise<ConsumerStatistics[]>;
2647
2658
  getTransportReport(transport: any): Promise<any>;
2648
- getProcessedStats(transport: any, consuming: boolean, producing: boolean): Promise<ProcessedStatsReport>;
2659
+ getProcessedStats(transport: any, consuming: boolean, producing: boolean): Promise<ProcessedStatsReport>;
2660
+ protected getProducerStatsFromReport(report: ParsedRTCStats): ProducerStatistics[];
2661
+ protected getConsumerStatsFromReport(report: ParsedRTCStats): ConsumerStatistics[];
2649
2662
  getUserLocation(): Promise<GeoLocation>;
2650
2663
  getConnectivity(iceServers: IceServerInfo[]): Promise<{
2651
2664
  host: boolean;
@@ -2657,129 +2670,198 @@ declare abstract class Measurements extends EventEmitter {
2657
2670
  getNetworkQuality(iceServers: IceServerInfo[]): Promise<NetworkQualityInformation>;
2658
2671
  getNetworkInfo(iceServers: IceServerInfo[], skipConnectivityChecks?: boolean): Promise<NetworkInformation | NetworkInformationWithoutConnectivityData>;
2659
2672
  }
2660
- declare class CallStats extends EventEmitter {
2661
- observer: EventEmitter;
2662
- eventHandler: EventHandler;
2663
- producers: Map<string, any>;
2664
- logger: RTKLogger$2;
2665
- env: ClientEnvTypeAll;
2666
- apiHostnames: ApiHostnames;
2667
- peerId: string;
2668
- consumerSharedMediaStatesMap: Map<string, {
2669
- audio?: boolean;
2670
- video?: boolean;
2671
- screen?: boolean;
2672
- }>;
2673
- currentUserMediaStates: {
2674
- audio?: boolean;
2675
- video?: boolean;
2676
- screen?: boolean;
2677
- };
2678
- constructor(backendUrl: string, engineName: string, env: ClientEnvTypeAll, flags: InhouseCallStatsInitializeParams['flags'], logger: RTKLogger$2, peerId: string, apiHostnames: ApiHostnames);
2679
- registerIceServers(servers: IceServerInfo[]): void;
2680
- sendConsumerSharedMediaStateEvent(consumerId: string, statusObj: {
2681
- audio?: boolean;
2682
- video?: boolean;
2683
- screen?: boolean;
2684
- }): void;
2685
- registerProducingTransport(transport: any): void;
2686
- registerConsumingTransport(transport: any): void;
2687
- disconnectConsumingTransport(): void;
2688
- disconnectProducingTransport(): void;
2689
- sendPreCallTestBeginEvent(skipConnectivityChecks: boolean, timestamp: Date): void;
2690
- sendScreenShareToggleEvent(on: boolean, ssrc: number, timestamp: Date): void;
2691
- sendScreenShareRequestedEvent(timestamp: Date): void;
2692
- sendActiveSpeakerEvent(peerId: string, timestamp: Date): void;
2693
- devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[], timestamp: Date): void;
2694
- selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo, timestamp: Date): void;
2695
- mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1, timestamp: Date): void;
2696
- mediaPlaybackFailed(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
2697
- mediaTrackMuted(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
2698
- tabChanged(isMeetingsTabActive: boolean, timestamp: Date): void;
2699
- browserBackgrounded(timestamp: Date): void;
2700
- browserForegrounded(timestamp: Date): void;
2701
- legacySwitch(on: boolean, timestamp: Date): void;
2702
- getPreCallTestResults(): Promise<NetworkInformation | NetworkInformationWithoutConnectivityData>;
2703
- sendCallJoinBeginEvent(peerMetaData: PeerMetaData, timestamp: Date): void;
2704
- sendNetworkQualityTestBeginEvent(regionalInformations: RegionalIceInformation[], timestamp: Date): void;
2705
- sendWebSocketConnectedEvent(timestamp: Date): void;
2706
- sendTransportConnectedEvent(timestamp: Date): void;
2707
- sendAudioToggleEvent(on: boolean, timestamp: Date): void;
2708
- sendVideoToggleEvent(on: boolean, timestamp: Date): void;
2709
- sendParticipantRoleToggleEvent(role: ParticipantRoleData, timestamp: Date): void;
2710
- startPingStats(interval?: number): void;
2711
- stopPingStats(): void;
2712
- sendPingStatsEvent(optimize: boolean, timestamp: Date): Promise<void>;
2713
- sendIVSPlayerRebufferEvent(timestamp: Date): void;
2714
- sendIVSPlayerAudioBlockEvent(timestamp: Date): void;
2715
- sendIVSPlayerPlaybackBlockedEvent(timestamp: Date): void;
2716
- sendIVSPlayerNetworkUnavailableEvent(timestamp: Date): void;
2717
- sendIVSPlayerInitializedEvent(timestamp: Date): void;
2718
- sendIVSPlayerWorkerErrorEvent(timestamp: Date): void;
2719
- sendIVSPlayerErrorEvent(payload: IVSPlayerErrorData, timestamp: Date): void;
2720
- sendIVSPlayerRecoverableErrorEvent(payload: IVSPlayerRecoverableErrorData, timestamp: Date): void;
2721
- sendIVSPlayerAnalyticsEvent(payload: IVSPlayerAnalyticsEventData, timestamp: Date): void;
2722
- sendIVSPlayerPlaybackRateChangedEvent(updatedPlaybackRate: number, timestamp: Date): void;
2723
- sendIVSPlayerQualityChanged(payload: IVSPlayerQualityChangedData, timestamp: Date): void;
2724
- sendPlayerLiveLatency(latency: number, timestamp: Date): void;
2725
- sendDisconnectEvent(timestamp: Date): void;
2726
- sendReconnectEvent(timestamp: Date): void;
2727
- expectedVideoResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
2728
- expectedScreenshareResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
2729
- }
2730
- declare class InhouseCallStats extends EventEmitter {
2731
- stats: any;
2732
- peerId: string;
2733
- backend: CallStats;
2734
- iceServers: IceServerInfo[];
2735
- initialized: boolean;
2736
- stalled: boolean;
2737
- ipInformation: Object;
2738
- logger: RTKLogger$2;
2739
- initialize({ peerId, engineName, env, iceServers, apiBase, flags, logger, apiHostnames, skipConnectivityChecks, }: InhouseCallStatsInitializeParams): Promise<void>;
2740
- configureSendTransport(sendTransport: any): void;
2741
- configureRecvTransport(recvTransport: any): void;
2742
- candidateRegionalNetworkQualityTest(regionalIceServersInfo: RegionalIceInformation[]): Promise<void>;
2743
- roomJoined(peerData: PeerMetaData$1): Promise<void>;
2744
- audioOff(): void;
2745
- audioOn(): void;
2746
- videoOff(): void;
2747
- videoOn(): void;
2748
- callEnded(): void;
2749
- screenShareStart(ssrc?: number): void;
2750
- consumerSharedMediaState(consumerId: string, statusObj: {
2751
- audio?: boolean;
2752
- video?: boolean;
2753
- screen?: boolean;
2754
- }): void;
2755
- screenShareStop(ssrc?: number): void;
2756
- screenShareRequested(): void;
2757
- activeSpeaker(peerId: string): void;
2758
- devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[]): void;
2759
- selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo): void;
2760
- mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1): void;
2761
- mediaPlaybackFailed(deviceType: MediaDeviceTypeAll): void;
2762
- mediaTrackMuted(deviceType: MediaDeviceTypeAll): void;
2763
- tabChanged(isMeetingsTabActive?: boolean): void;
2764
- browserBackgrounded(): void;
2765
- browserForegrounded(): void;
2766
- legacySwitch(on: boolean): void;
2767
- startPreCallTest(skipConnectivityChecks?: boolean): Promise<void>;
2768
- onPreCallTestResults(fx: any): any;
2769
- onReceivingConsumerAudioStatus(fx: any): void;
2770
- onReceivingConsumerVideoStatus(fx: any): void;
2771
- onReceivingProducerAudioStatus(fx: any): void;
2772
- onReceivingProducerVideoStatus(fx: any): void;
2773
- onReceivingProducingTransportStatus(fx: any): void;
2774
- onReceivingConsumingTransportStatus(fx: any): void;
2775
- onProducerScore(fx: any): void;
2776
- onConsumerScore(fx: any): void;
2777
- removeInitializationListener(fx: Function): void;
2778
- stallCallStats(): void;
2779
- ivsPlayerEvent(type: String, payload: any): void;
2780
- livestreamLatency(latency: number): void;
2781
- expectedVideoResolution(frameWidth: number, frameHeight: number): void;
2782
- expectedScreenshareResolution(frameWidth: number, frameHeight: number): void;
2673
+ declare class CallStats extends EventEmitter {
2674
+ observer: EventEmitter;
2675
+ eventHandler: EventHandler;
2676
+ protected measurements: Measurements;
2677
+ protected producingTransport: any;
2678
+ protected consumingTransport: any;
2679
+ producers: Map<string, any>;
2680
+ protected consumers: Map<string, any>;
2681
+ protected iceServers: IceServerInfo[];
2682
+ protected connectionInfoPromise: Promise<NetworkInformation | NetworkInformationWithoutConnectivityData>;
2683
+ protected pingStatsTimeout: NodeJS.Timeout;
2684
+ logger: DyteLogger;
2685
+ env: ClientEnvTypeAll;
2686
+ apiHostnames: ApiHostnames;
2687
+ peerId: string;
2688
+ consumerSharedMediaStatesMap: Map<string, {
2689
+ audio?: boolean;
2690
+ video?: boolean;
2691
+ screen?: boolean;
2692
+ }>;
2693
+ currentUserMediaStates: {
2694
+ audio?: boolean;
2695
+ video?: boolean;
2696
+ screen?: boolean;
2697
+ };
2698
+ constructor(backendUrl: string, engineName: string, env: ClientEnvTypeAll, flags: InhouseCallStatsInitializeParams['flags'], logger: DyteLogger, peerId: string, apiHostnames: ApiHostnames);
2699
+ registerIceServers(servers: IceServerInfo[]): void;
2700
+ protected registerConsumer(consumer: any): void;
2701
+ protected registerProducer(producer: any): void;
2702
+ sendConsumerSharedMediaStateEvent(consumerId: string, statusObj: {
2703
+ audio?: boolean;
2704
+ video?: boolean;
2705
+ screen?: boolean;
2706
+ }): void;
2707
+ registerProducingTransport(transport: any): void;
2708
+ registerConsumingTransport(transport: any): void;
2709
+ protected deRegisterConsumer(consumer: any): void;
2710
+ protected deRegisterProducer(producer: any): void;
2711
+ disconnectConsumingTransport(): void;
2712
+ disconnectProducingTransport(): void;
2713
+ protected callEvent(entry: EventEntry): void;
2714
+ sendPreCallTestBeginEvent(skipConnectivityChecks: boolean, timestamp: Date): void;
2715
+ sendScreenShareToggleEvent(on: boolean, ssrc: number, timestamp: Date): void;
2716
+ sendScreenShareRequestedEvent(timestamp: Date): void;
2717
+ sendActiveSpeakerEvent(peerId: string, timestamp: Date): void;
2718
+ devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[], timestamp: Date): void;
2719
+ selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo, timestamp: Date): void;
2720
+ mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1, timestamp: Date): void;
2721
+ mediaPlaybackFailed(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
2722
+ mediaTrackMuted(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
2723
+ tabChanged(isMeetingsTabActive: boolean, timestamp: Date): void;
2724
+ browserBackgrounded(timestamp: Date): void;
2725
+ browserForegrounded(timestamp: Date): void;
2726
+ legacySwitch(on: boolean, timestamp: Date): void;
2727
+ getPreCallTestResults(): Promise<NetworkInformation | NetworkInformationWithoutConnectivityData>;
2728
+ sendCallJoinBeginEvent(peerMetaData: PeerMetaData, timestamp: Date): void;
2729
+ sendNetworkQualityTestBeginEvent(regionalInformations: RegionalIceInformation[], timestamp: Date): void;
2730
+ sendWebSocketConnectedEvent(timestamp: Date): void;
2731
+ sendTransportConnectedEvent(timestamp: Date): void;
2732
+ sendAudioToggleEvent(on: boolean, timestamp: Date): void;
2733
+ sendVideoToggleEvent(on: boolean, timestamp: Date): void;
2734
+ sendParticipantRoleToggleEvent(role: ParticipantRoleData, timestamp: Date): void;
2735
+ startPingStats(interval?: number): void;
2736
+ stopPingStats(): void;
2737
+ sendPingStatsEvent(optimize: boolean, timestamp: Date): Promise<void>;
2738
+ sendIVSPlayerRebufferEvent(timestamp: Date): void;
2739
+ sendIVSPlayerAudioBlockEvent(timestamp: Date): void;
2740
+ sendIVSPlayerPlaybackBlockedEvent(timestamp: Date): void;
2741
+ sendIVSPlayerNetworkUnavailableEvent(timestamp: Date): void;
2742
+ sendIVSPlayerInitializedEvent(timestamp: Date): void;
2743
+ sendIVSPlayerWorkerErrorEvent(timestamp: Date): void;
2744
+ sendIVSPlayerErrorEvent(payload: IVSPlayerErrorData, timestamp: Date): void;
2745
+ sendIVSPlayerRecoverableErrorEvent(payload: IVSPlayerRecoverableErrorData, timestamp: Date): void;
2746
+ sendIVSPlayerAnalyticsEvent(payload: IVSPlayerAnalyticsEventData, timestamp: Date): void;
2747
+ sendIVSPlayerPlaybackRateChangedEvent(updatedPlaybackRate: number, timestamp: Date): void;
2748
+ sendIVSPlayerQualityChanged(payload: IVSPlayerQualityChangedData, timestamp: Date): void;
2749
+ sendPlayerLiveLatency(latency: number, timestamp: Date): void;
2750
+ sendDisconnectEvent(timestamp: Date): void;
2751
+ sendReconnectEvent(timestamp: Date): void;
2752
+ expectedVideoResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
2753
+ expectedScreenshareResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
2754
+ }
2755
+ declare class InhouseCallStats extends EventEmitter {
2756
+ stats: any;
2757
+ peerId: string;
2758
+ backend: CallStats;
2759
+ iceServers: IceServerInfo[];
2760
+ initialized: boolean;
2761
+ stalled: boolean;
2762
+ ipInformation: Object;
2763
+ logger: DyteLogger;
2764
+ initialize({ peerId, engineName, env, iceServers, apiBase, flags, logger, apiHostnames, skipConnectivityChecks, }: InhouseCallStatsInitializeParams): Promise<void>;
2765
+ configureSendTransport(sendTransport: any): void;
2766
+ configureRecvTransport(recvTransport: any): void;
2767
+ candidateRegionalNetworkQualityTest(regionalIceServersInfo: RegionalIceInformation[]): Promise<void>;
2768
+ roomJoined(peerData: PeerMetaData$1): Promise<void>;
2769
+ audioOff(): void;
2770
+ audioOn(): void;
2771
+ videoOff(): void;
2772
+ videoOn(): void;
2773
+ callEnded(): void;
2774
+ screenShareStart(ssrc?: number): void;
2775
+ consumerSharedMediaState(consumerId: string, statusObj: {
2776
+ audio?: boolean;
2777
+ video?: boolean;
2778
+ screen?: boolean;
2779
+ }): void;
2780
+ screenShareStop(ssrc?: number): void;
2781
+ screenShareRequested(): void;
2782
+ activeSpeaker(peerId: string): void;
2783
+ devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[]): void;
2784
+ selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo): void;
2785
+ mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1): void;
2786
+ mediaPlaybackFailed(deviceType: MediaDeviceTypeAll): void;
2787
+ mediaTrackMuted(deviceType: MediaDeviceTypeAll): void;
2788
+ tabChanged(isMeetingsTabActive?: boolean): void;
2789
+ browserBackgrounded(): void;
2790
+ browserForegrounded(): void;
2791
+ legacySwitch(on: boolean): void;
2792
+ startPreCallTest(skipConnectivityChecks?: boolean): Promise<void>;
2793
+ onPreCallTestResults(fx: any): any;
2794
+ onReceivingConsumerAudioStatus(fx: any): void;
2795
+ onReceivingConsumerVideoStatus(fx: any): void;
2796
+ onReceivingProducerAudioStatus(fx: any): void;
2797
+ onReceivingProducerVideoStatus(fx: any): void;
2798
+ onReceivingProducingTransportStatus(fx: any): void;
2799
+ onReceivingConsumingTransportStatus(fx: any): void;
2800
+ onProducerScore(fx: any): void;
2801
+ onConsumerScore(fx: any): void;
2802
+ private onSafeInitialization;
2803
+ removeInitializationListener(fx: Function): void;
2804
+ stallCallStats(): void;
2805
+ ivsPlayerEvent(type: String, payload: any): void;
2806
+ livestreamLatency(latency: number): void;
2807
+ expectedVideoResolution(frameWidth: number, frameHeight: number): void;
2808
+ expectedScreenshareResolution(frameWidth: number, frameHeight: number): void;
2809
+ }
2810
+ type SocketServiceCapability = keyof typeof Capabilities;
2811
+ type SocketStateEvent = 'connected' | 'disconnected' | 'reconnected' | 'errored' | 'reconnecting' | 'reconnectAttempt' | 'reconnectFailure' | 'failed';
2812
+ type SocketServiceCapabilities = SocketServiceCapability[];
2813
+ interface SocketConnectionState {
2814
+ state: Extract<SocketStateEvent, 'connected' | 'disconnected' | 'reconnecting' | 'failed'>;
2815
+ reconnected: boolean;
2816
+ reconnectionAttempt: number;
2817
+ }
2818
+ declare class SocketService {
2819
+ readonly roomName: string;
2820
+ readonly authToken: string;
2821
+ readonly capabilities: SocketServiceCapabilities;
2822
+ joinAttempted: boolean;
2823
+ readonly telemetry: Telemetry;
2824
+ readonly logger: Logger;
2825
+ readonly peerId: string;
2826
+ constructor(context: Context<ContextState>, { peerId, meetingId, authToken, capabilities, }: {
2827
+ peerId: string;
2828
+ meetingId: string;
2829
+ authToken: string;
2830
+ capabilities: SocketServiceCapabilities;
2831
+ });
2832
+ updateURL(peerID: string): void;
2833
+ private static getSocketEdgeDomain;
2834
+ readonly url: string;
2835
+ connect(): Promise<void>;
2836
+ disconnect(): void;
2837
+ readonly isConnected: boolean;
2838
+ sendMessage(event: number, protobuf?: Uint8Array, messageId?: string): boolean;
2839
+ sendMessagePromise(event: number, protobuf?: Uint8Array, messageId?: string, resp?: number): Promise<{
2840
+ id: string;
2841
+ payload: Uint8Array;
2842
+ }>;
2843
+ sendMessagePromiseWithTimeout({ event, timeout, protobuf, messageId, resp, }: {
2844
+ timeout: number;
2845
+ event: number;
2846
+ protobuf?: Uint8Array;
2847
+ messageId?: string;
2848
+ resp?: number;
2849
+ }): Promise<{
2850
+ id: string;
2851
+ payload: Uint8Array;
2852
+ }>;
2853
+ on(event: number, listener: (message: {
2854
+ id?: string;
2855
+ payload?: Uint8Array;
2856
+ }) => void): void;
2857
+ onStateEvent(event: SocketStateEvent, listener: (...args: any) => void): void;
2858
+ removeListener(event: number, listener: (message: {
2859
+ id?: string;
2860
+ payload?: Uint8Array;
2861
+ }) => void): void;
2862
+ removeListeners(event: number): void;
2863
+ flush(): any;
2864
+ handleSocketConnectionEvents(): void;
2783
2865
  }
2784
2866
  declare global {
2785
2867
  interface SymbolConstructor {
@@ -2811,20 +2893,20 @@ type StringKeysOfFoo = StringKeyOf<Foo>;
2811
2893
  @category Object
2812
2894
  */
2813
2895
  type StringKeyOf<BaseType> = string;
2814
- declare class RTKEventEmitter<T extends string | symbol> extends EventEmitter$1 {
2815
- logger: RTKLogger$1 | undefined;
2816
- constructor(logger: RTKLogger$1);
2817
- emit(event: T, ...args: any[]): boolean;
2818
- on(event: T, callback: (...args: any[]) => void): this;
2819
- addListener(event: T, callback: (...args: any[]) => any): this;
2820
- off(event: T, callback: (...args: any[]) => any): this;
2821
- once(event: T, callback: (...args: any[]) => any): this;
2822
- prependListener(event: T, callback: (...args: any[]) => any): this;
2823
- prependOnceListener(event: T, callback: (...args: any[]) => any): this;
2824
- removeListener(event: T, callback: (...args: any[]) => any): this;
2825
- removeAllListeners(event?: T): this;
2826
- listeners(event: T): Function[];
2827
- listenerCount(event: T): number;
2896
+ declare class CustomEventEmitter<T extends string | symbol> extends EventEmitter$1 {
2897
+ logger: Logger | undefined;
2898
+ constructor(logger: Logger);
2899
+ emit(event: T, ...args: any[]): boolean;
2900
+ on(event: T, callback: (...args: any[]) => void): this;
2901
+ addListener(event: T, callback: (...args: any[]) => any): this;
2902
+ off(event: T, callback: (...args: any[]) => any): this;
2903
+ once(event: T, callback: (...args: any[]) => any): this;
2904
+ prependListener(event: T, callback: (...args: any[]) => any): this;
2905
+ prependOnceListener(event: T, callback: (...args: any[]) => any): this;
2906
+ removeListener(event: T, callback: (...args: any[]) => any): this;
2907
+ removeAllListeners(event?: T): this;
2908
+ listeners(event: T): Function[];
2909
+ listenerCount(event: T): number;
2828
2910
  }
2829
2911
  type EventMap$1 = {
2830
2912
  [key: string]: (...args: any[]) => void;
@@ -2832,27 +2914,366 @@ type EventMap$1 = {
2832
2914
  type WildCardEvent<T> = {
2833
2915
  ['*']: (event: StringKeyOf<T>, ...args: any) => void;
2834
2916
  };
2835
- declare class RTKTypedEventEmitter<Events extends EventMap$1 & WildCardEvent<Events>> extends EventEmitter$1 {
2836
- logger: RTKLogger$1 | undefined;
2837
- constructor(logger: RTKLogger$1);
2838
- emit<E extends StringKeyOf<Events>>(event: E, ...args: Parameters<Events[E]>): boolean;
2839
- on<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2840
- addListener<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2841
- off<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2842
- once<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2843
- prependListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2844
- prependOnceListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2845
- removeListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2846
- removeAllListeners<T extends StringKeyOf<Events>>(event?: T): this;
2847
- listeners<T extends StringKeyOf<Events>>(event: T): Function[];
2848
- listenerCount<T extends StringKeyOf<Events>>(event: T): number;
2849
- }
2850
- declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter$1 {
2851
- readonly logger: RTKLogger$1;
2852
- constructor(context: Context<RTKContextState>);
2853
- safeEmit(event: string, ...args: any[]): boolean;
2854
- safeEmitAsPromise<T extends keyof TransportPromiseEvents>(event: T, ...args: any[]): Promise<TransportPromiseEvents[T]>;
2855
- safeEmitAsPromiseWithTimeout<T extends keyof TransportPromiseEvents>(event: T, timeout: number, ...args: any[]): Promise<TransportPromiseEvents[T]>;
2917
+ declare class TypedEventEmitter$1<Events extends EventMap$1 & WildCardEvent<Events>> extends EventEmitter$1 {
2918
+ logger: Logger | undefined;
2919
+ constructor(logger: Logger);
2920
+ emit<E extends StringKeyOf<Events>>(event: E, ...args: Parameters<Events[E]>): boolean;
2921
+ on<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2922
+ addListener<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2923
+ off<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2924
+ once<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2925
+ prependListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2926
+ prependOnceListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2927
+ removeListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2928
+ removeAllListeners<T extends StringKeyOf<Events>>(event?: T): this;
2929
+ listeners<T extends StringKeyOf<Events>>(event: T): Function[];
2930
+ listenerCount<T extends StringKeyOf<Events>>(event: T): number;
2931
+ }
2932
+ interface BasicParticipant {
2933
+ userId: string;
2934
+ name?: string;
2935
+ picture?: string;
2936
+ customParticipantId: string;
2937
+ }
2938
+ declare class BasicParticipantsMap extends CustomEventEmitter<'participantsUpdate'> {
2939
+ constructor(logger: Logger);
2940
+ __set(objId: string, obj: BasicParticipant): Map<string, BasicParticipant>;
2941
+ __clear(): void;
2942
+ get(objId: string): BasicParticipant;
2943
+ toArray(): BasicParticipant[];
2944
+ }
2945
+ type ChatChannelSocketMessage = GetChatChannelResponse;
2946
+ interface ChatChannel {
2947
+ id: string;
2948
+ displayName: string;
2949
+ memberIds: string[];
2950
+ displayPictureUrl?: string;
2951
+ visibility?: string;
2952
+ isDirectMessage?: boolean;
2953
+ latestMessage?: Message;
2954
+ unreadCount: number;
2955
+ }
2956
+ interface UpdateChannelRequestPayload {
2957
+ memberIds?: string[];
2958
+ displayName?: string;
2959
+ displayPictureUrl?: string;
2960
+ visibility?: string;
2961
+ }
2962
+ declare class ChatChannelSocketHandler {
2963
+ readonly telemetry: Telemetry;
2964
+ readonly logger: Logger;
2965
+ constructor(context: Context<ContextState>, socketService: SocketService);
2966
+ createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise<ChatChannel>;
2967
+ updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
2968
+ static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
2969
+ getChannelMembers(channelId: string): Promise<BasicParticipant[]>;
2970
+ on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
2971
+ }
2972
+ declare enum ChatMessageType {
2973
+ TEXT = 0,
2974
+ IMAGE = 1,
2975
+ FILE = 2,
2976
+ CUSTOM = 3
2977
+ }
2978
+ type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
2979
+ interface SearchFilters {
2980
+ channelId?: string;
2981
+ timestamp?: number;
2982
+ size?: number;
2983
+ reversed?: boolean;
2984
+ }
2985
+ declare class ChatSocketHandler {
2986
+ readonly telemetry: Telemetry;
2987
+ readonly logger: Logger;
2988
+ constructor(context: Context<ContextState>, socketService: SocketService);
2989
+ getChatMessages(): Promise<{
2990
+ id: string;
2991
+ payload: Uint8Array;
2992
+ }>;
2993
+ getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<GetPaginatedChatMessageRoomResponse>;
2994
+ sendMessageToRoom(message: string, messageType: ChatMessageType): void;
2995
+ sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
2996
+ sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
2997
+ sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
2998
+ editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise<ChatMessage>;
2999
+ deleteMessage(chatId: string, channelId?: string): Promise<{
3000
+ channelId?: string;
3001
+ id: string;
3002
+ }>;
3003
+ searchMessages(query: string, filters: SearchFilters): Promise<ChatMessage[]>;
3004
+ getAllChannels(): Promise<ChatChannel[]>;
3005
+ markLastReadMessage(channelId: string, message: Message): Promise<string>;
3006
+ setPinState(message: Message, pin: boolean): Promise<PinChatMessageResponse>;
3007
+ on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
3008
+ }
3009
+ declare class SelectedPeers {
3010
+ private readonly _activeSpeakerPeers;
3011
+ private readonly _compulsoryPeers;
3012
+ constructor();
3013
+ add(peerId: string, priority: number, context: Context<ContextState>): number;
3014
+ delete(peerId: string, context: Context<ContextState>): void;
3015
+ index(peerId: string): number;
3016
+ readonly peers: string[];
3017
+ readonly compulsoryPeers: string[];
3018
+ readonly activeSpeakerPeers: string[];
3019
+ private _removeFromCompulsoryPeer;
3020
+ }
3021
+ type PipEvents = {
3022
+ ['cameraToggled']: () => void;
3023
+ ['micToggled']: () => void;
3024
+ ['hangup']: () => void;
3025
+ ['pipStarted']: () => void;
3026
+ ['pipEnded']: () => void;
3027
+ ['*']: (eventName: string, ...args: any[]) => void;
3028
+ };
3029
+ declare class Pip extends TypedEventEmitter$1<PipEvents> {
3030
+ private constructor();
3031
+ static _init(context: Context<ContextState>, self: Self): Promise<Pip>;
3032
+ private setupIcon;
3033
+ overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise<void>;
3034
+ private constructImage;
3035
+ private createVideoContainer;
3036
+ private setupEventListeners;
3037
+ private cleanupEventListeners;
3038
+ private enablePipMediaControls;
3039
+ private onSelfVideoUpdateListener;
3040
+ private onSelfAudioUpdateListener;
3041
+ private handlePipMediaControls;
3042
+ private createCanvas;
3043
+ private eventCallback;
3044
+ private setupMediaSessionEvents;
3045
+ private mountAudioEvents;
3046
+ private mountVideoEvents;
3047
+ private unmountEvents;
3048
+ private getSources;
3049
+ private drawEmptyTile;
3050
+ private drawIcons;
3051
+ private drawTile;
3052
+ private calcGridElemSize;
3053
+ private paintCanvas;
3054
+ private animate;
3055
+ isSupported(): boolean;
3056
+ readonly isActive: boolean;
3057
+ private cleanup;
3058
+ init({ height, width }?: {
3059
+ height?: number;
3060
+ width?: number;
3061
+ }): void;
3062
+ private updateMediaSession;
3063
+ enableSource(source: string): void;
3064
+ disableSource(source: string): void;
3065
+ private generateAvatar;
3066
+ addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
3067
+ updateSource(id: string, source: any): void;
3068
+ removeSource(id: string): void;
3069
+ removePinnedSource(): void;
3070
+ removeAllSources(): void;
3071
+ enable(): void;
3072
+ disable: (partial?: boolean) => void;
3073
+ }
3074
+ declare enum TransportState {
3075
+ NEW = "new",
3076
+ CONNECTING = "connecting",
3077
+ RECONNECTING = "reconnecting",
3078
+ DISCONNECTED = "disconnected",
3079
+ CONNECTED = "connected",
3080
+ FAILED = "failed",
3081
+ CLOSED = "closed"
3082
+ }
3083
+ type MediaConnectionState = {
3084
+ recv: {
3085
+ state: string;
3086
+ };
3087
+ send: {
3088
+ state: string;
3089
+ };
3090
+ };
3091
+ type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
3092
+ declare class RoomSocketHandler {
3093
+ socket: SocketService;
3094
+ readonly telemetry: Telemetry;
3095
+ readonly logger: Logger;
3096
+ cleanup(): void;
3097
+ constructor(context: Context<ContextState>, socketService: SocketService);
3098
+ joinRoom(opts: {
3099
+ name: string;
3100
+ id: string;
3101
+ userId: string;
3102
+ customParticipantId: string;
3103
+ picture?: string;
3104
+ }): Promise<{
3105
+ peer: Peer;
3106
+ }>;
3107
+ getAllAddedParticipants(): Promise<BasicParticipant[]>;
3108
+ getRoomPeers(searchQuery: string, limit: number, offset: number): Promise<RoomPeersInfoResponse>;
3109
+ getRoomPeersNonPaginated(): Promise<RoomPeersInfoResponse>;
3110
+ getStagePeers(): Promise<RoomPeersInfoResponse>;
3111
+ getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
3112
+ getRoomState(): Promise<RoomInfoResponse>;
3113
+ getRoomStageState(): Promise<GetRoomStageStateResponse>;
3114
+ broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
3115
+ id: string;
3116
+ payload: Uint8Array;
3117
+ }>;
3118
+ broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
3119
+ id: string;
3120
+ payload: Uint8Array;
3121
+ }>;
3122
+ broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise<boolean>;
3123
+ leaveRoom(): Promise<void>;
3124
+ kick(peerId: string): Promise<void>;
3125
+ kickAll(propagateKickAll?: boolean): Promise<void>;
3126
+ getWaitingRoomRequests(): void;
3127
+ acceptWaitingRoomRequest(userIds: string[]): void;
3128
+ rejectWaitingRoomRequest(userIds: string[]): void;
3129
+ updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
3130
+ id: string;
3131
+ payload: Uint8Array;
3132
+ }>;
3133
+ private handleSocketEvents;
3134
+ on(event: number, handler: (message: EventHandlerTypes) => void): void;
3135
+ getUserPermissions(userId: string): Promise<Pick<PresetTypeV2['permissions'], 'chat' | 'polls' | 'plugins'>>;
3136
+ }
3137
+ type TranscriptionData = {
3138
+ id: string;
3139
+ name: string;
3140
+ peerId: string;
3141
+ userId: string;
3142
+ customParticipantId: string;
3143
+ transcript: string;
3144
+ isPartialTranscript: boolean;
3145
+ date: Date;
3146
+ };
3147
+ type AiEvents = {
3148
+ ['transcript']: (t: TranscriptionData) => void;
3149
+ ['*']: (event: string, ...args: any[]) => void;
3150
+ };
3151
+ declare class Ai extends TypedEventEmitter$1<AiEvents> {
3152
+ transcripts: TranscriptionData[];
3153
+ readonly telemetry: Telemetry;
3154
+ constructor(context: Context<ContextState>);
3155
+ static init(context: Context<ContextState>, transcriptionEnabled: boolean): Promise<Ai>;
3156
+ static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
3157
+ static parseTranscripts(transcriptData: string): TranscriptionData[];
3158
+ getActiveTranscript(): Promise<void>;
3159
+ onTranscript(transcript: TranscriptionData): Promise<void>;
3160
+ }
3161
+ type ActiveTabType = 'screenshare' | 'plugin';
3162
+ interface ActiveTab {
3163
+ type: ActiveTabType;
3164
+ id: string;
3165
+ }
3166
+ declare enum TabChangeSource {
3167
+ User = 0,
3168
+ Meeting = 1
3169
+ }
3170
+ interface MediaConnectionUpdate {
3171
+ transport: 'consuming' | 'producing';
3172
+ state: string;
3173
+ reconnected: boolean;
3174
+ }
3175
+ type MetaEvents = {
3176
+ ['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
3177
+ ['socketConnectionUpdate']: (state: SocketConnectionState) => void;
3178
+ ['poorConnection']: (payload: {
3179
+ score: number;
3180
+ }) => void;
3181
+ ['meetingStartTimeUpdate']: (payload: {
3182
+ meetingStartedTimestamp: Date;
3183
+ }) => void;
3184
+ ['transcript']: (t: TranscriptionData) => void;
3185
+ ['activeTabUpdate']: (tab: ActiveTab) => void;
3186
+ ['selfTabUpdate']: (tab: ActiveTab) => void;
3187
+ ['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
3188
+ ['*']: (event: string, ...args: any[]) => void;
3189
+ };
3190
+ declare class Meta extends TypedEventEmitter$1<MetaEvents> {
3191
+ selfActiveTab: ActiveTab | undefined;
3192
+ readonly socketState: SocketConnectionState;
3193
+ readonly mediaState: MediaConnectionState;
3194
+ broadcastTabChanges: boolean;
3195
+ viewType: string;
3196
+ meetingStartedTimestamp: Date;
3197
+ meetingTitle: string;
3198
+ sessionId: string;
3199
+ constructor(context: Context<ContextState>, self: Self, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
3200
+ readonly meetingId: string;
3201
+ setBroadcastTabChanges(broadcastTabChanges: boolean): void;
3202
+ setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
3203
+ private assertActiveTabToRoom;
3204
+ }
3205
+ interface MapEvents<T extends EventMap$1> {
3206
+ onAddEvent?: keyof T;
3207
+ onDeleteEvent?: keyof T;
3208
+ onClearEvent?: keyof T;
3209
+ }
3210
+ type ModifyPrependObject<T extends EventMap$1, U> = {
3211
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3212
+ } & {
3213
+ ['*']: (event: String, ...args: any[]) => void;
3214
+ };
3215
+ declare class ClientMap<T extends (EventMap$1 & WildCardEvent<T>), U extends {
3216
+ id: string;
3217
+ } & TypedEventEmitter$1<T>, V extends EventMap$1> extends Map<string, U> {
3218
+ readonly onAddEvent: keyof V;
3219
+ readonly onDeleteEvent: keyof V;
3220
+ readonly onClearEvent: keyof V;
3221
+ constructor(options: MapEvents<V>, logger?: Logger);
3222
+ emit<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject<T, U>)[E]>): boolean;
3223
+ on<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3224
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3225
+ } & {
3226
+ "*": (event: String, ...args: any[]) => void;
3227
+ } & V>;
3228
+ addListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3229
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3230
+ } & {
3231
+ "*": (event: String, ...args: any[]) => void;
3232
+ } & V>;
3233
+ off<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3234
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3235
+ } & {
3236
+ "*": (event: String, ...args: any[]) => void;
3237
+ } & V>;
3238
+ once<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3239
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3240
+ } & {
3241
+ "*": (event: String, ...args: any[]) => void;
3242
+ } & V>;
3243
+ prependListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3244
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3245
+ } & {
3246
+ "*": (event: String, ...args: any[]) => void;
3247
+ } & V>;
3248
+ prependOnceListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3249
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3250
+ } & {
3251
+ "*": (event: String, ...args: any[]) => void;
3252
+ } & V>;
3253
+ removeListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): TypedEventEmitter$1<{
3254
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3255
+ } & {
3256
+ "*": (event: String, ...args: any[]) => void;
3257
+ } & V>;
3258
+ removeAllListeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event?: E): TypedEventEmitter$1<{
3259
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3260
+ } & {
3261
+ "*": (event: String, ...args: any[]) => void;
3262
+ } & V>;
3263
+ listeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): Function[];
3264
+ listenerCount<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): number;
3265
+ getMaxListeners(): number;
3266
+ setMaxListeners(n: number): TypedEventEmitter$1<{
3267
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3268
+ } & {
3269
+ "*": (event: String, ...args: any[]) => void;
3270
+ } & V>;
3271
+ eventNames(): (string | symbol)[];
3272
+ add(obj: U, emitEvent?: boolean): this;
3273
+ set(objId: string, obj: U, emitEvent?: boolean): this;
3274
+ delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3275
+ clear(emitEvent?: boolean, removeListeners?: boolean): void;
3276
+ toArray(): U[];
2856
3277
  }
2857
3278
  interface GenericHandlerResult {
2858
3279
  offerSdp: RTCSessionDescriptionInit;
@@ -2882,7 +3303,12 @@ interface HandlerSendResult extends GenericHandlerResult {
2882
3303
  mid: string;
2883
3304
  }
2884
3305
  declare abstract class HandlerInterface<TransportPromiseEvents> extends EnhancedEventEmitter<TransportPromiseEvents> {
2885
- pc: RTCPeerConnection;
3306
+ protected _sendWebStream: MediaStream;
3307
+ protected _sendScreenShareStream: MediaStream;
3308
+ protected _direction?: 'send' | 'recv';
3309
+ pc: RTCPeerConnection;
3310
+ protected _transportReady: boolean;
3311
+ private readonly _mapMidTransceiver;
2886
3312
  enableHighBitrate: boolean;
2887
3313
  enableStereo: boolean;
2888
3314
  enableDtx: boolean;
@@ -2892,7 +3318,9 @@ declare abstract class HandlerInterface<TransportPromiseEvents> extends Enhanced
2892
3318
  restartIce(): Promise<GenericHandlerResult>;
2893
3319
  init({ direction, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, onTrackHandler, }: HandlerRunOptions): void;
2894
3320
  connect(): Promise<GenericHandlerResult>;
2895
- getTransportStats(): Promise<RTCStatsReport>;
3321
+ getTransportStats(): Promise<RTCStatsReport>;
3322
+ protected _assertSendDirection(): void;
3323
+ protected _assertRecvDirection(): void;
2896
3324
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
2897
3325
  stopSending(localId: string): Promise<GenericHandlerResult>;
2898
3326
  abstract send(options: HandlerSendOptions): Promise<HandlerSendResult>;
@@ -2903,6 +3331,18 @@ declare abstract class HandlerInterface<TransportPromiseEvents> extends Enhanced
2903
3331
  _addEventListeners(): void;
2904
3332
  addCustomEventListeners(): void;
2905
3333
  }
3334
+ type DCMessage = {
3335
+ type: string;
3336
+ payload: Record<string, unknown>;
3337
+ };
3338
+ type TransportPromiseEvents = {
3339
+ 'close': {
3340
+ answer: RTCSessionDescriptionInit;
3341
+ };
3342
+ 'negotiate': {
3343
+ description: RTCSessionDescriptionInit;
3344
+ };
3345
+ };
2906
3346
  type ConsumerOptions = {
2907
3347
  id?: string;
2908
3348
  producerId: string;
@@ -2920,70 +3360,140 @@ type ConsumerOptions = {
2920
3360
  closeTranscieverOnClose?: boolean;
2921
3361
  };
2922
3362
  type MediaKind$1 = 'audio' | 'video';
2923
- declare class Consumer extends EnhancedEventEmitter<TransportPromiseEvents> {
2924
- readonly rtpReceiver: RTCRtpReceiver;
2925
- readonly id: string;
2926
- readonly localId: string;
2927
- readonly producerId: string;
2928
- readonly producingTransportId: string;
2929
- readonly mimeType: string;
2930
- readonly track: MediaStreamTrack;
2931
- readonly peerId: string;
2932
- readonly appData: Record<string, unknown>;
2933
- readonly transceiver: RTCRtpTransceiver;
2934
- constructor(context: Context<RTKContextState>, opts: ConsumerOptions);
2935
- readonly closed: boolean;
2936
- readonly kind: MediaKind$1;
2937
- readonly paused: boolean;
2938
- close(reason?: string, closeTranscieverOnClose?: boolean): void;
2939
- getStats(): Promise<RTCStatsReport>;
2940
- pause(): void;
2941
- resume(): void;
3363
+ declare class Consumer extends EnhancedEventEmitter<TransportPromiseEvents> {
3364
+ readonly rtpReceiver: RTCRtpReceiver;
3365
+ readonly id: string;
3366
+ readonly localId: string;
3367
+ readonly producerId: string;
3368
+ readonly producingTransportId: string;
3369
+ readonly mimeType: string;
3370
+ readonly track: MediaStreamTrack;
3371
+ readonly peerId: string;
3372
+ readonly appData: Record<string, unknown>;
3373
+ readonly transceiver: RTCRtpTransceiver;
3374
+ constructor(context: Context<ContextState>, opts: ConsumerOptions);
3375
+ readonly closed: boolean;
3376
+ readonly kind: MediaKind$1;
3377
+ readonly paused: boolean;
3378
+ close(reason?: string, closeTranscieverOnClose?: boolean): void;
3379
+ getStats(): Promise<RTCStatsReport>;
3380
+ pause(): void;
3381
+ resume(): void;
2942
3382
  }
2943
- type DCMessage = {
2944
- type: string;
2945
- payload: Record<string, unknown>;
3383
+ declare const localMediaEvents: readonly [
3384
+ "AUDIO_TRACK_CHANGE",
3385
+ "VIDEO_TRACK_CHANGE",
3386
+ "SCREENSHARE_TRACK_CHANGE",
3387
+ "SCREENSHARE_ENDED",
3388
+ "AUDIO_TRACK_SILENT",
3389
+ "FORCE_MUTE_AUDIO",
3390
+ "FORCE_MUTE_VIDEO",
3391
+ "DEVICE_CHANGE",
3392
+ "DEVICE_LIST_UPDATED"
3393
+ ];
3394
+ type LocalMediaEvents = (typeof localMediaEvents)[number];
3395
+ type ParticipantEvents = {
3396
+ ['videoUpdate']: (payload: {
3397
+ videoEnabled: boolean;
3398
+ videoTrack: MediaStreamTrack;
3399
+ }) => void;
3400
+ ['audioUpdate']: (payload: {
3401
+ audioEnabled: boolean;
3402
+ audioTrack: MediaStreamTrack;
3403
+ }) => void;
3404
+ ['screenShareUpdate']: (payload: {
3405
+ screenShareEnabled: boolean;
3406
+ screenShareTracks: {
3407
+ audio: MediaStreamTrack;
3408
+ video: MediaStreamTrack;
3409
+ };
3410
+ }) => void;
3411
+ ['pinned']: (payload: Participant) => void;
3412
+ ['unpinned']: (payload: Participant) => void;
3413
+ ['poorConnection']: (payload: {
3414
+ score: number;
3415
+ kind: string;
3416
+ }) => void;
3417
+ ['stageStatusUpdate']: (payload: Participant) => void;
3418
+ ['mediaScoreUpdate']: (payload: {
3419
+ kind: MediaKind$1;
3420
+ isScreenshare: boolean;
3421
+ score: number;
3422
+ participantId: string;
3423
+ scoreStats: ConsumerScoreStats;
3424
+ }) => void;
3425
+ ['kicked']: () => void;
3426
+ ['*']: (event: string, ...args: any[]) => void;
2946
3427
  };
2947
- type TransportPromiseEvents = {
2948
- 'close': {
2949
- answer: RTCSessionDescriptionInit;
2950
- };
2951
- 'negotiate': {
2952
- description: RTCSessionDescriptionInit;
2953
- };
3428
+ type SelfEvents = {
3429
+ ['toggleTile']: (payload: {
3430
+ hidden: boolean;
3431
+ }) => void;
3432
+ ['videoUpdate']: (payload: {
3433
+ videoEnabled: boolean;
3434
+ videoTrack: MediaStreamTrack;
3435
+ }) => void;
3436
+ ['audioUpdate']: (payload: {
3437
+ audioEnabled: boolean;
3438
+ audioTrack: MediaStreamTrack;
3439
+ }) => void;
3440
+ ['screenShareUpdate']: (payload: {
3441
+ screenShareEnabled: boolean;
3442
+ screenShareTracks: {
3443
+ audio?: MediaStreamTrack;
3444
+ video?: MediaStreamTrack;
3445
+ };
3446
+ }) => void;
3447
+ ['deviceUpdate']: ({ device }: {
3448
+ device: MediaDeviceInfo;
3449
+ }) => void;
3450
+ ['deviceListUpdate']: (changedDevices: {
3451
+ added: MediaDeviceInfo[];
3452
+ removed: MediaDeviceInfo[];
3453
+ devices: MediaDeviceInfo[];
3454
+ }) => void;
3455
+ ['pinned']: (payload: Self) => void;
3456
+ ['unpinned']: (payload: Self) => void;
3457
+ ['mediaPermissionUpdate']: (payload: {
3458
+ message: keyof typeof MediaPermission;
3459
+ kind: 'audio' | 'video' | 'screenshare';
3460
+ }) => void;
3461
+ ['mediaPermissionError']: (payload: {
3462
+ message: keyof typeof MediaPermission;
3463
+ constraints: any;
3464
+ kind: 'audio' | 'video' | 'screenshare';
3465
+ }) => void;
3466
+ ['mediaScoreUpdate']: (payload: {
3467
+ kind: MediaKind$1;
3468
+ isScreenshare: boolean;
3469
+ score: number;
3470
+ participantId: string;
3471
+ scoreStats: ProducerScoreStats;
3472
+ }) => void;
3473
+ ['waitlisted']: () => void;
3474
+ ['roomLeft']: (payload: {
3475
+ state: LeaveRoomState;
3476
+ }) => void;
3477
+ ['roomJoined']: (payload: {
3478
+ reconnected: boolean;
3479
+ }) => void;
3480
+ ['autoplayError']: (error: Error) => void;
3481
+ ['*']: (event: string, ...args: any[]) => void;
2954
3482
  };
2955
- type MediaKind = 'audio' | 'video';
2956
- type ProducerConstructorOptions = {
2957
- id: string;
2958
- localId: string;
2959
- track?: MediaStreamTrack;
2960
- stopTracks: boolean;
2961
- disableTrackOnPause: boolean;
2962
- zeroRtpOnPause: boolean;
2963
- handler: HandlerInterface<TransportPromiseEvents>;
2964
- appData?: Record<string, unknown>;
2965
- rtpSender?: RTCRtpSender;
3483
+ type ParticipantMapEvents = {
3484
+ ['participantJoined']: (payload: Participant) => void;
3485
+ ['participantLeft']: (payload: Participant) => void;
3486
+ ['participantsCleared']: () => void;
3487
+ ['participantsUpdate']: () => void;
3488
+ ['kicked']: (payload: {
3489
+ id: string;
3490
+ }) => void;
2966
3491
  };
2967
- declare class Producer extends EnhancedEventEmitter<TransportPromiseEvents> {
2968
- readonly id: string;
2969
- readonly localId: string;
2970
- readonly kind: MediaKind;
2971
- readonly appData: Record<string, unknown>;
2972
- readonly rtpSender: RTCRtpSender;
2973
- constructor(context: Context<RTKContextState>, opt: ProducerConstructorOptions);
2974
- readonly closed: boolean;
2975
- readonly track: MediaStreamTrack | null;
2976
- readonly paused: boolean;
2977
- readonly maxSpatialLayer: number | undefined;
2978
- close(reason?: string): Promise<void>;
2979
- getStats(): Promise<RTCStatsReport>;
2980
- pause(): void;
2981
- resume(): void;
2982
- replaceTrack({ track, }: {
2983
- track: MediaStreamTrack | null;
2984
- }): Promise<void>;
2985
- setMaxSpatialLayer(spatialLayer: number): Promise<void>;
2986
- setRtpEncodingParameters(params: RTCRtpEncodingParameters): Promise<void>;
3492
+ declare class ParticipantMap<T extends Pick<Participant, 'id' | keyof TypedEventEmitter$1<ParticipantEvents>> = Participant> extends ClientMap<ParticipantEvents, T, ParticipantMapEvents> {
3493
+ constructor(logger: Logger, options?: MapEvents<ParticipantMapEvents>);
3494
+ add(participant: T, emitEvent?: boolean): this;
3495
+ clear(emitEvent?: boolean, removeListeners?: boolean): void;
3496
+ delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
2987
3497
  }
2988
3498
  type StageSocketMessage = GetStageRequestsResponse | GetStagePeersResponse | DenyStageAccessRequest | PeerStatusUpdate;
2989
3499
  declare class StageSocketHandler {
@@ -3024,196 +3534,292 @@ type StageEvents = {
3024
3534
  ['stageRequestRejected']: () => void;
3025
3535
  ['*']: (eventName: string, ...args: any[]) => void;
3026
3536
  };
3027
- declare class RTKStage extends RTKTypedEventEmitter<StageEvents> {
3028
- readonly telemetry: RTKTelemetry;
3029
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, participants: RTKParticipants, stageSocketHandler: StageSocketHandler, roomSocketHandler: RoomSocketHandler);
3030
- readonly status: StageStatus;
3031
- getAccessRequests(): {
3032
- stageRequests: StageRequestPayload[];
3033
- };
3034
- requestAccess(): Promise<void>;
3035
- cancelRequestAccess(): Promise<void>;
3036
- grantAccess(userIds: string[]): Promise<void>;
3037
- denyAccess(userIds: string[]): Promise<void>;
3038
- readonly peerId: string;
3039
- join(): Promise<void>;
3040
- leave(): Promise<void>;
3041
- kick(userIds: string[]): Promise<{
3042
- id: string;
3043
- payload: Uint8Array;
3044
- }>;
3045
- }
3046
- interface ResponseStatus {
3047
- success: boolean;
3048
- message: string;
3537
+ declare class Stage extends TypedEventEmitter$1<StageEvents> {
3538
+ readonly telemetry: Telemetry;
3539
+ constructor(context: Context<ContextState>, self: Self, participants: Participants, stageSocketHandler: StageSocketHandler, roomSocketHandler: RoomSocketHandler);
3540
+ readonly status: StageStatus;
3541
+ private setupEvents;
3542
+ getAccessRequests(): {
3543
+ stageRequests: StageRequestPayload[];
3544
+ };
3545
+ requestAccess(): Promise<void>;
3546
+ cancelRequestAccess(): Promise<void>;
3547
+ grantAccess(userIds: string[]): Promise<void>;
3548
+ denyAccess(userIds: string[]): Promise<void>;
3549
+ readonly peerId: string;
3550
+ join(): Promise<void>;
3551
+ leave(): Promise<void>;
3552
+ kick(userIds: string[]): Promise<{
3553
+ id: string;
3554
+ payload: Uint8Array;
3555
+ }>;
3049
3556
  }
3050
- type MediaPermission$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE' | 'CANCELED';
3051
- declare const localMediaEvents: readonly [
3052
- "AUDIO_TRACK_CHANGE",
3053
- "VIDEO_TRACK_CHANGE",
3054
- "SCREENSHARE_TRACK_CHANGE",
3055
- "SCREENSHARE_ENDED",
3056
- "AUDIO_TRACK_SILENT",
3057
- "FORCE_MUTE_AUDIO",
3058
- "FORCE_MUTE_VIDEO",
3059
- "DEVICE_CHANGE",
3060
- "DEVICE_LIST_UPDATED"
3557
+ declare const modes: readonly [
3558
+ "ACTIVE_GRID",
3559
+ "PAGINATED",
3560
+ "MANUAL"
3061
3561
  ];
3062
- type LocalMediaEvents = (typeof localMediaEvents)[number];
3063
- type ParticipantEvents = {
3064
- ['videoUpdate']: (payload: {
3065
- videoEnabled: boolean;
3066
- videoTrack: MediaStreamTrack;
3067
- }) => void;
3068
- ['audioUpdate']: (payload: {
3069
- audioEnabled: boolean;
3070
- audioTrack: MediaStreamTrack;
3071
- }) => void;
3072
- ['screenShareUpdate']: (payload: {
3073
- screenShareEnabled: boolean;
3074
- screenShareTracks: {
3075
- audio: MediaStreamTrack;
3076
- video: MediaStreamTrack;
3077
- };
3078
- }) => void;
3079
- ['pinned']: (payload: RTKParticipant) => void;
3080
- ['unpinned']: (payload: RTKParticipant) => void;
3081
- ['poorConnection']: (payload: {
3082
- score: number;
3083
- kind: string;
3084
- }) => void;
3085
- ['stageStatusUpdate']: (payload: RTKParticipant) => void;
3086
- ['mediaScoreUpdate']: (payload: {
3087
- kind: MediaKind$1;
3088
- isScreenshare: boolean;
3089
- score: number;
3090
- participantId: string;
3091
- scoreStats: ConsumerScoreStats;
3092
- }) => void;
3093
- ['kicked']: () => void;
3094
- ['*']: (event: string, ...args: any[]) => void;
3562
+ type ViewMode = (typeof modes)[number];
3563
+ interface BroadcastMessagePayload {
3564
+ [key: string]: boolean | number | string | Date | ActiveTab;
3565
+ }
3566
+ interface PeerProducerConfig {
3567
+ audio: boolean;
3568
+ video: boolean;
3569
+ screenshareAudio: boolean;
3570
+ screenshareVideo: boolean;
3571
+ }
3572
+ type BroadcastMessageTarget = {
3573
+ participantIds: string[];
3574
+ } | {
3575
+ presetNames: string[];
3576
+ } | {
3577
+ meetingIds: string[];
3095
3578
  };
3096
- type SelfEvents = {
3097
- ['toggleTile']: (payload: {
3098
- hidden: boolean;
3099
- }) => void;
3100
- ['videoUpdate']: (payload: {
3101
- videoEnabled: boolean;
3102
- videoTrack: MediaStreamTrack;
3103
- }) => void;
3104
- ['audioUpdate']: (payload: {
3105
- audioEnabled: boolean;
3106
- audioTrack: MediaStreamTrack;
3107
- }) => void;
3108
- ['screenShareUpdate']: (payload: {
3109
- screenShareEnabled: boolean;
3110
- screenShareTracks: {
3111
- audio?: MediaStreamTrack;
3112
- video?: MediaStreamTrack;
3113
- };
3114
- }) => void;
3115
- ['deviceUpdate']: ({ device }: {
3116
- device: MediaDeviceInfo;
3117
- }) => void;
3118
- ['deviceListUpdate']: (changedDevices: {
3119
- added: MediaDeviceInfo[];
3120
- removed: MediaDeviceInfo[];
3121
- devices: MediaDeviceInfo[];
3122
- }) => void;
3123
- ['pinned']: (payload: RTKSelf) => void;
3124
- ['unpinned']: (payload: RTKSelf) => void;
3125
- ['mediaPermissionUpdate']: (payload: {
3126
- message: keyof typeof MediaPermission;
3127
- kind: 'audio' | 'video' | 'screenshare';
3128
- }) => void;
3129
- ['mediaPermissionError']: (payload: {
3130
- message: keyof typeof MediaPermission;
3131
- constraints: any;
3132
- kind: 'audio' | 'video' | 'screenshare';
3133
- }) => void;
3134
- ['mediaScoreUpdate']: (payload: {
3135
- kind: MediaKind$1;
3136
- isScreenshare: boolean;
3137
- score: number;
3138
- participantId: string;
3139
- scoreStats: ProducerScoreStats;
3140
- }) => void;
3141
- ['waitlisted']: () => void;
3142
- ['roomLeft']: (payload: {
3143
- state: LeaveRoomState;
3144
- }) => void;
3145
- ['roomJoined']: (payload: {
3146
- reconnected: boolean;
3147
- }) => void;
3148
- ['autoplayError']: (error: Error) => void;
3149
- ['*']: (event: string, ...args: any[]) => void;
3579
+ type JoinedPeer = {
3580
+ id: string;
3581
+ userId: string;
3582
+ name: string;
3583
+ stageType?: StageStatus;
3584
+ customParticipantId?: string;
3585
+ presetId?: string;
3586
+ picture?: string;
3587
+ waitlisted: boolean;
3588
+ recorderType?: string;
3589
+ stageStatus?: StageStatus;
3590
+ metadata?: {
3591
+ preset_name?: string;
3592
+ };
3593
+ flags?: {
3594
+ hiddenParticipant?: boolean;
3595
+ recorder?: boolean;
3596
+ };
3597
+ };
3598
+ type ParticipantsEvents = {
3599
+ ['viewModeChanged']: (payload: {
3600
+ viewMode: string;
3601
+ currentPage: number;
3602
+ pageCount: number;
3603
+ }) => void;
3604
+ ['activeSpeaker']: (payload: {
3605
+ peerId: string;
3606
+ volume: number;
3607
+ }) => void;
3608
+ ['broadcastedMessage']: (payload: {
3609
+ type: string;
3610
+ payload: BroadcastMessagePayload;
3611
+ timestamp: number;
3612
+ }) => void;
3613
+ ['poorConnection']: (payload: {
3614
+ participantId: string;
3615
+ score: number;
3616
+ kind: string;
3617
+ }) => void;
3618
+ ['pageChanged']: (payload: {
3619
+ viewMode: string;
3620
+ currentPage: number;
3621
+ pageCount: number;
3622
+ }) => void;
3623
+ ['mediaScoreUpdate']: (payload: {
3624
+ kind: string;
3625
+ isScreenshare: boolean;
3626
+ score: number;
3627
+ participantId: string;
3628
+ scoreStats: ConsumerScoreStats;
3629
+ }) => void;
3630
+ ['media_decode_error']: (payload: {
3631
+ reason: string;
3632
+ code: '1702' | '1703';
3633
+ }) => void;
3634
+ ['*']: (event: string, ...args: any[]) => void;
3150
3635
  };
3151
- declare class LocalMediaHandler extends RTKEventEmitter<LocalMediaEvents> {
3152
- readonly telemetry: RTKTelemetry;
3153
- audioUpdateInProgress: boolean;
3154
- videoUpdateInProgress: boolean;
3155
- constructor(context: Context<RTKContextState>, mediaConstraints: MediaConstraints, isNonPreferredDevice?: (media: MediaDeviceInfo) => boolean, autoSwitchDevice?: boolean);
3156
- context: Context<RTKContextState>;
3157
- repopulateAvailableDevices(): Promise<boolean>;
3158
- setupStreams({ audio, video, }: {
3159
- audio: boolean;
3160
- video: boolean;
3161
- }): Promise<void>;
3162
- getCurrentDevices(): {
3163
- audio: MediaDeviceInfo;
3164
- video: MediaDeviceInfo;
3165
- speaker: MediaDeviceInfo;
3166
- };
3167
- readonly permissions: {
3168
- audio?: MediaPermission$1;
3169
- video?: MediaPermission$1;
3170
- screenshare?: MediaPermission$1;
3171
- };
3172
- getAllDevices(): Promise<InputDeviceInfo[]>;
3173
- getDeviceById(deviceId: string, kind?: 'audioinput' | 'audiooutput' | 'videoinput'): Promise<MediaDeviceInfo>;
3174
- readonly rawAudioTrack: MediaStreamTrack;
3175
- readonly audioTrack: MediaStreamTrack;
3176
- readonly audioEnabled: boolean;
3177
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3178
- disableAudio(): void;
3179
- getAudioDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3180
- setAudioDevice(device: MediaDeviceInfo): Promise<void>;
3181
- setupSpeaker(): Promise<void>;
3182
- setSpeakerDevice(device: MediaDeviceInfo): Promise<void>;
3183
- readonly rawVideoTrack: MediaStreamTrack;
3184
- readonly videoTrack: MediaStreamTrack;
3185
- readonly videoEnabled: boolean;
3186
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3187
- disableVideo(): void;
3188
- getVideoDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3189
- setVideoDevice(device: MediaDeviceInfo): Promise<void>;
3190
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3191
- readonly screenShareTracks: {
3192
- audio: MediaStreamTrack;
3193
- video: MediaStreamTrack;
3194
- };
3195
- readonly screenShareEnabled: boolean;
3196
- enableScreenShare(): Promise<void>;
3197
- disableScreenShare(): Promise<void>;
3198
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3199
- getSpeakerDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3200
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3201
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3202
- removeAllAudioMiddlewares(): Promise<ResponseStatus>;
3203
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3204
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3205
- removeAllVideoMiddlewares(): Promise<ResponseStatus>;
3206
- setVideoMiddlewareGlobalConfig(config: VideoMiddlewareGlobalConfig): Promise<void>;
3207
- destruct(): void;
3208
- onDeviceChange(changedDevices: {
3209
- added: MediaDeviceInfo[];
3210
- removed: MediaDeviceInfo[];
3211
- devices: MediaDeviceInfo[];
3212
- }, skipDeviceChange: boolean): Promise<void>;
3213
- removeAllTracks(): void;
3214
- removeAudioTrack(): void;
3215
- removeVideoTrack(): void;
3216
- removeDocumentEventListeners(): Promise<void>;
3636
+ declare class Participants extends TypedEventEmitter$1<ParticipantsEvents> {
3637
+ readonly waitlisted: Readonly<ParticipantMap<Pick<Participant, Exclude<keyof Participant, 'audioTrack' | 'videoTrack' | 'screenShareTracks'>>>>;
3638
+ readonly joined: Readonly<ParticipantMap>;
3639
+ readonly active: Readonly<ParticipantMap>;
3640
+ readonly videoSubscribed: Readonly<ParticipantMap>;
3641
+ readonly audioSubscribed: Readonly<ParticipantMap>;
3642
+ readonly pinned: Readonly<ParticipantMap>;
3643
+ readonly all: Readonly<BasicParticipantsMap>;
3644
+ readonly pip: Pip;
3645
+ rateLimitConfig: {
3646
+ maxInvocations: number;
3647
+ period: number;
3648
+ };
3649
+ readonly rateLimits: {
3650
+ maxInvocations: number;
3651
+ period: number;
3652
+ };
3653
+ updateRateLimits(num: number, period: number): void;
3654
+ readonly telemetry: Telemetry;
3655
+ viewMode: ViewMode;
3656
+ currentPage: number;
3657
+ lastActiveSpeaker: string;
3658
+ selectedPeers: SelectedPeers;
3659
+ constructor(context: Context<ContextState>, self: Self, roomSocketHandler: RoomSocketHandler);
3660
+ setupEvents(): void;
3661
+ readonly count: number;
3662
+ readonly maxActiveParticipantsCount: number;
3663
+ setMaxActiveParticipantsCount(limit: number): void;
3664
+ readonly pageCount: number;
3665
+ acceptWaitingRoomRequest(id: string): void;
3666
+ acceptAllWaitingRoomRequest(userIds: string[]): Promise<void>;
3667
+ rejectWaitingRoomRequest(id: string): Promise<void>;
3668
+ setViewMode(viewMode: ViewMode): Promise<void>;
3669
+ subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
3670
+ unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
3671
+ getPeerIdsForCurrentPage(): string[];
3672
+ setPage(page: number): Promise<void>;
3673
+ disableAllAudio(allowUnmute: boolean): Promise<void>;
3674
+ disableAllVideo(): Promise<void>;
3675
+ disableAudio(participantId: string): Promise<void>;
3676
+ disableVideo(participantId: string): Promise<void>;
3677
+ kick(participantId: string): Promise<void>;
3678
+ kickAll(): Promise<void>;
3679
+ broadcastMessage(type: Exclude<string, 'spotlight'>, payload: BroadcastMessagePayload, target?: BroadcastMessageTarget): Promise<void>;
3680
+ getAllJoinedPeers(searchQuery: string, limit: number, offset: number): Promise<{
3681
+ id: string;
3682
+ userId: string;
3683
+ name: string;
3684
+ displayName: string;
3685
+ stageType: StageStatus;
3686
+ customParticipantId: string;
3687
+ presetId: string;
3688
+ picture: string;
3689
+ waitlisted: boolean;
3690
+ stageStatus: StageStatus;
3691
+ metadata: {
3692
+ preset_name: string;
3693
+ };
3694
+ recorderType: string;
3695
+ flags: {
3696
+ hiddenParticipant: boolean;
3697
+ hidden_participant: boolean;
3698
+ recorder: boolean;
3699
+ };
3700
+ }[]>;
3701
+ updatePermissions(participantIds: string[], permissions: PresetUpdates): Promise<void>;
3702
+ getParticipantsInMeetingPreJoin(): Promise<RoomPeersInfoResponse>;
3703
+ }
3704
+ interface FetchRequestConfig {
3705
+ baseURL?: string;
3706
+ url?: string;
3707
+ method?: string;
3708
+ headers?: Record<string, string>;
3709
+ timeout?: number;
3710
+ retry?: number;
3711
+ retryDelay?: number;
3712
+ responseType?: string;
3713
+ data?: any;
3714
+ params?: Record<string, string>;
3715
+ }
3716
+ interface FetchResponse<T = any> {
3717
+ data: T;
3718
+ status: number;
3719
+ statusText: string;
3720
+ headers: Record<string, string>;
3721
+ config: FetchRequestConfig;
3722
+ }
3723
+ declare class FetchClient {
3724
+ defaults: {
3725
+ baseURL: string;
3726
+ headers: {
3727
+ common: Record<string, string>;
3728
+ };
3729
+ timeout: number;
3730
+ retry: number;
3731
+ retryDelay: number;
3732
+ };
3733
+ constructor(options: {
3734
+ baseURL: string;
3735
+ timeout: number;
3736
+ retry: number;
3737
+ retryDelay: number;
3738
+ responseType?: string;
3739
+ });
3740
+ private buildURL;
3741
+ request<T = any>(config: FetchRequestConfig): Promise<FetchResponse<T>>;
3742
+ get<T = any>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3743
+ post<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3744
+ put<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3745
+ }
3746
+ interface ResponseStatus {
3747
+ success: boolean;
3748
+ message: string;
3749
+ }
3750
+ type MediaPermission$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE' | 'CANCELED';
3751
+ declare class LocalMediaHandler extends CustomEventEmitter<LocalMediaEvents> {
3752
+ readonly telemetry: Telemetry;
3753
+ audioUpdateInProgress: boolean;
3754
+ videoUpdateInProgress: boolean;
3755
+ constructor(context: Context<ContextState>, mediaConstraints: MediaConstraints, isNonPreferredDevice?: (media: MediaDeviceInfo) => boolean, autoSwitchDevice?: boolean);
3756
+ context: Context<ContextState>;
3757
+ private onVisibilityChange;
3758
+ repopulateAvailableDevices(): Promise<boolean>;
3759
+ setupStreams({ audio, video, }: {
3760
+ audio: boolean;
3761
+ video: boolean;
3762
+ }): Promise<void>;
3763
+ getCurrentDevices(): {
3764
+ audio: MediaDeviceInfo;
3765
+ video: MediaDeviceInfo;
3766
+ speaker: MediaDeviceInfo;
3767
+ };
3768
+ readonly permissions: {
3769
+ audio?: MediaPermission$1;
3770
+ video?: MediaPermission$1;
3771
+ screenshare?: MediaPermission$1;
3772
+ };
3773
+ getAllDevices(): Promise<InputDeviceInfo[]>;
3774
+ getDeviceById(deviceId: string, kind?: 'audioinput' | 'audiooutput' | 'videoinput'): Promise<MediaDeviceInfo>;
3775
+ private onAudioTrackMuted;
3776
+ private onAudioTrackChanged;
3777
+ readonly rawAudioTrack: MediaStreamTrack;
3778
+ readonly audioTrack: MediaStreamTrack;
3779
+ readonly audioEnabled: boolean;
3780
+ enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3781
+ disableAudio(): void;
3782
+ getAudioDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3783
+ setAudioDevice(device: MediaDeviceInfo): Promise<void>;
3784
+ setupSpeaker(): Promise<void>;
3785
+ setSpeakerDevice(device: MediaDeviceInfo): Promise<void>;
3786
+ private onVideoTrackChanged;
3787
+ private onVideoTrackEnded;
3788
+ readonly rawVideoTrack: MediaStreamTrack;
3789
+ readonly videoTrack: MediaStreamTrack;
3790
+ readonly videoEnabled: boolean;
3791
+ enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3792
+ disableVideo(): void;
3793
+ getVideoDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3794
+ setVideoDevice(device: MediaDeviceInfo): Promise<void>;
3795
+ updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3796
+ private onScreenShareEnded;
3797
+ readonly screenShareTracks: {
3798
+ audio: MediaStreamTrack;
3799
+ video: MediaStreamTrack;
3800
+ };
3801
+ readonly screenShareEnabled: boolean;
3802
+ enableScreenShare(): Promise<void>;
3803
+ disableScreenShare(): Promise<void>;
3804
+ updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3805
+ getSpeakerDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3806
+ addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3807
+ removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3808
+ removeAllAudioMiddlewares(): Promise<ResponseStatus>;
3809
+ addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3810
+ removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3811
+ removeAllVideoMiddlewares(): Promise<ResponseStatus>;
3812
+ setVideoMiddlewareGlobalConfig(config: VideoMiddlewareGlobalConfig): Promise<void>;
3813
+ destruct(): void;
3814
+ onDeviceChange(changedDevices: {
3815
+ added: MediaDeviceInfo[];
3816
+ removed: MediaDeviceInfo[];
3817
+ devices: MediaDeviceInfo[];
3818
+ }, skipDeviceChange: boolean): Promise<void>;
3819
+ removeAllTracks(): void;
3820
+ removeAudioTrack(): void;
3821
+ removeVideoTrack(): void;
3822
+ removeDocumentEventListeners(): Promise<void>;
3217
3823
  }
3218
3824
  declare enum MediaPermission {
3219
3825
  NOT_REQUESTED = 0,
@@ -3265,11 +3871,11 @@ type ScreenshareQualityConstraints = {
3265
3871
  displaySurface?: 'window' | 'monitor' | 'browser';
3266
3872
  selfBrowserSurface?: 'include' | 'exclude';
3267
3873
  };
3268
- interface RTKMediaTrackConstraints extends MediaTrackConstraints {
3269
- optional?: Array<object>;
3874
+ interface ClientMediaTrackConstraints extends MediaTrackConstraints {
3875
+ optional?: Array<object>;
3270
3876
  }
3271
- interface RTKMediaStreamConstraints extends MediaStreamConstraints {
3272
- audio?: boolean | RTKMediaTrackConstraints;
3877
+ interface ClientMediaStreamConstraints extends MediaStreamConstraints {
3878
+ audio?: boolean | ClientMediaTrackConstraints;
3273
3879
  }
3274
3880
  type MediaConstraints = {
3275
3881
  audio?: AudioQualityConstraints;
@@ -3420,735 +4026,140 @@ type PresetV2CamelCased = {
3420
4026
  name?: string;
3421
4027
  };
3422
4028
  type MaxVideoStreams = PresetV2CamelCased['config']['maxVideoStreams'];
3423
- declare class RTKThemePreset$1 {
3424
- private constructor();
3425
- static fromResponse(preset: PresetV2CamelCased): RTKThemePreset$1;
3426
- static default(): RTKThemePreset$1;
3427
- static init(preset?: PresetV2CamelCased, useDefault?: boolean): RTKThemePreset$1;
3428
- readonly setupScreen: Readonly<{
3429
- isEnabled: boolean;
3430
- }>;
3431
- readonly waitingRoom: Readonly<{
3432
- isEnabled: boolean;
3433
- }>;
3434
- readonly controlBar: Readonly<{
3435
- isEnabled: boolean;
3436
- elements?: {
3437
- chat?: boolean;
3438
- fullscreen?: boolean;
3439
- invite?: boolean;
3440
- layout?: boolean;
3441
- participants?: boolean;
3442
- plugins?: boolean;
3443
- polls?: boolean;
3444
- reactions?: boolean;
3445
- screenshare?: boolean;
3446
- };
3447
- }>;
3448
- readonly header: Readonly<{
3449
- isEnabled: boolean;
3450
- elements: {
3451
- logo: string;
3452
- timer: boolean;
3453
- title: boolean;
3454
- participantCount: boolean;
3455
- changeLayout: boolean;
3456
- };
3457
- }>;
3458
- readonly pipMode: Readonly<boolean>;
3459
- readonly viewType: Readonly<ViewType>;
3460
- readonly livestreamViewerQualities: Readonly<LivestreamViewerMediaQualityType[]>;
3461
- readonly maxVideoStreams: Readonly<MaxVideoStreams>;
3462
- readonly maxScreenShareCount: Readonly<number>;
3463
- readonly plugins: Readonly<string[]>;
3464
- readonly disabledPlugins: Readonly<string[]>;
3465
- readonly designTokens: Readonly<PresetV2CamelCased['ui']['designTokens']>;
3466
- readonly configDiff: Readonly<PresetV2CamelCased['ui']['configDiff']>;
3467
- readonly mediaConstraints: Readonly<PresetMediaConstraints>;
3468
- readonly name: string;
4029
+ declare class ThemePreset {
4030
+ private constructor();
4031
+ static fromResponse(preset: PresetV2CamelCased): ThemePreset;
4032
+ static default(): ThemePreset;
4033
+ static init(preset?: PresetV2CamelCased, useDefault?: boolean): ThemePreset;
4034
+ readonly setupScreen: Readonly<{
4035
+ isEnabled: boolean;
4036
+ }>;
4037
+ readonly waitingRoom: Readonly<{
4038
+ isEnabled: boolean;
4039
+ }>;
4040
+ readonly controlBar: Readonly<{
4041
+ isEnabled: boolean;
4042
+ elements?: {
4043
+ chat?: boolean;
4044
+ fullscreen?: boolean;
4045
+ invite?: boolean;
4046
+ layout?: boolean;
4047
+ participants?: boolean;
4048
+ plugins?: boolean;
4049
+ polls?: boolean;
4050
+ reactions?: boolean;
4051
+ screenshare?: boolean;
4052
+ };
4053
+ }>;
4054
+ readonly header: Readonly<{
4055
+ isEnabled: boolean;
4056
+ elements: {
4057
+ logo: string;
4058
+ timer: boolean;
4059
+ title: boolean;
4060
+ participantCount: boolean;
4061
+ changeLayout: boolean;
4062
+ };
4063
+ }>;
4064
+ readonly pipMode: Readonly<boolean>;
4065
+ readonly viewType: Readonly<ViewType>;
4066
+ readonly livestreamViewerQualities: Readonly<LivestreamViewerMediaQualityType[]>;
4067
+ readonly maxVideoStreams: Readonly<MaxVideoStreams>;
4068
+ readonly maxScreenShareCount: Readonly<number>;
4069
+ readonly plugins: Readonly<string[]>;
4070
+ readonly disabledPlugins: Readonly<string[]>;
4071
+ readonly designTokens: Readonly<PresetV2CamelCased['ui']['designTokens']>;
4072
+ readonly configDiff: Readonly<PresetV2CamelCased['ui']['configDiff']>;
4073
+ readonly mediaConstraints: Readonly<PresetMediaConstraints>;
4074
+ readonly name: string;
3469
4075
  }
3470
4076
  type PresetPermissions = PresetV2CamelCased['permissions'];
3471
- type PermissionEvents = {
3472
- ['chatUpdate']: () => void;
3473
- ['pollsUpdate']: () => void;
3474
- ['pluginsUpdate']: () => void;
3475
- ['permissionsUpdate']: (patch: PresetUpdates) => void;
3476
- ['*']: () => void;
3477
- };
3478
- declare class RTKPermissionsPreset$1 extends RTKTypedEventEmitter<PermissionEvents> {
3479
- private constructor();
3480
- static fromResponse(response: PresetPermissions, viewType: ViewType, context: Context<RTKContextState>): RTKPermissionsPreset$1;
3481
- static default(context: Context<RTKContextState>, viewType: ViewType): RTKPermissionsPreset$1;
3482
- static init(context: Context<RTKContextState>, viewType: ViewType, response?: PresetPermissions): RTKPermissionsPreset$1;
3483
- readonly mediaRoomType: string;
3484
- readonly stageEnabled: Readonly<boolean>;
3485
- readonly acceptStageRequests: Readonly<boolean>;
3486
- readonly stageAccess: Readonly<MediaProductionPermissionType>;
3487
- readonly acceptWaitingRequests: Readonly<boolean>;
3488
- readonly requestProduceVideo: Readonly<boolean>;
3489
- readonly requestProduceAudio: Readonly<boolean>;
3490
- readonly requestProduceScreenshare: Readonly<boolean>;
3491
- readonly canAllowParticipantAudio: Readonly<boolean>;
3492
- readonly canAllowParticipantScreensharing: Readonly<boolean>;
3493
- readonly canAllowParticipantVideo: Readonly<boolean>;
3494
- readonly canDisableParticipantAudio: Readonly<boolean>;
3495
- readonly canDisableParticipantVideo: Readonly<boolean>;
3496
- readonly kickParticipant: Readonly<boolean>;
3497
- readonly pinParticipant: Readonly<boolean>;
3498
- readonly canRecord: Readonly<boolean>;
3499
- readonly waitingRoomType: Readonly<WaitingRoomTypes>;
3500
- readonly waitingRoomBehaviour: Readonly<WaitingRoomTypes>;
3501
- readonly plugins: Readonly<PresetPermissions['plugins']>;
3502
- readonly polls: Readonly<PresetPermissions['polls']>;
3503
- readonly produceVideo: Readonly<MediaProductionPermissionType>;
3504
- readonly requestProduce: Readonly<boolean>;
3505
- readonly canProduceVideo: Readonly<MediaProductionPermissionType>;
3506
- readonly produceScreenshare: Readonly<MediaProductionPermissionType>;
3507
- readonly canProduceScreenshare: Readonly<MediaProductionPermissionType>;
3508
- readonly produceAudio: Readonly<MediaProductionPermissionType>;
3509
- readonly canProduceAudio: Readonly<MediaProductionPermissionType>;
3510
- readonly chatPublic: Readonly<PresetPermissions['chat']['public']>;
3511
- readonly chatPrivate: Readonly<PresetPermissions['chat']['private']>;
3512
- readonly chatChannel: Readonly<PresetPermissions['chat']['channel']>;
3513
- readonly chatMessage: Readonly<PresetPermissions['chat']['message']>;
3514
- readonly connectedMeetings: Readonly<PresetPermissions['connectedMeetings']>;
3515
- readonly hiddenParticipant: Readonly<boolean>;
3516
- readonly showParticipantList: Readonly<boolean>;
3517
- readonly canChangeParticipantRole: Readonly<boolean>;
3518
- readonly canChangeParticipantPermissions: Readonly<boolean>;
3519
- readonly canChangeTheme: Readonly<boolean>;
3520
- readonly canPresent: Readonly<boolean>;
3521
- readonly acceptPresentRequests: Readonly<boolean>;
3522
- readonly canEditDisplayName: Readonly<boolean>;
3523
- readonly maxScreenShareCount: Readonly<number>;
3524
- readonly isRecorder: Readonly<boolean>;
3525
- readonly canSpotlight: Readonly<boolean>;
3526
- readonly canLivestream: Readonly<boolean>;
3527
- readonly transcriptionEnabled: Readonly<boolean>;
3528
- }
3529
- interface UserDetailsResponseV2 {
3530
- participant: UserDetailsResponse;
3531
- preset: PresetV2CamelCased;
3532
- }
3533
- type LeaveRoomState = 'kicked' | 'ended' | 'left' | 'rejected' | 'connected-meeting' | 'disconnected' | 'failed' | 'stageLeft';
3534
- declare class SelfController {
3535
- readonly self: RTKSelf$1;
3536
- readonly authToken: string;
3537
- readonly peerId: string;
3538
- viewType: ViewType;
3539
- readonly telemetry: RTKTelemetry;
3540
- readonly logger: RTKLogger$1;
3541
- readonly mediaJoined: boolean;
3542
- private constructor();
3543
- static init(context: Context<RTKContextState>, roomSocketHandler: RoomSocketHandler, participant: UserDetailsResponseV2['participant'], permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1): Promise<SelfController>;
3544
- shareMediaTracks(): Promise<void>;
3545
- resetSelf(shouldAutoJoin: boolean): Promise<void>;
3546
- joinRoom(reconnected?: boolean): Promise<void>;
3547
- leaveRoom(state?: LeaveRoomState): Promise<void>;
3548
- }
3549
- declare class RTKSelfMedia$1 extends RTKTypedEventEmitter<SelfEvents> {
3550
- readonly peerId: string;
3551
- init(options?: {
3552
- video?: boolean;
3553
- audio?: boolean;
3554
- constraints?: MediaConstraints;
3555
- }, skipAwaits?: boolean, context?: Context<RTKContextState>): Promise<void>;
3556
- context: Context<RTKContextState>;
3557
- readonly audioTrack: MediaStreamTrack;
3558
- readonly rawAudioTrack: MediaStreamTrack;
3559
- readonly mediaPermissions: {
3560
- audio?: MediaPermission$1;
3561
- video?: MediaPermission$1;
3562
- screenshare?: MediaPermission$1;
3563
- };
3564
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3565
- success: boolean;
3566
- message: string;
3567
- }>;
3568
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3569
- success: boolean;
3570
- message: string;
3571
- }>;
3572
- removeAllAudioMiddlewares(): Promise<{
3573
- success: boolean;
3574
- message: string;
3575
- }>;
3576
- readonly videoTrack: MediaStreamTrack;
3577
- readonly rawVideoTrack: MediaStreamTrack;
3578
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3579
- success: boolean;
3580
- message: string;
3581
- }>;
3582
- setVideoMiddlewareGlobalConfig(config?: VideoMiddlewareGlobalConfig): Promise<void>;
3583
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3584
- success: boolean;
3585
- message: string;
3586
- }>;
3587
- removeAllVideoMiddlewares(): Promise<{
3588
- success: boolean;
3589
- message: string;
3590
- }>;
3591
- readonly screenShareTracks: {
3592
- audio: MediaStreamTrack;
3593
- video: MediaStreamTrack;
3594
- };
3595
- readonly audioEnabled: boolean;
3596
- readonly videoEnabled: boolean;
3597
- readonly screenShareEnabled: boolean;
3598
- enableAudio(): Promise<void>;
3599
- enableVideo(): Promise<void>;
3600
- disableAudio(): Promise<void>;
3601
- enableScreenShare(): Promise<void>;
3602
- disableScreenShare(): Promise<void>;
3603
- disableVideo(): Promise<void>;
3604
- getCurrentDevices(): {
3605
- audio: MediaDeviceInfo;
3606
- video: MediaDeviceInfo;
3607
- speaker: MediaDeviceInfo;
3608
- };
3609
- getAudioDevices(): Promise<MediaDeviceInfo[]>;
3610
- getVideoDevices(): Promise<MediaDeviceInfo[]>;
3611
- getSpeakerDevices(): Promise<MediaDeviceInfo[]>;
3612
- getDeviceById(deviceId: string, kind: 'audio' | 'video' | 'speaker'): Promise<MediaDeviceInfo>;
3613
- setDevice(device: MediaDeviceInfo): Promise<void>;
3614
- }
3615
- interface UserDetailsResponse {
3616
- id: string;
3617
- name: string;
3618
- email: string;
3619
- picture?: string;
3620
- loggedIn?: boolean;
3621
- scope?: string[];
3622
- clientSpecificId?: string;
3623
- customParticipantId?: string;
3624
- organizationId?: string;
3625
- }
3626
- declare class RTKSelf$1 extends RTKSelfMedia$1 {
3627
- name: string;
3628
- picture: string;
3629
- customParticipantId: string;
3630
- waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
3631
- role: any;
3632
- userId: string;
3633
- organizationId: string;
3634
- supportsRemoteControl: boolean;
3635
- device: DeviceConfig;
3636
- readonly telemetry: RTKTelemetry;
3637
- hidden: boolean;
3638
- readonly stageStatus: StageStatus;
3639
- readonly producers: Producer[];
3640
- readonly id: string;
3641
- readonly peerId: string;
3642
- presetName: string;
3643
- roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
3644
- private constructor();
3645
- static __init__(context: Context<RTKContextState>, details: UserDetailsResponse, permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1, presetName: string, skipAwaits?: boolean): Promise<RTKSelf$1>;
3646
- cleanupEvents(): void;
3647
- readonly permissions: RTKPermissionsPreset$1;
3648
- readonly config: RTKThemePreset$1;
3649
- readonly roomJoined: boolean;
3650
- setName(name: string): void;
3651
- setupTracks(options?: {
3652
- video?: boolean;
3653
- audio?: boolean;
3654
- forceReset?: boolean;
3655
- }): Promise<void>;
3656
- destructMediaHandler(): Promise<void>;
3657
- removeDocumentEventListeners(): Promise<void>;
3658
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3659
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3660
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3661
- enableScreenShare(): Promise<void>;
3662
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3663
- disableAudio(): Promise<void>;
3664
- disableVideo(): Promise<void>;
3665
- disableScreenShare(): Promise<void>;
3666
- getAllDevices(): Promise<InputDeviceInfo[]>;
3667
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
3668
- readonly isPinned: boolean;
3669
- pin(): Promise<void>;
3670
- unpin(): Promise<void>;
3671
- hide(): Promise<void>;
3672
- show(): void;
3673
- setDevice(device: MediaDeviceInfo): Promise<void>;
3674
- cleanUpTracks(): void;
3675
- playAudio(): Promise<void>;
3676
- registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
3677
- deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
3678
- }
3679
- interface RTKBasicParticipant {
3680
- userId: string;
3681
- name?: string;
3682
- picture?: string;
3683
- customParticipantId: string;
3684
- }
3685
- declare class RTKBasicParticipantsMap extends RTKEventEmitter<'participantsUpdate'> {
3686
- constructor(logger: RTKLogger$1);
3687
- __set(objId: string, obj: RTKBasicParticipant): Map<string, RTKBasicParticipant>;
3688
- __clear(): void;
3689
- get(objId: string): RTKBasicParticipant;
3690
- toArray(): RTKBasicParticipant[];
3691
- }
3692
- type ChatChannelSocketMessage = GetChatChannelResponse;
3693
- interface ChatChannel {
3694
- id: string;
3695
- displayName: string;
3696
- memberIds: string[];
3697
- displayPictureUrl?: string;
3698
- visibility?: string;
3699
- isDirectMessage?: boolean;
3700
- latestMessage?: Message;
3701
- unreadCount: number;
3702
- }
3703
- interface UpdateChannelRequestPayload {
3704
- memberIds?: string[];
3705
- displayName?: string;
3706
- displayPictureUrl?: string;
3707
- visibility?: string;
3708
- }
3709
- declare class ChatChannelSocketHandler {
3710
- readonly telemetry: RTKTelemetry;
3711
- readonly logger: RTKLogger$1;
3712
- constructor(context: Context<RTKContextState>, socketService: SocketService);
3713
- createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise<ChatChannel>;
3714
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
3715
- static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
3716
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
3717
- on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
3718
- }
3719
- declare enum ChatMessageType {
3720
- TEXT = 0,
3721
- IMAGE = 1,
3722
- FILE = 2,
3723
- CUSTOM = 3
3724
- }
3725
- type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
3726
- interface SearchFilters {
3727
- channelId?: string;
3728
- timestamp?: number;
3729
- size?: number;
3730
- reversed?: boolean;
3731
- }
3732
- declare class ChatSocketHandler {
3733
- readonly telemetry: RTKTelemetry;
3734
- readonly logger: RTKLogger$1;
3735
- constructor(context: Context<RTKContextState>, socketService: SocketService);
3736
- getChatMessages(): Promise<{
3737
- id: string;
3738
- payload: Uint8Array;
3739
- }>;
3740
- getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<GetPaginatedChatMessageRoomResponse>;
3741
- sendMessageToRoom(message: string, messageType: ChatMessageType): void;
3742
- sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
3743
- sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
3744
- sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
3745
- editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise<ChatMessage>;
3746
- deleteMessage(chatId: string, channelId?: string): Promise<{
3747
- channelId?: string;
3748
- id: string;
3749
- }>;
3750
- searchMessages(query: string, filters: SearchFilters): Promise<ChatMessage[]>;
3751
- getAllChannels(): Promise<ChatChannel[]>;
3752
- markLastReadMessage(channelId: string, message: Message): Promise<string>;
3753
- setPinState(message: Message, pin: boolean): Promise<PinChatMessageResponse>;
3754
- on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
3755
- }
3756
- declare class RTKSelectedPeers {
3757
- constructor();
3758
- add(peerId: string, priority: number, context: Context<RTKContextState>): number;
3759
- delete(peerId: string, context: Context<RTKContextState>): void;
3760
- index(peerId: string): number;
3761
- readonly peers: string[];
3762
- readonly compulsoryPeers: string[];
3763
- readonly activeSpeakerPeers: string[];
3764
- }
3765
- type PipEvents = {
3766
- ['cameraToggled']: () => void;
3767
- ['micToggled']: () => void;
3768
- ['hangup']: () => void;
3769
- ['pipStarted']: () => void;
3770
- ['pipEnded']: () => void;
3771
- ['*']: (eventName: string, ...args: any[]) => void;
3772
- };
3773
- declare class RTKPip extends RTKTypedEventEmitter<PipEvents> {
3774
- private constructor();
3775
- static _init(context: Context<RTKContextState>, self: RTKSelf$1): Promise<RTKPip>;
3776
- overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise<void>;
3777
- isSupported(): boolean;
3778
- readonly isActive: boolean;
3779
- init({ height, width }?: {
3780
- height?: number;
3781
- width?: number;
3782
- }): void;
3783
- enableSource(source: string): void;
3784
- disableSource(source: string): void;
3785
- addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
3786
- updateSource(id: string, source: any): void;
3787
- removeSource(id: string): void;
3788
- removePinnedSource(): void;
3789
- removeAllSources(): void;
3790
- enable(): void;
3791
- disable: (partial?: boolean) => void;
3792
- }
3793
- type TranscriptionData = {
3794
- id: string;
3795
- name: string;
3796
- peerId: string;
3797
- userId: string;
3798
- customParticipantId: string;
3799
- transcript: string;
3800
- isPartialTranscript: boolean;
3801
- date: Date;
3802
- };
3803
- type AiEvents = {
3804
- ['transcript']: (t: TranscriptionData) => void;
3805
- ['*']: (event: string, ...args: any[]) => void;
3806
- };
3807
- declare class RTKAi extends RTKTypedEventEmitter<AiEvents> {
3808
- transcripts: TranscriptionData[];
3809
- readonly telemetry: RTKTelemetry;
3810
- constructor(context: Context<RTKContextState>);
3811
- static init(context: Context<RTKContextState>, transcriptionEnabled: boolean): Promise<RTKAi>;
3812
- static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
3813
- static parseTranscripts(transcriptData: string): TranscriptionData[];
3814
- getActiveTranscript(): Promise<void>;
3815
- onTranscript(transcript: TranscriptionData): Promise<void>;
3816
- }
3817
- declare enum TransportState {
3818
- NEW = "new",
3819
- CONNECTING = "connecting",
3820
- RECONNECTING = "reconnecting",
3821
- DISCONNECTED = "disconnected",
3822
- CONNECTED = "connected",
3823
- FAILED = "failed",
3824
- CLOSED = "closed"
3825
- }
3826
- type MediaConnectionState = {
3827
- recv: {
3828
- state: string;
3829
- };
3830
- send: {
3831
- state: string;
3832
- };
3833
- };
3834
- type ActiveTabType = 'screenshare' | 'plugin';
3835
- interface ActiveTab {
3836
- type: ActiveTabType;
3837
- id: string;
3838
- }
3839
- declare enum TabChangeSource {
3840
- User = 0,
3841
- Meeting = 1
3842
- }
3843
- interface MediaConnectionUpdate {
3844
- transport: 'consuming' | 'producing';
3845
- state: string;
3846
- reconnected: boolean;
3847
- }
3848
- type MetaEvents = {
3849
- ['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
3850
- ['socketConnectionUpdate']: (state: SocketConnectionState) => void;
3851
- ['poorConnection']: (payload: {
3852
- score: number;
3853
- }) => void;
3854
- ['meetingStartTimeUpdate']: (payload: {
3855
- meetingStartedTimestamp: Date;
3856
- }) => void;
3857
- ['transcript']: (t: TranscriptionData) => void;
3858
- ['activeTabUpdate']: (tab: ActiveTab) => void;
3859
- ['selfTabUpdate']: (tab: ActiveTab) => void;
3860
- ['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
3861
- ['*']: (event: string, ...args: any[]) => void;
3862
- };
3863
- declare class RTKMeta$1 extends RTKTypedEventEmitter<MetaEvents> {
3864
- selfActiveTab: ActiveTab | undefined;
3865
- readonly socketState: SocketConnectionState;
3866
- readonly mediaState: MediaConnectionState;
3867
- broadcastTabChanges: boolean;
3868
- viewType: string;
3869
- meetingStartedTimestamp: Date;
3870
- meetingTitle: string;
3871
- sessionId: string;
3872
- constructor(context: Context<RTKContextState>, self: RTKSelf, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
3873
- readonly meetingId: string;
3874
- setBroadcastTabChanges(broadcastTabChanges: boolean): void;
3875
- setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
3876
- }
3877
- interface RTKMapEvents<T extends EventMap$1> {
3878
- onAddEvent?: keyof T;
3879
- onDeleteEvent?: keyof T;
3880
- onClearEvent?: keyof T;
3881
- }
3882
- type ModifyPrependObject<T extends EventMap$1, U> = {
3883
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3884
- } & {
3885
- ['*']: (event: String, ...args: any[]) => void;
3886
- };
3887
- declare class RTKMap<T extends (EventMap$1 & WildCardEvent<T>), U extends {
3888
- id: string;
3889
- } & RTKTypedEventEmitter<T>, V extends EventMap$1> extends Map<string, U> {
3890
- readonly onAddEvent: keyof V;
3891
- readonly onDeleteEvent: keyof V;
3892
- readonly onClearEvent: keyof V;
3893
- constructor(options: RTKMapEvents<V>, logger?: RTKLogger$1);
3894
- emit<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject<T, U>)[E]>): boolean;
3895
- on<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3896
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3897
- } & {
3898
- "*": (event: String, ...args: any[]) => void;
3899
- } & V>;
3900
- addListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3901
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3902
- } & {
3903
- "*": (event: String, ...args: any[]) => void;
3904
- } & V>;
3905
- off<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3906
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3907
- } & {
3908
- "*": (event: String, ...args: any[]) => void;
3909
- } & V>;
3910
- once<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3911
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3912
- } & {
3913
- "*": (event: String, ...args: any[]) => void;
3914
- } & V>;
3915
- prependListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3916
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3917
- } & {
3918
- "*": (event: String, ...args: any[]) => void;
3919
- } & V>;
3920
- prependOnceListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3921
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3922
- } & {
3923
- "*": (event: String, ...args: any[]) => void;
3924
- } & V>;
3925
- removeListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3926
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3927
- } & {
3928
- "*": (event: String, ...args: any[]) => void;
3929
- } & V>;
3930
- removeAllListeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event?: E): RTKTypedEventEmitter<{
3931
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3932
- } & {
3933
- "*": (event: String, ...args: any[]) => void;
3934
- } & V>;
3935
- listeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): Function[];
3936
- listenerCount<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): number;
3937
- getMaxListeners(): number;
3938
- setMaxListeners(n: number): RTKTypedEventEmitter<{
3939
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3940
- } & {
3941
- "*": (event: String, ...args: any[]) => void;
3942
- } & V>;
3943
- eventNames(): (string | symbol)[];
3944
- add(obj: U, emitEvent?: boolean): this;
3945
- set(objId: string, obj: U, emitEvent?: boolean): this;
3946
- delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3947
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3948
- toArray(): U[];
3949
- }
3950
- type ParticipantMapEvents = {
3951
- ['participantJoined']: (payload: RTKParticipant$1) => void;
3952
- ['participantLeft']: (payload: RTKParticipant$1) => void;
3953
- ['participantsCleared']: () => void;
3954
- ['participantsUpdate']: () => void;
3955
- ['kicked']: (payload: {
3956
- id: string;
3957
- }) => void;
3958
- };
3959
- declare class RTKParticipantMap$1<T extends Pick<RTKParticipant$1, 'id' | keyof RTKTypedEventEmitter<ParticipantEvents>> = RTKParticipant$1> extends RTKMap<ParticipantEvents, T, ParticipantMapEvents> {
3960
- constructor(logger: RTKLogger, options?: RTKMapEvents<ParticipantMapEvents>);
3961
- add(participant: T, emitEvent?: boolean): this;
3962
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3963
- delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3964
- }
3965
- declare const modes: readonly [
3966
- "ACTIVE_GRID",
3967
- "PAGINATED",
3968
- "MANUAL"
3969
- ];
3970
- type ViewMode = (typeof modes)[number];
3971
- interface BroadcastMessagePayload {
3972
- [key: string]: boolean | number | string | Date | ActiveTab;
3973
- }
3974
- interface PeerProducerConfig {
3975
- audio: boolean;
3976
- video: boolean;
3977
- screenshareAudio: boolean;
3978
- screenshareVideo: boolean;
3979
- }
3980
- type BroadcastMessageTarget = {
3981
- participantIds: string[];
3982
- } | {
3983
- presetNames: string[];
3984
- } | {
3985
- meetingIds: string[];
3986
- };
3987
- type JoinedPeer = {
3988
- id: string;
3989
- userId: string;
3990
- name: string;
3991
- stageType?: StageStatus;
3992
- customParticipantId?: string;
3993
- presetId?: string;
3994
- picture?: string;
3995
- waitlisted: boolean;
3996
- recorderType?: string;
3997
- stageStatus?: StageStatus;
3998
- metadata?: {
3999
- preset_name?: string;
4000
- };
4001
- flags?: {
4002
- hiddenParticipant?: boolean;
4003
- recorder?: boolean;
4004
- };
4005
- };
4006
- type ParticipantsEvents = {
4007
- ['viewModeChanged']: (payload: {
4008
- viewMode: string;
4009
- currentPage: number;
4010
- pageCount: number;
4011
- }) => void;
4012
- ['activeSpeaker']: (payload: {
4013
- peerId: string;
4014
- volume: number;
4015
- }) => void;
4016
- ['broadcastedMessage']: (payload: {
4017
- type: string;
4018
- payload: BroadcastMessagePayload;
4019
- timestamp: number;
4020
- }) => void;
4021
- ['poorConnection']: (payload: {
4022
- participantId: string;
4023
- score: number;
4024
- kind: string;
4025
- }) => void;
4026
- ['pageChanged']: (payload: {
4027
- viewMode: string;
4028
- currentPage: number;
4029
- pageCount: number;
4030
- }) => void;
4031
- ['mediaScoreUpdate']: (payload: {
4032
- kind: string;
4033
- isScreenshare: boolean;
4034
- score: number;
4035
- participantId: string;
4036
- scoreStats: ConsumerScoreStats;
4037
- }) => void;
4038
- ['media_decode_error']: (payload: {
4039
- reason: string;
4040
- code: '1702' | '1703';
4041
- }) => void;
4042
- ['*']: (event: string, ...args: any[]) => void;
4043
- };
4044
- declare class RTKParticipants$1 extends RTKTypedEventEmitter<ParticipantsEvents> {
4045
- readonly waitlisted: Readonly<RTKParticipantMap$1<Pick<RTKParticipant$1, Exclude<keyof RTKParticipant$1, 'audioTrack' | 'videoTrack' | 'screenShareTracks'>>>>;
4046
- readonly joined: Readonly<RTKParticipantMap$1>;
4047
- readonly active: Readonly<RTKParticipantMap$1>;
4048
- readonly videoSubscribed: Readonly<RTKParticipantMap$1>;
4049
- readonly audioSubscribed: Readonly<RTKParticipantMap$1>;
4050
- readonly pinned: Readonly<RTKParticipantMap$1>;
4051
- readonly all: Readonly<RTKBasicParticipantsMap>;
4052
- readonly pip: RTKPip;
4053
- rateLimitConfig: {
4054
- maxInvocations: number;
4055
- period: number;
4056
- };
4057
- readonly rateLimits: {
4058
- maxInvocations: number;
4059
- period: number;
4060
- };
4061
- updateRateLimits(num: number, period: number): void;
4062
- readonly telemetry: RTKTelemetry;
4063
- viewMode: ViewMode;
4064
- currentPage: number;
4065
- lastActiveSpeaker: string;
4066
- selectedPeers: RTKSelectedPeers;
4067
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, roomSocketHandler: RoomSocketHandler);
4068
- setupEvents(): void;
4069
- readonly count: number;
4070
- readonly maxActiveParticipantsCount: number;
4071
- setMaxActiveParticipantsCount(limit: number): void;
4072
- readonly pageCount: number;
4073
- acceptWaitingRoomRequest(id: string): void;
4074
- acceptAllWaitingRoomRequest(userIds: string[]): Promise<void>;
4075
- rejectWaitingRoomRequest(id: string): Promise<void>;
4076
- setViewMode(viewMode: ViewMode): Promise<void>;
4077
- subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4078
- unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4079
- getPeerIdsForCurrentPage(): string[];
4080
- setPage(page: number): Promise<void>;
4081
- disableAllAudio(allowUnmute: boolean): Promise<void>;
4082
- disableAllVideo(): Promise<void>;
4083
- disableAudio(participantId: string): Promise<void>;
4084
- disableVideo(participantId: string): Promise<void>;
4085
- kick(participantId: string): Promise<void>;
4086
- kickAll(): Promise<void>;
4087
- broadcastMessage(type: Exclude<string, 'spotlight'>, payload: BroadcastMessagePayload, target?: BroadcastMessageTarget): Promise<void>;
4088
- getAllJoinedPeers(searchQuery: string, limit: number, offset: number): Promise<{
4089
- id: string;
4090
- userId: string;
4091
- name: string;
4092
- displayName: string;
4093
- stageType: StageStatus;
4094
- customParticipantId: string;
4095
- presetId: string;
4096
- picture: string;
4097
- waitlisted: boolean;
4098
- stageStatus: StageStatus;
4099
- metadata: {
4100
- preset_name: string;
4101
- };
4102
- recorderType: string;
4103
- flags: {
4104
- hiddenParticipant: boolean;
4105
- hidden_participant: boolean;
4106
- recorder: boolean;
4107
- };
4108
- }[]>;
4109
- updatePermissions(participantIds: string[], permissions: PresetUpdates): Promise<void>;
4110
- getParticipantsInMeetingPreJoin(): Promise<RoomPeersInfoResponse>;
4111
- }
4112
- interface FetchRequestConfig {
4113
- baseURL?: string;
4114
- url?: string;
4115
- method?: string;
4116
- headers?: Record<string, string>;
4117
- timeout?: number;
4118
- retry?: number;
4119
- retryDelay?: number;
4120
- responseType?: string;
4121
- data?: any;
4122
- params?: Record<string, string>;
4077
+ type PermissionEvents = {
4078
+ ['chatUpdate']: () => void;
4079
+ ['pollsUpdate']: () => void;
4080
+ ['pluginsUpdate']: () => void;
4081
+ ['permissionsUpdate']: (patch: PresetUpdates) => void;
4082
+ ['*']: () => void;
4083
+ };
4084
+ declare class PermissionPreset extends TypedEventEmitter$1<PermissionEvents> {
4085
+ private constructor();
4086
+ private setupEvents;
4087
+ static fromResponse(response: PresetPermissions, viewType: ViewType, context: Context<ContextState>): PermissionPreset;
4088
+ static default(context: Context<ContextState>, viewType: ViewType): PermissionPreset;
4089
+ static init(context: Context<ContextState>, viewType: ViewType, response?: PresetPermissions): PermissionPreset;
4090
+ readonly mediaRoomType: string;
4091
+ readonly stageEnabled: Readonly<boolean>;
4092
+ readonly acceptStageRequests: Readonly<boolean>;
4093
+ readonly stageAccess: Readonly<MediaProductionPermissionType>;
4094
+ readonly acceptWaitingRequests: Readonly<boolean>;
4095
+ readonly requestProduceVideo: Readonly<boolean>;
4096
+ readonly requestProduceAudio: Readonly<boolean>;
4097
+ readonly requestProduceScreenshare: Readonly<boolean>;
4098
+ readonly canAllowParticipantAudio: Readonly<boolean>;
4099
+ readonly canAllowParticipantScreensharing: Readonly<boolean>;
4100
+ readonly canAllowParticipantVideo: Readonly<boolean>;
4101
+ readonly canDisableParticipantAudio: Readonly<boolean>;
4102
+ readonly canDisableParticipantVideo: Readonly<boolean>;
4103
+ readonly kickParticipant: Readonly<boolean>;
4104
+ readonly pinParticipant: Readonly<boolean>;
4105
+ readonly canRecord: Readonly<boolean>;
4106
+ readonly waitingRoomType: Readonly<WaitingRoomTypes>;
4107
+ readonly waitingRoomBehaviour: Readonly<WaitingRoomTypes>;
4108
+ readonly plugins: Readonly<PresetPermissions['plugins']>;
4109
+ readonly polls: Readonly<PresetPermissions['polls']>;
4110
+ readonly produceVideo: Readonly<MediaProductionPermissionType>;
4111
+ readonly requestProduce: Readonly<boolean>;
4112
+ readonly canProduceVideo: Readonly<MediaProductionPermissionType>;
4113
+ readonly produceScreenshare: Readonly<MediaProductionPermissionType>;
4114
+ readonly canProduceScreenshare: Readonly<MediaProductionPermissionType>;
4115
+ readonly produceAudio: Readonly<MediaProductionPermissionType>;
4116
+ readonly canProduceAudio: Readonly<MediaProductionPermissionType>;
4117
+ readonly chatPublic: Readonly<PresetPermissions['chat']['public']>;
4118
+ readonly chatPrivate: Readonly<PresetPermissions['chat']['private']>;
4119
+ readonly chatChannel: Readonly<PresetPermissions['chat']['channel']>;
4120
+ readonly chatMessage: Readonly<PresetPermissions['chat']['message']>;
4121
+ readonly connectedMeetings: Readonly<PresetPermissions['connectedMeetings']>;
4122
+ readonly hiddenParticipant: Readonly<boolean>;
4123
+ readonly showParticipantList: Readonly<boolean>;
4124
+ readonly canChangeParticipantRole: Readonly<boolean>;
4125
+ readonly canChangeParticipantPermissions: Readonly<boolean>;
4126
+ readonly canChangeTheme: Readonly<boolean>;
4127
+ readonly canPresent: Readonly<boolean>;
4128
+ readonly acceptPresentRequests: Readonly<boolean>;
4129
+ readonly canEditDisplayName: Readonly<boolean>;
4130
+ readonly maxScreenShareCount: Readonly<number>;
4131
+ readonly isRecorder: Readonly<boolean>;
4132
+ readonly canSpotlight: Readonly<boolean>;
4133
+ readonly canLivestream: Readonly<boolean>;
4134
+ readonly transcriptionEnabled: Readonly<boolean>;
4123
4135
  }
4124
- interface FetchResponse<T = any> {
4125
- data: T;
4126
- status: number;
4127
- statusText: string;
4128
- headers: Record<string, string>;
4129
- config: FetchRequestConfig;
4136
+ interface UserDetailsResponseV2 {
4137
+ participant: UserDetailsResponse;
4138
+ preset: PresetV2CamelCased;
4130
4139
  }
4131
- declare class FetchClient {
4132
- defaults: {
4133
- baseURL: string;
4134
- headers: {
4135
- common: Record<string, string>;
4136
- };
4137
- timeout: number;
4138
- retry: number;
4139
- retryDelay: number;
4140
- };
4141
- constructor(options: {
4142
- baseURL: string;
4143
- timeout: number;
4144
- retry: number;
4145
- retryDelay: number;
4146
- responseType?: string;
4147
- });
4148
- request<T = any>(config: FetchRequestConfig): Promise<FetchResponse<T>>;
4149
- get<T = any>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4150
- post<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4151
- put<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4140
+ type LeaveRoomState = 'kicked' | 'ended' | 'left' | 'rejected' | 'connected-meeting' | 'disconnected' | 'failed' | 'stageLeft';
4141
+ declare class SelfController {
4142
+ readonly self: Self;
4143
+ readonly authToken: string;
4144
+ readonly peerId: string;
4145
+ viewType: ViewType;
4146
+ readonly telemetry: Telemetry;
4147
+ readonly logger: Logger;
4148
+ readonly mediaJoined: boolean;
4149
+ private constructor();
4150
+ static init(context: Context<ContextState>, roomSocketHandler: RoomSocketHandler, participant: UserDetailsResponseV2['participant'], permissions: PermissionPreset, theme: ThemePreset): Promise<SelfController>;
4151
+ shareMediaTracks(): Promise<void>;
4152
+ private kickHandler;
4153
+ private waitlistedHandler;
4154
+ private waitlistAcceptHandler;
4155
+ private waitlistRejectedHandler;
4156
+ resetSelf(shouldAutoJoin: boolean): Promise<void>;
4157
+ private setupEvents;
4158
+ joinRoom(reconnected?: boolean): Promise<void>;
4159
+ leaveRoom(state?: LeaveRoomState): Promise<void>;
4160
+ private joinMediaRoom;
4161
+ private leaveMediaRoom;
4162
+ private cleanupSelf;
4152
4163
  }
4153
4164
  type LivestreamState = 'IDLE' | 'STARTING' | 'WAITING_ON_MANUAL_INGESTION' | 'LIVESTREAMING' | 'STOPPING';
4154
4165
  type LivestreamEvents = {
@@ -4169,59 +4180,60 @@ type LivestreamResponse = {
4169
4180
  manualIngest: boolean;
4170
4181
  ingestionCredentials?: LivestreamIngestionCredentials;
4171
4182
  };
4172
- declare class RTKLivestream$1 extends RTKTypedEventEmitter<LivestreamEvents> {
4173
- state: LivestreamState;
4174
- playbackUrl: string | undefined;
4175
- ingestionCredentials: LivestreamIngestionCredentials;
4176
- viewerCount: number;
4177
- readonly telemetry: RTKTelemetry;
4178
- constructor(context: Context<RTKContextState>, self: RTKSelf);
4179
- setLivestreamState(livestreamState: LivestreamState): void;
4180
- start(livestreamConfig?: StartLivestreamConfig): Promise<void>;
4181
- stop(): Promise<void>;
4183
+ declare class Livestream extends TypedEventEmitter$1<LivestreamEvents> {
4184
+ state: LivestreamState;
4185
+ playbackUrl: string | undefined;
4186
+ ingestionCredentials: LivestreamIngestionCredentials;
4187
+ viewerCount: number;
4188
+ readonly telemetry: Telemetry;
4189
+ constructor(context: Context<ContextState>, self: Self);
4190
+ setLivestreamState(livestreamState: LivestreamState): void;
4191
+ private emitCurrentLivestreamState;
4192
+ start(livestreamConfig?: StartLivestreamConfig): Promise<void>;
4193
+ stop(): Promise<void>;
4182
4194
  }
4183
4195
  type PluginSocketMessage = DisablePluginResponse | EnablePluginResponse | PluginEventResponse | PluginStoreResponse | SendChatMessageToPeersResponse | SendChatMessageToRoomResponse;
4184
- declare class PluginSocketHandler {
4185
- constructor(context: Context<RTKContextState>, socketService: SocketService);
4186
- readonly logger: RTKLogger$1;
4187
- addPlugin(pluginId: string, staggered: boolean): void;
4188
- removePlugin(pluginId: string): void;
4189
- getActivePlugins(): Promise<EnablePluginsResponse>;
4190
- customPluginEventToRoom(pluginId: string, data: any, messageId?: string): void;
4191
- customPluginEventToPeers(pluginId: string, peerIds: string[], data: any, messageId?: string): void;
4192
- enablePluginForRoom(pluginId: string, messageId?: string): void;
4193
- enablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4194
- disablePluginForRoom(pluginId: string, messageId?: string): void;
4195
- disablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4196
- storeInsertKeys(pluginId: string, store: string, insertKeys: {
4197
- key: string;
4198
- payload?: any;
4199
- }[], messageId?: string): void;
4200
- storeGetKeys(pluginId: string, store: string, getKeys: {
4201
- key: string;
4202
- }[], messageId?: string): void;
4203
- storeDeleteKeys(pluginId: string, store: string, deleteKeys: {
4204
- key: string;
4205
- }[], messageId?: string): void;
4206
- storeDelete(pluginId: string, store: string, messageId?: string): void;
4207
- getPluginDataOld(pluginId: string, store: string): void;
4208
- storePluginDataOld(pluginId: string, store: string, data: any): void;
4209
- on(event: number, handler: (socketMessage: PluginSocketMessage, messageId?: string) => void): void;
4210
- }
4211
- interface RTKPluginResponse {
4212
- baseURL: string;
4213
- createdAt: string;
4214
- description: string;
4215
- id: string;
4216
- name: string;
4217
- organizationId: string;
4218
- picture: string;
4219
- private: boolean;
4220
- published: boolean;
4221
- staggered: boolean;
4222
- tags: string[];
4223
- type: string;
4224
- updatedAt: string;
4196
+ declare class PluginSocketHandler {
4197
+ constructor(context: Context<ContextState>, socketService: SocketService);
4198
+ readonly logger: Logger;
4199
+ addPlugin(pluginId: string, staggered: boolean): void;
4200
+ removePlugin(pluginId: string): void;
4201
+ getActivePlugins(): Promise<EnablePluginsResponse>;
4202
+ customPluginEventToRoom(pluginId: string, data: any, messageId?: string): void;
4203
+ customPluginEventToPeers(pluginId: string, peerIds: string[], data: any, messageId?: string): void;
4204
+ enablePluginForRoom(pluginId: string, messageId?: string): void;
4205
+ enablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4206
+ disablePluginForRoom(pluginId: string, messageId?: string): void;
4207
+ disablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4208
+ storeInsertKeys(pluginId: string, store: string, insertKeys: {
4209
+ key: string;
4210
+ payload?: any;
4211
+ }[], messageId?: string): void;
4212
+ storeGetKeys(pluginId: string, store: string, getKeys: {
4213
+ key: string;
4214
+ }[], messageId?: string): void;
4215
+ storeDeleteKeys(pluginId: string, store: string, deleteKeys: {
4216
+ key: string;
4217
+ }[], messageId?: string): void;
4218
+ storeDelete(pluginId: string, store: string, messageId?: string): void;
4219
+ getPluginDataOld(pluginId: string, store: string): void;
4220
+ storePluginDataOld(pluginId: string, store: string, data: any): void;
4221
+ on(event: number, handler: (socketMessage: PluginSocketMessage, messageId?: string) => void): void;
4222
+ }
4223
+ interface PluginResponse {
4224
+ baseURL: string;
4225
+ createdAt: string;
4226
+ description: string;
4227
+ id: string;
4228
+ name: string;
4229
+ organizationId: string;
4230
+ picture: string;
4231
+ private: boolean;
4232
+ published: boolean;
4233
+ staggered: boolean;
4234
+ tags: string[];
4235
+ type: string;
4236
+ updatedAt: string;
4225
4237
  }
4226
4238
  interface PluginViews {
4227
4239
  [viewId: string]: {
@@ -4290,39 +4302,41 @@ type _string = string & {
4290
4302
  _?: any;
4291
4303
  };
4292
4304
  type PluginEvents$1 = keyof typeof PluginEventKeys | _string;
4293
- declare class RTKPlugin$1 extends RTKEventEmitter<PluginEvents$1> {
4294
- readonly baseURL: string;
4295
- readonly createdAt: Date;
4296
- readonly description: string;
4297
- readonly id: string;
4298
- readonly name: string;
4299
- readonly organizationId: string;
4300
- readonly picture: string;
4301
- readonly private: boolean;
4302
- readonly published: boolean;
4303
- readonly staggered: boolean;
4304
- readonly tags: string[];
4305
- readonly type: string;
4306
- readonly updatedAt: Date;
4307
- config?: PluginConfig;
4308
- active: boolean;
4309
- iframes: Map<string, {
4310
- iframe: HTMLIFrameElement | ReactNativeWebView;
4311
- listener?: (message: MessageEvent) => void;
4312
- }>;
4313
- enabledBy: string;
4314
- readonly telemetry: RTKTelemetry;
4315
- constructor(context: Context<RTKContextState>, { baseURL, createdAt, description, id, name, organizationId, picture, private: isPrivate, published, staggered, tags, type, updatedAt, }: RTKPluginResponse, pluginSocketHandler: PluginSocketHandler, self: RTKSelf$1, participants: RTKParticipants$1, chat: Readonly<RTKChat$1>, meetingTitle: string);
4316
- sendIframeEvent(message: PluginIframeMessage): void;
4317
- sendData(payload: SendDataOptions): void;
4318
- removePluginView(viewId?: string): void;
4319
- addPluginView(iframe: HTMLIFrameElement | ReactNativeWebView, viewId?: string): void;
4320
- activateForSelf(): Promise<void>;
4321
- deactivateForSelf(): void;
4322
- enable(): Promise<void>;
4323
- disable(): void;
4324
- activate(): Promise<void>;
4325
- deactivate(): Promise<void>;
4305
+ declare class Plugin extends CustomEventEmitter<PluginEvents$1> {
4306
+ readonly baseURL: string;
4307
+ readonly createdAt: Date;
4308
+ readonly description: string;
4309
+ readonly id: string;
4310
+ readonly name: string;
4311
+ readonly organizationId: string;
4312
+ readonly picture: string;
4313
+ readonly private: boolean;
4314
+ readonly published: boolean;
4315
+ readonly staggered: boolean;
4316
+ readonly tags: string[];
4317
+ readonly type: string;
4318
+ readonly updatedAt: Date;
4319
+ config?: PluginConfig;
4320
+ active: boolean;
4321
+ iframes: Map<string, {
4322
+ iframe: HTMLIFrameElement | ReactNativeWebView;
4323
+ listener?: (message: MessageEvent) => void;
4324
+ }>;
4325
+ enabledBy: string;
4326
+ readonly telemetry: Telemetry;
4327
+ constructor(context: Context<ContextState>, { baseURL, createdAt, description, id, name, organizationId, picture, private: isPrivate, published, staggered, tags, type, updatedAt, }: PluginResponse, pluginSocketHandler: PluginSocketHandler, self: Self, participants: Participants, chat: Readonly<Chat>, meetingTitle: string);
4328
+ sendIframeEvent(message: PluginIframeMessage): void;
4329
+ private handleIframeMessage;
4330
+ sendData(payload: SendDataOptions): void;
4331
+ removePluginView(viewId?: string): void;
4332
+ addPluginView(iframe: HTMLIFrameElement | ReactNativeWebView, viewId?: string): void;
4333
+ private setActive;
4334
+ activateForSelf(): Promise<void>;
4335
+ deactivateForSelf(): void;
4336
+ enable(): Promise<void>;
4337
+ disable(): void;
4338
+ activate(): Promise<void>;
4339
+ deactivate(): Promise<void>;
4326
4340
  }
4327
4341
  interface RecordingConfig {
4328
4342
  fileNamePrefix?: string;
@@ -4337,34 +4351,34 @@ interface ReactNativeFile {
4337
4351
  name: string;
4338
4352
  type: string;
4339
4353
  }
4340
- declare class APIClient extends API {
4341
- telemetry: RTKTelemetry;
4342
- constructor(context: Context<RTKContextState>, options?: APIOptions);
4343
- getIPDetails(): Promise<any>;
4344
- getICEServers(): Promise<any>;
4345
- getPlugins(): Promise<any[]>;
4346
- getPluginDetails(pluginId: string): Promise<RTKPluginResponse>;
4347
- getPluginConfig(pluginBaseUrl: string): Promise<PluginConfig>;
4348
- authorizePlugin(pluginId: string): Promise<string>;
4349
- getPresignedUrls(filename: string, viewType: string): Promise<{
4350
- getLocation: any;
4351
- putLocation: any;
4352
- }>;
4353
- uploadFile(file: File | ReactNativeFile, url: string): Promise<void>;
4354
- startLivestreaming({ manualIngestion, }: StartLivestreamConfig): Promise<LivestreamResponse>;
4355
- stopLivestreaming(): Promise<FetchResponse<any>>;
4356
- getActiveLivestream(): Promise<LivestreamResponse>;
4357
- getUserDetails(): Promise<UserDetailsResponseV2>;
4358
- startRecording(config: RecordingConfig, allowMultiple?: boolean): Promise<string>;
4359
- updateRecording(recordingId: string, action: 'stop' | 'pause' | 'resume'): Promise<FetchResponse<any>>;
4360
- getActiveRecording(): Promise<{
4361
- status: string;
4362
- id: string;
4363
- }>;
4364
- getActiveTranscript(): Promise<{
4365
- transcript: string;
4366
- }>;
4367
- getRoomNodeData(): Promise<RoomDetails>;
4354
+ declare class APIClient extends API {
4355
+ telemetry: Telemetry;
4356
+ constructor(context: Context<ContextState>, options?: APIOptions);
4357
+ getIPDetails(): Promise<any>;
4358
+ getICEServers(): Promise<any>;
4359
+ getPlugins(): Promise<any[]>;
4360
+ getPluginDetails(pluginId: string): Promise<PluginResponse>;
4361
+ getPluginConfig(pluginBaseUrl: string): Promise<PluginConfig>;
4362
+ authorizePlugin(pluginId: string): Promise<string>;
4363
+ getPresignedUrls(filename: string, viewType: string): Promise<{
4364
+ getLocation: any;
4365
+ putLocation: any;
4366
+ }>;
4367
+ uploadFile(file: File | ReactNativeFile, url: string): Promise<void>;
4368
+ startLivestreaming({ manualIngestion, }: StartLivestreamConfig): Promise<LivestreamResponse>;
4369
+ stopLivestreaming(): Promise<FetchResponse<any>>;
4370
+ getActiveLivestream(): Promise<LivestreamResponse>;
4371
+ getUserDetails(): Promise<UserDetailsResponseV2>;
4372
+ startRecording(config: RecordingConfig, allowMultiple?: boolean): Promise<string>;
4373
+ updateRecording(recordingId: string, action: 'stop' | 'pause' | 'resume'): Promise<FetchResponse<any>>;
4374
+ getActiveRecording(): Promise<{
4375
+ status: string;
4376
+ id: string;
4377
+ }>;
4378
+ getActiveTranscript(): Promise<{
4379
+ transcript: string;
4380
+ }>;
4381
+ getRoomNodeData(): Promise<RoomDetails>;
4368
4382
  }
4369
4383
  declare enum MessageType {
4370
4384
  text = "text",
@@ -4462,62 +4476,66 @@ type ChatEvents = {
4462
4476
  ['channelUpdate']: (channel?: ChatChannel) => void;
4463
4477
  ['*']: (event: string, ...args: any[]) => void;
4464
4478
  };
4465
- declare class RTKChat$1 extends RTKTypedEventEmitter<ChatEvents> {
4466
- messages: Message[];
4467
- channels: ChatChannel[];
4468
- maxTextLimit: number;
4469
- readonly telemetry: RTKTelemetry;
4470
- setMaxTextLimit(limit: number): void;
4471
- constructor(context: Context<RTKContextState>, chatSocketHandler: ChatSocketHandler, chatChannelSocketHandler: ChatChannelSocketHandler, self: RTKSelf$1, participants: RTKParticipants$1);
4472
- readonly rateLimits: {
4473
- maxInvocations: number;
4474
- period: number;
4475
- };
4476
- updateRateLimits(num: number, period: number): void;
4477
- sendTextMessage(message: string, peerIds?: string[]): Promise<void>;
4478
- sendCustomMessage(message: CustomMessagePayload, peerIds?: string[]): Promise<void>;
4479
- sendImageMessage(image: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4480
- sendFileMessage(file: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4481
- sendMessage(message: MessagePayload, participantIds?: string[]): Promise<void>;
4482
- editTextMessage(messageId: string, message: string, channelId?: string): Promise<void>;
4483
- editImageMessage(messageId: string, image: File | ReactNativeFile, channelId?: string): Promise<void>;
4484
- editFileMessage(messageId: string, file: File | ReactNativeFile, channelId?: string): Promise<void>;
4485
- editMessage(messageId: string, message: MessagePayload, channelId?: string): Promise<void>;
4486
- deleteMessage(messageId: string, channelId?: string): Promise<void>;
4487
- getMessagesByUser(userId: string): Message[];
4488
- getMessagesByType(type: keyof typeof MessageType): Message[];
4489
- pin(id: string): Promise<void>;
4490
- unpin(id: string): Promise<void>;
4491
- getMessages(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<{
4492
- messages: Message[];
4493
- next: boolean;
4494
- }>;
4495
- createChannel(channelName: string, memberIds: string[], options?: {
4496
- displayPictureUrl?: string;
4497
- visibility?: string;
4498
- isDirectMessage?: boolean;
4499
- }): Promise<ChatChannel>;
4500
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
4501
- sendMessageToChannel(message: MessagePayload, channelId: string, options?: {
4502
- replyTo?: Message;
4503
- }): Promise<void>;
4504
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
4505
- searchMessages(query: string, filters?: SearchFilters): Promise<Message[]>;
4506
- markLastReadMessage(channelId: string, message: Message): Promise<void>;
4507
- readonly pinned: Message[];
4508
- }
4509
- declare class PollSocketHandler {
4510
- readonly logger: RTKLogger$1;
4511
- readonly telemetry: RTKTelemetry;
4512
- constructor(context: Context<RTKContextState>, socketService: SocketService);
4513
- getPolls(): Promise<{
4514
- id: string;
4515
- payload: Uint8Array;
4516
- }>;
4517
- createPoll(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): boolean;
4518
- votePoll(id: string, index: number): boolean;
4519
- on(event: number, handler: (message: UpdatePollResponse) => void): void;
4520
- removeListeners(event: number): void;
4479
+ declare class Chat extends TypedEventEmitter$1<ChatEvents> {
4480
+ messages: Message[];
4481
+ channels: ChatChannel[];
4482
+ maxTextLimit: number;
4483
+ readonly telemetry: Telemetry;
4484
+ setMaxTextLimit(limit: number): void;
4485
+ constructor(context: Context<ContextState>, chatSocketHandler: ChatSocketHandler, chatChannelSocketHandler: ChatChannelSocketHandler, self: Self, participants: Participants);
4486
+ private sendMessageInternal;
4487
+ private sendTextMessageInternal;
4488
+ private sendImageMessageInternal;
4489
+ private sendFileMessageInternal;
4490
+ readonly rateLimits: {
4491
+ maxInvocations: number;
4492
+ period: number;
4493
+ };
4494
+ updateRateLimits(num: number, period: number): void;
4495
+ sendTextMessage(message: string, peerIds?: string[]): Promise<void>;
4496
+ sendCustomMessage(message: CustomMessagePayload, peerIds?: string[]): Promise<void>;
4497
+ sendImageMessage(image: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4498
+ sendFileMessage(file: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4499
+ sendMessage(message: MessagePayload, participantIds?: string[]): Promise<void>;
4500
+ editTextMessage(messageId: string, message: string, channelId?: string): Promise<void>;
4501
+ editImageMessage(messageId: string, image: File | ReactNativeFile, channelId?: string): Promise<void>;
4502
+ editFileMessage(messageId: string, file: File | ReactNativeFile, channelId?: string): Promise<void>;
4503
+ editMessage(messageId: string, message: MessagePayload, channelId?: string): Promise<void>;
4504
+ deleteMessage(messageId: string, channelId?: string): Promise<void>;
4505
+ getMessagesByUser(userId: string): Message[];
4506
+ getMessagesByType(type: keyof typeof MessageType): Message[];
4507
+ pin(id: string): Promise<void>;
4508
+ unpin(id: string): Promise<void>;
4509
+ getMessages(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<{
4510
+ messages: Message[];
4511
+ next: boolean;
4512
+ }>;
4513
+ createChannel(channelName: string, memberIds: string[], options?: {
4514
+ displayPictureUrl?: string;
4515
+ visibility?: string;
4516
+ isDirectMessage?: boolean;
4517
+ }): Promise<ChatChannel>;
4518
+ updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
4519
+ sendMessageToChannel(message: MessagePayload, channelId: string, options?: {
4520
+ replyTo?: Message;
4521
+ }): Promise<void>;
4522
+ getChannelMembers(channelId: string): Promise<BasicParticipant[]>;
4523
+ searchMessages(query: string, filters?: SearchFilters): Promise<Message[]>;
4524
+ markLastReadMessage(channelId: string, message: Message): Promise<void>;
4525
+ readonly pinned: Message[];
4526
+ }
4527
+ declare class PollSocketHandler {
4528
+ readonly logger: Logger;
4529
+ readonly telemetry: Telemetry;
4530
+ constructor(context: Context<ContextState>, socketService: SocketService);
4531
+ getPolls(): Promise<{
4532
+ id: string;
4533
+ payload: Uint8Array;
4534
+ }>;
4535
+ createPoll(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): boolean;
4536
+ votePoll(id: string, index: number): boolean;
4537
+ on(event: number, handler: (message: UpdatePollResponse) => void): void;
4538
+ removeListeners(event: number): void;
4521
4539
  }
4522
4540
  interface PollOption {
4523
4541
  text: string;
@@ -4544,15 +4562,15 @@ type PollsEvents = {
4544
4562
  }) => void;
4545
4563
  ['*']: (eventName: string, ...args: any[]) => void;
4546
4564
  };
4547
- declare class RTKPolls$1 extends RTKTypedEventEmitter<PollsEvents> {
4548
- items: Poll[];
4549
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, pollSocketHandler: PollSocketHandler);
4550
- create(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): Promise<void>;
4551
- vote(id: string, index: number): Promise<void>;
4552
- }
4553
- type PluginMapEvents = {
4554
- ['pluginAdded']: (plugin: RTKPlugin$1) => void;
4555
- ['pluginDeleted']: (plugin: RTKPlugin$1) => void;
4565
+ declare class Polls extends TypedEventEmitter$1<PollsEvents> {
4566
+ items: Poll[];
4567
+ constructor(context: Context<ContextState>, self: Self, pollSocketHandler: PollSocketHandler);
4568
+ create(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): Promise<void>;
4569
+ vote(id: string, index: number): Promise<void>;
4570
+ }
4571
+ type PluginMapEvents = {
4572
+ ['pluginAdded']: (plugin: Plugin) => void;
4573
+ ['pluginDeleted']: (plugin: Plugin) => void;
4556
4574
  };
4557
4575
  type PluginEvents = {
4558
4576
  ['stateUpdate']: (payload: {
@@ -4567,15 +4585,87 @@ type PluginEvents = {
4567
4585
  ['enabled']: () => void;
4568
4586
  ['*']: (eventName: string, ...args: any[]) => void;
4569
4587
  };
4570
- declare class RTKPluginMap$1<T extends RTKPlugin$1 = RTKPlugin$1> extends RTKMap<PluginEvents, T, PluginMapEvents> {
4571
- constructor(logger: RTKLogger$1);
4572
- add(plugin: T, emitEvent?: boolean): this;
4573
- delete(pluginId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
4574
- }
4575
- declare class RTKPlugins$1 {
4576
- readonly all: RTKPluginMap$1;
4577
- readonly active: RTKPluginMap$1;
4578
- constructor(logger: RTKLogger);
4588
+ declare class PluginMap<T extends Plugin = Plugin> extends ClientMap<PluginEvents, T, PluginMapEvents> {
4589
+ constructor(logger: Logger);
4590
+ add(plugin: T, emitEvent?: boolean): this;
4591
+ delete(pluginId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
4592
+ }
4593
+ declare class Plugins {
4594
+ readonly all: PluginMap;
4595
+ readonly active: PluginMap;
4596
+ constructor(logger: Logger);
4597
+ }
4598
+ declare class SelfMedia extends TypedEventEmitter$1<SelfEvents> {
4599
+ protected localMediaHandler: LocalMediaHandler;
4600
+ protected updatePermission(): Promise<void>;
4601
+ protected populateMediaPermissionsInCallstats({ message, kind, }: {
4602
+ message: keyof typeof MediaPermission;
4603
+ kind: 'audio' | 'video' | 'screenshare';
4604
+ }): Promise<void>;
4605
+ readonly peerId: string;
4606
+ init(options?: {
4607
+ video?: boolean;
4608
+ audio?: boolean;
4609
+ constraints?: MediaConstraints;
4610
+ }, skipAwaits?: boolean, context?: Context<ContextState>): Promise<void>;
4611
+ context: Context<ContextState>;
4612
+ readonly audioTrack: MediaStreamTrack;
4613
+ readonly rawAudioTrack: MediaStreamTrack;
4614
+ readonly mediaPermissions: {
4615
+ audio?: MediaPermission$1;
4616
+ video?: MediaPermission$1;
4617
+ screenshare?: MediaPermission$1;
4618
+ };
4619
+ addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
4620
+ success: boolean;
4621
+ message: string;
4622
+ }>;
4623
+ removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
4624
+ success: boolean;
4625
+ message: string;
4626
+ }>;
4627
+ removeAllAudioMiddlewares(): Promise<{
4628
+ success: boolean;
4629
+ message: string;
4630
+ }>;
4631
+ readonly videoTrack: MediaStreamTrack;
4632
+ readonly rawVideoTrack: MediaStreamTrack;
4633
+ addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
4634
+ success: boolean;
4635
+ message: string;
4636
+ }>;
4637
+ setVideoMiddlewareGlobalConfig(config?: VideoMiddlewareGlobalConfig): Promise<void>;
4638
+ removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
4639
+ success: boolean;
4640
+ message: string;
4641
+ }>;
4642
+ removeAllVideoMiddlewares(): Promise<{
4643
+ success: boolean;
4644
+ message: string;
4645
+ }>;
4646
+ readonly screenShareTracks: {
4647
+ audio: MediaStreamTrack;
4648
+ video: MediaStreamTrack;
4649
+ };
4650
+ readonly audioEnabled: boolean;
4651
+ readonly videoEnabled: boolean;
4652
+ readonly screenShareEnabled: boolean;
4653
+ enableAudio(): Promise<void>;
4654
+ enableVideo(): Promise<void>;
4655
+ disableAudio(): Promise<void>;
4656
+ enableScreenShare(): Promise<void>;
4657
+ disableScreenShare(): Promise<void>;
4658
+ disableVideo(): Promise<void>;
4659
+ getCurrentDevices(): {
4660
+ audio: MediaDeviceInfo;
4661
+ video: MediaDeviceInfo;
4662
+ speaker: MediaDeviceInfo;
4663
+ };
4664
+ getAudioDevices(): Promise<MediaDeviceInfo[]>;
4665
+ getVideoDevices(): Promise<MediaDeviceInfo[]>;
4666
+ getSpeakerDevices(): Promise<MediaDeviceInfo[]>;
4667
+ getDeviceById(deviceId: string, kind: 'audio' | 'video' | 'speaker'): Promise<MediaDeviceInfo>;
4668
+ setDevice(device: MediaDeviceInfo): Promise<void>;
4579
4669
  }
4580
4670
  type RecordingState = 'IDLE' | 'STARTING' | 'RECORDING' | 'PAUSED' | 'STOPPING';
4581
4671
  type RecordingType = 'BROWSER' | 'TRACK' | 'COMPOSITE';
@@ -4588,19 +4678,19 @@ type RecordingEvents = {
4588
4678
  ['recordingUpdate']: (state: RecordingState) => void;
4589
4679
  ['*']: (eventName: string, ...args: any[]) => void;
4590
4680
  };
4591
- declare class RTKRecording$1 extends RTKTypedEventEmitter<RecordingEvents> {
4592
- recordingPeerIds: string[];
4593
- readonly recordingState: RecordingState;
4594
- recordings: RecordingInfo[];
4595
- constructor(context: Context<RTKContextState>, self: RTKSelf);
4596
- readonly telemetry: RTKTelemetry;
4597
- updateRecordings(recordings: RecordingInfo[]): void;
4598
- start(opts?: {
4599
- allowMultiple: boolean;
4600
- }): Promise<void>;
4601
- stop(recordingId?: string): Promise<void>;
4602
- pause(recordingId?: string): Promise<void>;
4603
- resume(recordingId?: string): Promise<void>;
4681
+ declare class Recording extends TypedEventEmitter$1<RecordingEvents> {
4682
+ recordingPeerIds: string[];
4683
+ readonly recordingState: RecordingState;
4684
+ recordings: RecordingInfo[];
4685
+ constructor(context: Context<ContextState>, self: Self);
4686
+ readonly telemetry: Telemetry;
4687
+ updateRecordings(recordings: RecordingInfo[]): void;
4688
+ start(opts?: {
4689
+ allowMultiple: boolean;
4690
+ }): Promise<void>;
4691
+ stop(recordingId?: string): Promise<void>;
4692
+ pause(recordingId?: string): Promise<void>;
4693
+ resume(recordingId?: string): Promise<void>;
4604
4694
  }
4605
4695
  declare class BrowserDetection {
4606
4696
  _bowser: any;
@@ -4659,70 +4749,76 @@ declare class BrowserCapabilities extends BrowserDetection {
4659
4749
  _getChromiumBasedVersion(): number;
4660
4750
  isIOSMobile(): boolean;
4661
4751
  }
4662
- declare class RTKFeatures {
4663
- constructor(context: Context<RTKContextState>);
4664
- hasFeature(featureName: string): boolean;
4665
- getFeatureValue(featureName: string): _dyteinternals_utils.RTKFlagValues;
4666
- getAllFeatures(): {
4667
- [x: string]: _dyteinternals_utils.RTKFlagsEntry;
4668
- };
4669
- }
4670
- declare class RTKInternals {
4671
- logger: RTKLogger$1;
4672
- features: RTKFeatures;
4673
- browserSpecs: BrowserCapabilities;
4674
- callStats: InhouseCallStats;
4675
- constructor(logger: RTKLogger$1, features: RTKFeatures, callStats: InhouseCallStats);
4676
- static init(context: Context<RTKContextState>): RTKInternals;
4752
+ declare class Features {
4753
+ constructor(context: Context<ContextState>);
4754
+ hasFeature(featureName: string): boolean;
4755
+ getFeatureValue(featureName: string): _dyteinternals_utils.DyteFlagValues;
4756
+ getAllFeatures(): {
4757
+ [x: string]: _dyteinternals_utils.DyteFlagsEntry;
4758
+ };
4759
+ }
4760
+ declare class Internals {
4761
+ logger: Logger;
4762
+ features: Features;
4763
+ browserSpecs: BrowserCapabilities;
4764
+ callStats: InhouseCallStats;
4765
+ constructor(logger: Logger, features: Features, callStats: InhouseCallStats);
4766
+ static init(context: Context<ContextState>): Internals;
4677
4767
  }
4678
4768
  type StoreData = {
4679
4769
  [type: string]: any;
4680
4770
  };
4681
- declare class RTKStore$1 {
4682
- name: string;
4683
- rateLimitConfig: {
4684
- maxInvocations: number;
4685
- period: number;
4686
- };
4687
- bulkRateLimitConfig: {
4688
- maxInvocations: number;
4689
- period: number;
4690
- };
4691
- constructor({ name, socketHandler, meetingId }: {
4692
- name: string;
4693
- socketHandler: PluginSocketHandler;
4694
- meetingId: string;
4695
- });
4696
- set(key: string, value: any, sync?: boolean, emit?: boolean): Promise<void>;
4697
- bulkSet(data: {
4698
- key: string;
4699
- payload: any;
4700
- }[]): Promise<void>;
4701
- update(key: string, value: any, sync?: boolean): Promise<void>;
4702
- delete(key: string, sync?: boolean, emit?: boolean): Promise<void>;
4703
- bulkDelete(data: {
4704
- key: string;
4705
- }[]): Promise<void>;
4706
- get(key: string): any;
4707
- getAll(): StoreData;
4708
- readonly rateLimits: {
4709
- maxInvocations: number;
4710
- period: number;
4711
- };
4712
- updateRateLimits(num: number, period: number): void;
4713
- readonly bulkRateLimits: {
4714
- maxInvocations: number;
4715
- period: number;
4716
- };
4717
- updateBulkRateLimits(num: number, period: number): void;
4718
- subscribe(key: string | '*', cb: (value: any) => any): void;
4719
- unsubscribe(key: string | '*', cb?: (value: any) => any): void;
4720
- populate(data: StoreData): void;
4721
- }
4722
- declare class RTKStoreManager {
4723
- stores: Map<String, RTKStore$1>;
4724
- constructor(context: Context<RTKContextState>, handler: PluginSocketHandler);
4725
- create(name: string): Promise<RTKStore$1>;
4771
+ type RateLimitConfig = {
4772
+ maxInvocations: number;
4773
+ period: number;
4774
+ };
4775
+ declare class Store {
4776
+ name: string;
4777
+ rateLimitConfig: {
4778
+ maxInvocations: number;
4779
+ period: number;
4780
+ };
4781
+ bulkRateLimitConfig: {
4782
+ maxInvocations: number;
4783
+ period: number;
4784
+ };
4785
+ private listeners;
4786
+ constructor({ name, socketHandler, meetingId }: {
4787
+ name: string;
4788
+ socketHandler: PluginSocketHandler;
4789
+ meetingId: string;
4790
+ });
4791
+ set(key: string, value: any, sync?: boolean, emit?: boolean): Promise<void>;
4792
+ private remoteSet;
4793
+ bulkSet(data: {
4794
+ key: string;
4795
+ payload: any;
4796
+ }[]): Promise<void>;
4797
+ update(key: string, value: any, sync?: boolean): Promise<void>;
4798
+ delete(key: string, sync?: boolean, emit?: boolean): Promise<void>;
4799
+ bulkDelete(data: {
4800
+ key: string;
4801
+ }[]): Promise<void>;
4802
+ get(key: string): any;
4803
+ getAll(): StoreData;
4804
+ readonly rateLimits: {
4805
+ maxInvocations: number;
4806
+ period: number;
4807
+ };
4808
+ updateRateLimits(num: number, period: number): void;
4809
+ readonly bulkRateLimits: {
4810
+ maxInvocations: number;
4811
+ period: number;
4812
+ };
4813
+ updateBulkRateLimits(num: number, period: number): void;
4814
+ subscribe(key: string | '*', cb: (value: any) => any): void;
4815
+ unsubscribe(key: string | '*', cb?: (value: any) => any): void;
4816
+ populate(data: StoreData): void;
4817
+ }
4818
+ declare class StoreManager {
4819
+ stores: Map<String, Store>;
4820
+ constructor(context: Context<ContextState>, handler: PluginSocketHandler);
4821
+ create(name: string): Promise<Store>;
4726
4822
  }
4727
4823
  declare const enum PRODUCERS_TYPE {
4728
4824
  WEBCAM = "webcam",
@@ -4745,67 +4841,67 @@ interface MediaNodeClientOptions {
4745
4841
  peerId: string;
4746
4842
  socket: SocketService;
4747
4843
  }
4748
- declare class MediaNodeClient {
4749
- readonly context: Context<RTKContextState>;
4750
- readonly authToken: string;
4751
- readonly e2ee: boolean;
4752
- readonly peerId: string;
4753
- readonly telemetry: RTKTelemetry;
4754
- readonly logger: RTKLogger$1;
4755
- constructor(context: Context<RTKContextState>, options: MediaNodeClientOptions);
4756
- mediaJoined: boolean;
4757
- reset(): void;
4758
- joinRoom(displayName: string, roomUuid: string, forceFullReset?: boolean, rejoining?: boolean, permissions?: MediaPermissions): Promise<{
4759
- roomJoined: boolean;
4760
- }>;
4761
- initializeConnection(displayName: string, roomUuid: string, rejoining?: boolean, permissions?: MediaPermissions): Promise<void>;
4762
- getConsumers(): Map<string, Consumer>;
4763
- getProducers(): Map<string, Producer>;
4764
- leaveRoom(): Promise<void>;
4765
- activatePeers(producers: ProducerState[]): Promise<void>;
4766
- createConsumers(producers: ProducerState[]): Promise<void>;
4767
- closeConsumers(producers: ProducerState[]): Promise<void>;
4768
- _shareWebcam(videoTrack: MediaStreamTrack & {
4769
- originalSettings?: {
4770
- width: number;
4771
- };
4772
- }, codec: VideoCodec): Promise<MediaStreamTrack>;
4773
- shareWebcam(videoTrack: MediaStreamTrack): Promise<MediaStreamTrack | null>;
4774
- shareScreen(tracks: {
4775
- video?: MediaStreamTrack;
4776
- audio?: MediaStreamTrack;
4777
- }): Promise<void>;
4778
- shareMic(audioTrack: MediaStreamTrack): Promise<void>;
4779
- pauseMic(): Promise<void>;
4780
- pauseWebcam(): Promise<void>;
4781
- resumeMic(): Promise<void>;
4782
- resumeWebcam(producerType?: PRODUCERS_TYPE): Promise<void>;
4783
- disableWebcam(codec: VideoCodec): Promise<void>;
4784
- disableMic(): Promise<void>;
4785
- disableScreenShare(): Promise<void>;
4786
- muteSelf(): Promise<void>;
4787
- unmuteSelf(): Promise<void>;
4788
- resetVideoProducers(videoTrack: MediaStreamTrack, screenShareTrack?: MediaStreamTrack): Promise<void>;
4789
- changeDisplayName(displayName: string, peerId?: string): Promise<void>;
4790
- kick(peerId: string): void;
4791
- kickAll(): void;
4792
- muteAll(_allowUnMute: boolean): Promise<void>;
4793
- muteAllVideo(): Promise<void>;
4794
- disableAudio(peerId: string): Promise<void>;
4795
- disableVideo(peerId: string): Promise<void>;
4796
- pinPeer(peerId: string | null): Promise<void>;
4797
- validateScreenShare(payload: {
4798
- peerId: string;
4799
- consumerId: string;
4800
- screenShare: boolean;
4801
- producerId: string;
4802
- consumerPeerId: string;
4803
- }): number;
4804
- switchConsumersToLayer(consumerIds: string[], layer: number): Promise<void>;
4805
- handleSocketEvents(): Promise<void>;
4806
- handleCallstatsEvents(): void;
4807
- handlePeerCapabilities(peerId: string, capabilities: PeerRtpCapabilitites): void;
4808
- handlePeerLeaving(peerId: string): void;
4844
+ declare class MediaNodeClient {
4845
+ readonly context: Context<ContextState>;
4846
+ readonly authToken: string;
4847
+ readonly e2ee: boolean;
4848
+ readonly peerId: string;
4849
+ readonly telemetry: Telemetry;
4850
+ readonly logger: Logger;
4851
+ constructor(context: Context<ContextState>, options: MediaNodeClientOptions);
4852
+ mediaJoined: boolean;
4853
+ reset(): void;
4854
+ joinRoom(displayName: string, roomUuid: string, forceFullReset?: boolean, rejoining?: boolean, permissions?: MediaPermissions): Promise<{
4855
+ roomJoined: boolean;
4856
+ }>;
4857
+ initializeConnection(displayName: string, roomUuid: string, rejoining?: boolean, permissions?: MediaPermissions): Promise<void>;
4858
+ getConsumers(): Map<string, Consumer>;
4859
+ getProducers(): Map<string, Producer>;
4860
+ leaveRoom(): Promise<void>;
4861
+ activatePeers(producers: ProducerState[]): Promise<void>;
4862
+ createConsumers(producers: ProducerState[]): Promise<void>;
4863
+ closeConsumers(producers: ProducerState[]): Promise<void>;
4864
+ _shareWebcam(videoTrack: MediaStreamTrack & {
4865
+ originalSettings?: {
4866
+ width: number;
4867
+ };
4868
+ }, codec: VideoCodec): Promise<MediaStreamTrack>;
4869
+ shareWebcam(videoTrack: MediaStreamTrack): Promise<MediaStreamTrack | null>;
4870
+ shareScreen(tracks: {
4871
+ video?: MediaStreamTrack;
4872
+ audio?: MediaStreamTrack;
4873
+ }): Promise<void>;
4874
+ shareMic(audioTrack: MediaStreamTrack): Promise<void>;
4875
+ pauseMic(): Promise<void>;
4876
+ pauseWebcam(): Promise<void>;
4877
+ resumeMic(): Promise<void>;
4878
+ resumeWebcam(producerType?: PRODUCERS_TYPE): Promise<void>;
4879
+ disableWebcam(codec: VideoCodec): Promise<void>;
4880
+ disableMic(): Promise<void>;
4881
+ disableScreenShare(): Promise<void>;
4882
+ muteSelf(): Promise<void>;
4883
+ unmuteSelf(): Promise<void>;
4884
+ resetVideoProducers(videoTrack: MediaStreamTrack, screenShareTrack?: MediaStreamTrack): Promise<void>;
4885
+ changeDisplayName(displayName: string, peerId?: string): Promise<void>;
4886
+ kick(peerId: string): void;
4887
+ kickAll(): void;
4888
+ muteAll(_allowUnMute: boolean): Promise<void>;
4889
+ muteAllVideo(): Promise<void>;
4890
+ disableAudio(peerId: string): Promise<void>;
4891
+ disableVideo(peerId: string): Promise<void>;
4892
+ pinPeer(peerId: string | null): Promise<void>;
4893
+ validateScreenShare(payload: {
4894
+ peerId: string;
4895
+ consumerId: string;
4896
+ screenShare: boolean;
4897
+ producerId: string;
4898
+ consumerPeerId: string;
4899
+ }): number;
4900
+ switchConsumersToLayer(consumerIds: string[], layer: number): Promise<void>;
4901
+ handleSocketEvents(): Promise<void>;
4902
+ handleCallstatsEvents(): void;
4903
+ handlePeerCapabilities(peerId: string, capabilities: PeerRtpCapabilitites): void;
4904
+ handlePeerLeaving(peerId: string): void;
4809
4905
  }
4810
4906
  interface SocketServicePayload {
4811
4907
  payload: any;
@@ -4864,55 +4960,57 @@ declare class ConnectedMeetingsSocketHandler {
4864
4960
  error: any;
4865
4961
  }>;
4866
4962
  }
4867
- type ConnectedMeetingsEvents = {
4868
- ['meetingChanged']: (meeting: RealtimeKitClient) => void;
4869
- ['stateUpdate']: (payload: {
4870
- meetings: ConnectedMeeting[];
4871
- parentMeeting: ConnectedMeeting;
4872
- }) => void;
4873
- ['changingMeeting']: (meetingId: string) => void;
4874
- ['*']: (eventName: string, ...args: any[]) => void;
4963
+ type ConnectedMeetingsEvents = {
4964
+ ['meetingChanged']: (meeting: Client) => void;
4965
+ ['stateUpdate']: (payload: {
4966
+ meetings: ConnectedMeeting[];
4967
+ parentMeeting: ConnectedMeeting;
4968
+ }) => void;
4969
+ ['changingMeeting']: (meetingId: string) => void;
4970
+ ['*']: (eventName: string, ...args: any[]) => void;
4875
4971
  };
4876
- declare class RTKConnectedMeetings$1 extends RTKTypedEventEmitter<ConnectedMeetingsEvents> {
4877
- constructor(context: Context<RTKContextState>);
4878
- meetings: ConnectedMeeting[];
4879
- parentMeeting: ConnectedMeeting;
4880
- readonly supportsConnectedMeetings: boolean;
4881
- readonly isActive: boolean;
4882
- getConnectedMeetings(): Promise<{
4883
- parentMeeting: ConnectedMeeting;
4884
- meetings: ConnectedMeeting[];
4885
- }>;
4886
- createMeetings(request: {
4887
- title: string;
4888
- }[]): Promise<{
4889
- id: string;
4890
- title: string;
4891
- }[]>;
4892
- updateMeetings(request: {
4893
- id: string;
4894
- title: string;
4895
- }[]): Promise<void>;
4896
- deleteMeetings(meetingIds: string[]): Promise<{
4897
- id: string;
4898
- }[]>;
4899
- moveParticipants(sourceMeetingId: string, destinationMeetingId: string, participantIds: string[]): Promise<{
4900
- success: boolean;
4901
- error?: undefined;
4902
- } | {
4903
- success: boolean;
4904
- error: any;
4905
- }>;
4906
- moveParticipantsWithCustomPreset(sourceMeetingId: string, destinationMeetingId: string, participants: {
4907
- id: string;
4908
- presetId: string;
4909
- }[]): Promise<{
4910
- success: boolean;
4911
- error?: undefined;
4912
- } | {
4913
- success: boolean;
4914
- error: any;
4915
- }>;
4972
+ declare class ConnectedMeetings extends TypedEventEmitter$1<ConnectedMeetingsEvents> {
4973
+ constructor(context: Context<ContextState>);
4974
+ meetings: ConnectedMeeting[];
4975
+ parentMeeting: ConnectedMeeting;
4976
+ readonly supportsConnectedMeetings: boolean;
4977
+ readonly isActive: boolean;
4978
+ private validateConnectedMeetingsAction;
4979
+ getConnectedMeetings(): Promise<{
4980
+ parentMeeting: ConnectedMeeting;
4981
+ meetings: ConnectedMeeting[];
4982
+ }>;
4983
+ createMeetings(request: {
4984
+ title: string;
4985
+ }[]): Promise<{
4986
+ id: string;
4987
+ title: string;
4988
+ }[]>;
4989
+ updateMeetings(request: {
4990
+ id: string;
4991
+ title: string;
4992
+ }[]): Promise<void>;
4993
+ deleteMeetings(meetingIds: string[]): Promise<{
4994
+ id: string;
4995
+ }[]>;
4996
+ moveParticipants(sourceMeetingId: string, destinationMeetingId: string, participantIds: string[]): Promise<{
4997
+ success: boolean;
4998
+ error?: undefined;
4999
+ } | {
5000
+ success: boolean;
5001
+ error: any;
5002
+ }>;
5003
+ moveParticipantsWithCustomPreset(sourceMeetingId: string, destinationMeetingId: string, participants: {
5004
+ id: string;
5005
+ presetId: string;
5006
+ }[]): Promise<{
5007
+ success: boolean;
5008
+ error?: undefined;
5009
+ } | {
5010
+ success: boolean;
5011
+ error: any;
5012
+ }>;
5013
+ private moveSuccessHandler;
4916
5014
  }
4917
5015
  interface Modules {
4918
5016
  pip?: boolean;
@@ -4944,35 +5042,38 @@ interface Modules {
4944
5042
  };
4945
5043
  experimentalAudioPlayback?: boolean;
4946
5044
  }
4947
- interface DefaultOptions {
4948
- video?: boolean;
4949
- audio?: boolean;
4950
- recording?: RecordingConfig;
4951
- mediaHandler?: RTKSelfMedia$1;
4952
- autoSwitchAudioDevice?: boolean;
4953
- mediaConfiguration?: {
4954
- video?: VideoQualityConstraints;
4955
- audio?: AudioQualityConstraints;
4956
- screenshare?: ScreenshareQualityConstraints;
4957
- };
4958
- isNonPreferredDevice?: (device: MediaDeviceInfo) => boolean;
5045
+ interface DefaultOptions {
5046
+ video?: boolean;
5047
+ audio?: boolean;
5048
+ recording?: RecordingConfig;
5049
+ mediaHandler?: SelfMedia;
5050
+ autoSwitchAudioDevice?: boolean;
5051
+ mediaConfiguration?: {
5052
+ video?: VideoQualityConstraints;
5053
+ audio?: AudioQualityConstraints;
5054
+ screenshare?: ScreenshareQualityConstraints;
5055
+ };
5056
+ isNonPreferredDevice?: (device: MediaDeviceInfo) => boolean;
4959
5057
  }
4960
5058
  interface RoomDetails {
4961
5059
  roomNodeUrl: string;
4962
5060
  meetingTitle: string;
4963
5061
  useHiveMedia: boolean;
4964
5062
  }
4965
- declare class ConnectionHandler {
4966
- mediaJoined: boolean;
4967
- socketJoined: boolean;
4968
- socketJoinAttempted: boolean;
4969
- mediaJoinAttempted: boolean;
4970
- socketState: SocketConnectionState;
4971
- mediaState: MediaConnectionState;
4972
- readonly joinAttempted: boolean;
4973
- readonly roomJoined: boolean;
4974
- constructor(context: Context<RTKContextState>);
4975
- updateSocketConnectionState(state: SocketStateEvent, attempt?: number): void;
5063
+ interface ControllerOptions {
5064
+ peerId?: string;
5065
+ }
5066
+ declare class ConnectionHandler {
5067
+ mediaJoined: boolean;
5068
+ socketJoined: boolean;
5069
+ socketJoinAttempted: boolean;
5070
+ mediaJoinAttempted: boolean;
5071
+ socketState: SocketConnectionState;
5072
+ mediaState: MediaConnectionState;
5073
+ readonly joinAttempted: boolean;
5074
+ readonly roomJoined: boolean;
5075
+ constructor(context: Context<ContextState>);
5076
+ updateSocketConnectionState(state: SocketStateEvent, attempt?: number): void;
4976
5077
  }
4977
5078
  declare const ERROR_CODES: {
4978
5079
  '0000': string;
@@ -5063,9 +5164,9 @@ declare const ERROR_CODES: {
5063
5164
  '2006': string;
5064
5165
  '9900': string;
5065
5166
  };
5066
- declare class RTKError extends Error {
5067
- code: keyof typeof ERROR_CODES;
5068
- constructor(message: string, code?: keyof typeof ERROR_CODES, logger?: RTKLogger$1 | undefined, log?: boolean);
5167
+ declare class ClientError extends Error {
5168
+ code: keyof typeof ERROR_CODES;
5169
+ constructor(message: string, code?: keyof typeof ERROR_CODES, logger?: Logger | undefined, log?: boolean);
5069
5170
  }
5070
5171
  type EventMap = {
5071
5172
  [key: string]: (...args: any[]) => void;
@@ -5155,32 +5256,32 @@ declare enum SessionEvents {
5155
5256
  type AllEvents = {
5156
5257
  [key in SessionEvents]: (payload?: any) => void;
5157
5258
  };
5158
- type TypedEvents = {
5159
- [SessionEvents.UPDATE_PERMISSIONS]: (p: PresetUpdates) => void;
5160
- [SessionEvents.MAX_SPATIAL_LAYER_CHANGE]: (p: {
5161
- peerId: string;
5162
- maxSpatialLayer: number;
5163
- }) => void;
5164
- [SessionEvents.UPDATE_ACTIVE]: (p?: {
5165
- viewMode?: ViewMode;
5166
- page?: number;
5167
- createAllConsumers?: boolean;
5168
- }) => void;
5169
- [SessionEvents.PEER_JOINED_INTERNAL]: (p: RTKParticipant$1) => void;
5170
- [SessionEvents.UPDATE_PEER_STAGE_STATUS]: (p: {
5171
- id: string;
5172
- status: string;
5173
- }) => void;
5174
- [SessionEvents.GET_STAGE_REQUESTS]: (stageRequests: StageRequest[]) => void;
5175
- [SessionEvents.UPDATE_STAGE_REQUESTS]: (payload: {
5176
- request: StageRequestPayload;
5177
- add: boolean;
5178
- }) => void;
5179
- [SessionEvents.KICK_PEER]: (payload: {
5180
- peerId: string;
5181
- }) => void;
5182
- [SessionEvents.JOIN_MEDIA_ROOM]: () => void;
5183
- [SessionEvents.LEAVE_MEDIA_ROOM]: (state: LeaveRoomState) => void;
5259
+ type TypedEvents = {
5260
+ [SessionEvents.UPDATE_PERMISSIONS]: (p: PresetUpdates) => void;
5261
+ [SessionEvents.MAX_SPATIAL_LAYER_CHANGE]: (p: {
5262
+ peerId: string;
5263
+ maxSpatialLayer: number;
5264
+ }) => void;
5265
+ [SessionEvents.UPDATE_ACTIVE]: (p?: {
5266
+ viewMode?: ViewMode;
5267
+ page?: number;
5268
+ createAllConsumers?: boolean;
5269
+ }) => void;
5270
+ [SessionEvents.PEER_JOINED_INTERNAL]: (p: Participant) => void;
5271
+ [SessionEvents.UPDATE_PEER_STAGE_STATUS]: (p: {
5272
+ id: string;
5273
+ status: string;
5274
+ }) => void;
5275
+ [SessionEvents.GET_STAGE_REQUESTS]: (stageRequests: StageRequest[]) => void;
5276
+ [SessionEvents.UPDATE_STAGE_REQUESTS]: (payload: {
5277
+ request: StageRequestPayload;
5278
+ add: boolean;
5279
+ }) => void;
5280
+ [SessionEvents.KICK_PEER]: (payload: {
5281
+ peerId: string;
5282
+ }) => void;
5283
+ [SessionEvents.JOIN_MEDIA_ROOM]: () => void;
5284
+ [SessionEvents.LEAVE_MEDIA_ROOM]: (state: LeaveRoomState) => void;
5184
5285
  };
5185
5286
  type UntypedEvents = Pick<AllEvents, Exclude<keyof AllEvents, keyof TypedEvents>>;
5186
5287
  type SessionEventsType = TypedEvents & UntypedEvents;
@@ -5198,44 +5299,44 @@ declare class AudioPlaybackManager extends AudioPlayback {
5198
5299
  addParticipantTrack(participantId: string, track: MediaStreamTrack): void;
5199
5300
  removeParticipantTrack(participantId: string): void;
5200
5301
  }
5201
- type RTKContextState = {
5202
- authToken?: string;
5203
- peerId?: string;
5204
- apiBase?: string;
5205
- baseURI?: string;
5206
- onError?: (error: RTKError) => void;
5207
- stageStatus?: StageStatus;
5208
- organizationId?: string;
5209
- presetName?: string;
5210
- maxPreferredStreams?: number;
5211
- defaults?: DefaultOptions;
5212
- modules?: Modules;
5213
- overrides?: Overrides;
5214
- apiClient?: APIClient;
5215
- userId?: string;
5216
- meetingId?: string;
5217
- roomName?: string;
5218
- socketService?: SocketService;
5219
- pip?: RTKPip;
5220
- roomNodeClient?: MediaNodeClient;
5221
- viewType?: ViewType;
5222
- env?: ClientEnvTypeAll;
5223
- sdkVersion?: string;
5224
- sdkName?: 'web-core';
5225
- callstats?: InhouseCallStats;
5226
- connectionHandler?: ConnectionHandler;
5227
- cachedUserDetails?: CachedUserDetails;
5228
- peerSessionStore?: TypedEventEmitter<SessionEventsType>;
5229
- flagsmith?: ReturnType<typeof createNewFlagsmithInstance>;
5230
- roomSocketHandler?: RoomSocketHandler;
5231
- connectedMeetingsSocketHandler?: ConnectedMeetingsSocketHandler;
5232
- audioPlayback?: AudioPlaybackManager;
5233
- options?: RealtimeKitClientOptions;
5234
- self?: RTKSelf;
5235
- telemetry?: RTKTelemetry;
5236
- logger?: RTKLogger$1;
5237
- meeting?: RealtimeKitClient;
5238
- selfController?: SelfController;
5302
+ type ContextState = {
5303
+ authToken?: string;
5304
+ peerId?: string;
5305
+ apiBase?: string;
5306
+ baseURI?: string;
5307
+ onError?: (error: ClientError) => void;
5308
+ stageStatus?: StageStatus;
5309
+ organizationId?: string;
5310
+ presetName?: string;
5311
+ maxPreferredStreams?: number;
5312
+ defaults?: DefaultOptions;
5313
+ modules?: Modules;
5314
+ overrides?: Overrides;
5315
+ apiClient?: APIClient;
5316
+ userId?: string;
5317
+ meetingId?: string;
5318
+ roomName?: string;
5319
+ socketService?: SocketService;
5320
+ pip?: Pip;
5321
+ roomNodeClient?: MediaNodeClient;
5322
+ viewType?: ViewType;
5323
+ env?: ClientEnvTypeAll;
5324
+ sdkVersion?: string;
5325
+ sdkName?: 'web-core';
5326
+ callstats?: InhouseCallStats;
5327
+ connectionHandler?: ConnectionHandler;
5328
+ cachedUserDetails?: CachedUserDetails;
5329
+ peerSessionStore?: TypedEventEmitter<SessionEventsType>;
5330
+ flagsmith?: ReturnType<typeof createNewFlagsmithInstance>;
5331
+ roomSocketHandler?: RoomSocketHandler;
5332
+ connectedMeetingsSocketHandler?: ConnectedMeetingsSocketHandler;
5333
+ audioPlayback?: AudioPlaybackManager;
5334
+ options?: ClientOptions;
5335
+ self?: Self;
5336
+ telemetry?: Telemetry;
5337
+ logger?: Logger;
5338
+ meeting?: Client;
5339
+ selfController?: SelfController;
5239
5340
  };
5240
5341
  interface Context<T extends Record<string, any>> {
5241
5342
  subscribe: (key: keyof T, listener: (value: any) => void) => () => void;
@@ -5245,105 +5346,114 @@ interface Context<T extends Record<string, any>> {
5245
5346
  getValue: <K extends keyof T>(key: K) => T[K];
5246
5347
  getAllValues: () => T;
5247
5348
  }
5248
- type SocketServiceCapability = keyof typeof Capabilities;
5249
- type SocketStateEvent = 'connected' | 'disconnected' | 'reconnected' | 'errored' | 'reconnecting' | 'reconnectAttempt' | 'reconnectFailure' | 'failed';
5250
- type SocketServiceCapabilities = SocketServiceCapability[];
5251
- interface SocketConnectionState {
5252
- state: Extract<SocketStateEvent, 'connected' | 'disconnected' | 'reconnecting' | 'failed'>;
5253
- reconnected: boolean;
5254
- reconnectionAttempt: number;
5349
+ declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter$1 {
5350
+ readonly logger: Logger;
5351
+ constructor(context: Context<ContextState>);
5352
+ safeEmit(event: string, ...args: any[]): boolean;
5353
+ safeEmitAsPromise<T extends keyof TransportPromiseEvents>(event: T, ...args: any[]): Promise<TransportPromiseEvents[T]>;
5354
+ safeEmitAsPromiseWithTimeout<T extends keyof TransportPromiseEvents>(event: T, timeout: number, ...args: any[]): Promise<TransportPromiseEvents[T]>;
5255
5355
  }
5256
- declare class SocketService {
5257
- readonly roomName: string;
5258
- readonly authToken: string;
5259
- readonly capabilities: SocketServiceCapabilities;
5260
- joinAttempted: boolean;
5261
- readonly telemetry: RTKTelemetry;
5262
- readonly logger: RTKLogger$1;
5263
- readonly peerId: string;
5264
- constructor(context: Context<RTKContextState>, { peerId, meetingId, authToken, capabilities, }: {
5265
- peerId: string;
5266
- meetingId: string;
5267
- authToken: string;
5268
- capabilities: SocketServiceCapabilities;
5269
- });
5270
- updateURL(peerID: string): void;
5271
- readonly url: string;
5272
- connect(): Promise<void>;
5273
- disconnect(): void;
5274
- readonly isConnected: boolean;
5275
- sendMessage(event: number, protobuf?: Uint8Array, messageId?: string): boolean;
5276
- sendMessagePromise(event: number, protobuf?: Uint8Array, messageId?: string, resp?: number): Promise<{
5277
- id: string;
5278
- payload: Uint8Array;
5279
- }>;
5280
- sendMessagePromiseWithTimeout({ event, timeout, protobuf, messageId, resp, }: {
5281
- timeout: number;
5282
- event: number;
5283
- protobuf?: Uint8Array;
5284
- messageId?: string;
5285
- resp?: number;
5286
- }): Promise<{
5287
- id: string;
5288
- payload: Uint8Array;
5289
- }>;
5290
- on(event: number, listener: (message: {
5291
- id?: string;
5292
- payload?: Uint8Array;
5293
- }) => void): void;
5294
- onStateEvent(event: SocketStateEvent, listener: (...args: any) => void): void;
5295
- removeListener(event: number, listener: (message: {
5296
- id?: string;
5297
- payload?: Uint8Array;
5298
- }) => void): void;
5299
- removeListeners(event: number): void;
5300
- flush(): any;
5301
- handleSocketConnectionEvents(): void;
5356
+ type MediaKind = 'audio' | 'video';
5357
+ type ProducerConstructorOptions = {
5358
+ id: string;
5359
+ localId: string;
5360
+ track?: MediaStreamTrack;
5361
+ stopTracks: boolean;
5362
+ disableTrackOnPause: boolean;
5363
+ zeroRtpOnPause: boolean;
5364
+ handler: HandlerInterface<TransportPromiseEvents>;
5365
+ appData?: Record<string, unknown>;
5366
+ rtpSender?: RTCRtpSender;
5367
+ };
5368
+ declare class Producer extends EnhancedEventEmitter<TransportPromiseEvents> {
5369
+ readonly id: string;
5370
+ readonly localId: string;
5371
+ readonly kind: MediaKind;
5372
+ readonly appData: Record<string, unknown>;
5373
+ readonly rtpSender: RTCRtpSender;
5374
+ constructor(context: Context<ContextState>, opt: ProducerConstructorOptions);
5375
+ readonly closed: boolean;
5376
+ readonly track: MediaStreamTrack | null;
5377
+ readonly paused: boolean;
5378
+ readonly maxSpatialLayer: number | undefined;
5379
+ close(reason?: string): Promise<void>;
5380
+ getStats(): Promise<RTCStatsReport>;
5381
+ pause(): void;
5382
+ resume(): void;
5383
+ replaceTrack({ track, }: {
5384
+ track: MediaStreamTrack | null;
5385
+ }): Promise<void>;
5386
+ setMaxSpatialLayer(spatialLayer: number): Promise<void>;
5387
+ setRtpEncodingParameters(params: RTCRtpEncodingParameters): Promise<void>;
5388
+ private _onTrackEnded;
5389
+ private _handleTrack;
5390
+ private _destroyTrack;
5302
5391
  }
5303
- type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
5304
- declare class RoomSocketHandler {
5305
- socket: SocketService;
5306
- readonly telemetry: RTKTelemetry;
5307
- readonly logger: RTKLogger$1;
5308
- cleanup(): void;
5309
- constructor(context: Context<RTKContextState>, socketService: SocketService);
5310
- joinRoom(opts: {
5311
- name: string;
5312
- id: string;
5313
- userId: string;
5314
- customParticipantId: string;
5315
- picture?: string;
5316
- }): Promise<{
5317
- peer: Peer;
5318
- }>;
5319
- getAllAddedParticipants(): Promise<RTKBasicParticipant[]>;
5320
- getRoomPeers(searchQuery: string, limit: number, offset: number): Promise<RoomPeersInfoResponse>;
5321
- getRoomPeersNonPaginated(): Promise<RoomPeersInfoResponse>;
5322
- getStagePeers(): Promise<RoomPeersInfoResponse>;
5323
- getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
5324
- getRoomState(): Promise<RoomInfoResponse>;
5325
- getRoomStageState(): Promise<GetRoomStageStateResponse>;
5326
- broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
5327
- id: string;
5328
- payload: Uint8Array;
5329
- }>;
5330
- broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
5331
- id: string;
5332
- payload: Uint8Array;
5333
- }>;
5334
- broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise<boolean>;
5335
- leaveRoom(): Promise<void>;
5336
- kick(peerId: string): Promise<void>;
5337
- kickAll(propagateKickAll?: boolean): Promise<void>;
5338
- getWaitingRoomRequests(): void;
5339
- acceptWaitingRoomRequest(userIds: string[]): void;
5340
- rejectWaitingRoomRequest(userIds: string[]): void;
5341
- updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
5342
- id: string;
5343
- payload: Uint8Array;
5344
- }>;
5345
- on(event: number, handler: (message: EventHandlerTypes) => void): void;
5346
- getUserPermissions(userId: string): Promise<Pick<PresetTypeV2['permissions'], 'chat' | 'polls' | 'plugins'>>;
5392
+ interface UserDetailsResponse {
5393
+ id: string;
5394
+ name: string;
5395
+ email: string;
5396
+ picture?: string;
5397
+ loggedIn?: boolean;
5398
+ scope?: string[];
5399
+ clientSpecificId?: string;
5400
+ customParticipantId?: string;
5401
+ organizationId?: string;
5402
+ }
5403
+ declare class Self extends SelfMedia {
5404
+ name: string;
5405
+ picture: string;
5406
+ customParticipantId: string;
5407
+ waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
5408
+ role: any;
5409
+ userId: string;
5410
+ organizationId: string;
5411
+ supportsRemoteControl: boolean;
5412
+ device: DeviceConfig;
5413
+ readonly telemetry: Telemetry;
5414
+ hidden: boolean;
5415
+ readonly stageStatus: StageStatus;
5416
+ readonly producers: Producer[];
5417
+ readonly id: string;
5418
+ readonly peerId: string;
5419
+ presetName: string;
5420
+ roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
5421
+ private constructor();
5422
+ static __init__(context: Context<ContextState>, details: UserDetailsResponse, permissions: PermissionPreset, theme: ThemePreset, presetName: string, skipAwaits?: boolean): Promise<Self>;
5423
+ cleanupEvents(): void;
5424
+ private setupEvents;
5425
+ readonly permissions: PermissionPreset;
5426
+ readonly config: ThemePreset;
5427
+ readonly roomJoined: boolean;
5428
+ setName(name: string): void;
5429
+ setupTracks(options?: {
5430
+ video?: boolean;
5431
+ audio?: boolean;
5432
+ forceReset?: boolean;
5433
+ }): Promise<void>;
5434
+ destructMediaHandler(): Promise<void>;
5435
+ removeDocumentEventListeners(): Promise<void>;
5436
+ enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
5437
+ enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
5438
+ updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
5439
+ enableScreenShare(): Promise<void>;
5440
+ updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
5441
+ disableAudio(): Promise<void>;
5442
+ disableVideo(): Promise<void>;
5443
+ disableScreenShare(): Promise<void>;
5444
+ getAllDevices(): Promise<InputDeviceInfo[]>;
5445
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5446
+ readonly isPinned: boolean;
5447
+ pin(): Promise<void>;
5448
+ unpin(): Promise<void>;
5449
+ hide(): Promise<void>;
5450
+ show(): void;
5451
+ setDevice(device: MediaDeviceInfo): Promise<void>;
5452
+ cleanUpTracks(): void;
5453
+ playAudio(): Promise<void>;
5454
+ registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
5455
+ deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
5456
+ private updateVideo;
5347
5457
  }
5348
5458
  interface DeviceConfig {
5349
5459
  browserName: string;
@@ -5362,7 +5472,7 @@ interface ProducerState {
5362
5472
  mimeType?: string;
5363
5473
  consumer?: Partial<Consumer>;
5364
5474
  }
5365
- interface Participant {
5475
+ interface IParticipant {
5366
5476
  id: string;
5367
5477
  userId: string;
5368
5478
  displayName: string;
@@ -5385,48 +5495,50 @@ interface Participant {
5385
5495
  };
5386
5496
  recorderType?: string;
5387
5497
  }
5388
- declare class RTKParticipant$1 extends RTKTypedEventEmitter<ParticipantEvents> {
5389
- id: string;
5390
- userId: string;
5391
- name: string;
5392
- picture: string;
5393
- isHost: boolean;
5394
- customParticipantId?: string;
5395
- readonly clientSpecificId: string;
5396
- flags: {
5397
- [key: string]: string | boolean;
5398
- };
5399
- device: DeviceConfig;
5400
- videoTrack: MediaStreamTrack;
5401
- audioTrack: MediaStreamTrack;
5402
- screenShareTracks: {
5403
- audio: MediaStreamTrack;
5404
- video: MediaStreamTrack;
5405
- };
5406
- videoEnabled: boolean;
5407
- audioEnabled: boolean;
5408
- screenShareEnabled: boolean;
5409
- producers: ProducerState[];
5410
- manualProducerConfig: PeerProducerConfig;
5411
- supportsRemoteControl: boolean;
5412
- presetName?: string;
5413
- readonly stageStatus: StageStatus;
5414
- readonly telemetry: RTKTelemetry;
5415
- constructor(context: Context<RTKContextState>, participant: Participant, self: RTKSelf, roomSocket: RoomSocketHandler);
5416
- setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
5417
- setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
5418
- setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
5419
- pin(): Promise<void>;
5420
- unpin(): Promise<void>;
5421
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5422
- disableAudio(): Promise<void>;
5423
- kick(): Promise<void>;
5424
- disableVideo(): Promise<void>;
5425
- getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "plugins" | "polls" | "chat">>;
5426
- setStageStatus(stageStatus: StageStatus): void;
5427
- readonly isPinned: boolean;
5428
- registerVideoElement(videoElem: HTMLVideoElement): void;
5429
- deregisterVideoElement(videoElem?: HTMLVideoElement): void;
5498
+ declare class Participant extends TypedEventEmitter$1<ParticipantEvents> {
5499
+ id: string;
5500
+ userId: string;
5501
+ name: string;
5502
+ picture: string;
5503
+ isHost: boolean;
5504
+ customParticipantId?: string;
5505
+ readonly clientSpecificId: string;
5506
+ flags: {
5507
+ [key: string]: string | boolean;
5508
+ };
5509
+ device: DeviceConfig;
5510
+ videoTrack: MediaStreamTrack;
5511
+ audioTrack: MediaStreamTrack;
5512
+ screenShareTracks: {
5513
+ audio: MediaStreamTrack;
5514
+ video: MediaStreamTrack;
5515
+ };
5516
+ videoEnabled: boolean;
5517
+ audioEnabled: boolean;
5518
+ screenShareEnabled: boolean;
5519
+ producers: ProducerState[];
5520
+ manualProducerConfig: PeerProducerConfig;
5521
+ supportsRemoteControl: boolean;
5522
+ presetName?: string;
5523
+ readonly stageStatus: StageStatus;
5524
+ readonly telemetry: Telemetry;
5525
+ constructor(context: Context<ContextState>, participant: IParticipant, self: Self, roomSocket: RoomSocketHandler);
5526
+ setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
5527
+ setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
5528
+ setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
5529
+ private setupEvents;
5530
+ pin(): Promise<void>;
5531
+ unpin(): Promise<void>;
5532
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5533
+ disableAudio(): Promise<void>;
5534
+ kick(): Promise<void>;
5535
+ disableVideo(): Promise<void>;
5536
+ getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "chat" | "polls" | "plugins">>;
5537
+ setStageStatus(stageStatus: StageStatus): void;
5538
+ readonly isPinned: boolean;
5539
+ registerVideoElement(videoElem: HTMLVideoElement): void;
5540
+ deregisterVideoElement(videoElem?: HTMLVideoElement): void;
5541
+ private updateVideo;
5430
5542
  }
5431
5543
  declare function createSafeToLogError(ex: any): {
5432
5544
  stack?: string;
@@ -5436,267 +5548,267 @@ declare function createSafeToLogError(ex: any): {
5436
5548
  code?: number | string;
5437
5549
  };
5438
5550
  type SupportedEventSeverities = 'info' | 'error' | 'debug' | 'log' | 'warn';
5439
- type LogData$2 = {
5440
- error?: ReturnType<typeof createSafeToLogError>;
5441
- peers?: string;
5442
- flags?: string | {
5443
- [key: string]: {
5444
- enabled: boolean;
5445
- value: string | number | boolean;
5446
- };
5447
- };
5448
- devices?: string | MediaDeviceInfo[];
5449
- debuggingHint?: string;
5450
- constraints?: string | RTKMediaStreamConstraints;
5451
- timeout?: number;
5452
- execTime?: number;
5453
- country?: string;
5454
- media?: {
5455
- audio?: {
5456
- enabled: boolean;
5457
- deviceName?: string;
5458
- deviceId?: string;
5459
- trackId?: string;
5460
- permission?: keyof typeof MediaPermission;
5461
- canProduce?: MediaProductionPermissionType;
5462
- };
5463
- video?: {
5464
- enabled?: boolean;
5465
- deviceName?: string;
5466
- deviceId?: string;
5467
- trackId?: string;
5468
- permission?: keyof typeof MediaPermission;
5469
- canProduce?: MediaProductionPermissionType;
5470
- layer?: number;
5471
- };
5472
- screenshare?: {
5473
- enabled: boolean;
5474
- count?: number;
5475
- maxAllowedCount?: number;
5476
- permission?: keyof typeof MediaPermission;
5477
- deviceName?: string;
5478
- deviceId?: string;
5479
- audio?: {
5480
- enabled: boolean;
5481
- trackId?: string;
5482
- };
5483
- video?: {
5484
- enabled: boolean;
5485
- trackId?: string;
5486
- };
5487
- canProduce?: MediaProductionPermissionType;
5488
- };
5489
- };
5490
- producerInfo?: {
5491
- peerId: string;
5492
- producers: ProducerState[];
5493
- };
5494
- preferredDevice?: {
5495
- kind: 'audio' | 'video';
5496
- preferredDeviceId?: string;
5497
- lastUsedPreferredDeviceId?: string;
5498
- };
5499
- mediaPermissionsErrors?: {
5500
- kind: 'audio' | 'video' | 'screenshare';
5501
- message: string;
5502
- deviceId?: string;
5503
- };
5504
- pip?: {
5505
- id: string;
5506
- handRaised?: boolean;
5507
- source?: any;
5508
- };
5509
- memoize?: {
5510
- doubleInvoked?: {
5511
- property: string;
5512
- };
5513
- };
5514
- dyteClientInitOptions?: RealtimeKitClientOptions;
5515
- plugin?: {
5516
- id?: string;
5517
- name?: string;
5518
- enabledBy?: string;
5519
- duration?: number;
5520
- storeName?: string;
5521
- data?: any;
5522
- };
5523
- roomJoined?: boolean;
5524
- transport?: {
5525
- id?: string;
5526
- type?: 'send' | 'recv';
5527
- status?: RTCPeerConnectionState | 'reconnecting';
5528
- lastDisconnectedTime?: string;
5529
- lastDisconnectedTimeOffset?: number;
5530
- durationPassed?: number;
5531
- remoteOfferAnswer?: RTCSessionDescriptionInit;
5532
- serverId?: string;
5533
- };
5534
- iceCandidate?: RTCIceCandidate;
5535
- iceRestart?: {
5536
- status?: RTCPeerConnectionState | 'reconnecting';
5537
- isSendTransport?: boolean;
5538
- isRecvTransport?: boolean;
5539
- currentAttempt?: number;
5540
- };
5541
- producer?: {
5542
- id: string;
5543
- peerId?: string;
5544
- kind: 'audio' | 'video' | PRODUCERS_TYPE;
5545
- status?: 'not_initialized' | 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
5546
- appData: {
5547
- screenShare?: boolean;
5548
- supportsRemoteControl?: boolean;
5549
- };
5550
- error?: string;
5551
- closureReason?: string;
5552
- remoteAnswer?: SessionDescription;
5553
- trackId?: string;
5554
- };
5555
- consumer?: {
5556
- id: string;
5557
- peerId?: string;
5558
- kind?: string;
5559
- appData?: {
5560
- screenShare?: boolean;
5561
- supportsRemoteControl?: boolean;
5562
- };
5563
- remotelyPaused?: boolean;
5564
- producerId?: string;
5565
- closureReason?: string;
5566
- sessionDescription?: RTCSessionDescriptionInit;
5567
- };
5568
- consumerIds?: string[];
5569
- consumerState?: ConsumerState;
5570
- consumerStateMap?: {
5571
- [key: string]: ConsumerState;
5572
- };
5573
- rtcChannel?: {
5574
- label?: string;
5575
- message?: DCMessage;
5576
- messageStringified?: string;
5577
- };
5578
- localStorage?: {
5579
- key?: string;
5580
- value?: string;
5581
- };
5582
- spotlight?: {
5583
- spotlighter?: {
5584
- id?: string;
5585
- };
5586
- currentTab?: {
5587
- id?: string;
5588
- type?: ActiveTabType;
5589
- };
5590
- };
5591
- networkCall?: {
5592
- status?: number;
5593
- statusText?: string;
5594
- baseURL?: string;
5595
- url?: string;
5596
- retries?: number;
5597
- method?: string;
5598
- isOnline?: string;
5599
- ip?: any;
5600
- timezone?: string;
5601
- };
5602
- ipInfo?: {
5603
- city: string;
5604
- country: string;
5605
- region: string;
5606
- loc: string;
5607
- timezone: string;
5608
- ip: string;
5609
- postal: string;
5610
- };
5611
- dytePolls?: {
5612
- hasQuestion?: boolean;
5613
- optionsLength?: number;
5614
- };
5615
- dyteChat?: {
5616
- imageType?: string;
5617
- messageType?: string;
5618
- };
5619
- dyteParticipant?: {
5620
- id: string;
5621
- maskedName?: string;
5622
- };
5623
- actions?: {
5624
- disableAllAudio?: {
5625
- allowUnmute?: boolean;
5626
- };
5627
- trackRobustness?: {
5628
- reacquireTrack?: boolean;
5629
- eventType?: string;
5630
- };
5631
- };
5632
- recording?: {
5633
- id?: string;
5634
- state?: RecordingState;
5635
- };
5636
- selectedPeer?: {
5637
- oldIndex?: number;
5638
- newIndex?: number;
5639
- peerId?: string;
5640
- };
5641
- pageNavigation?: {
5642
- viewMode: ViewMode;
5643
- currentPage: number;
5644
- pageCount: number;
5645
- maxActiveParticipantsCount: number;
5646
- settingPage?: number;
5647
- };
5648
- connectedMeetings?: {
5649
- movement?: {
5650
- sourceMeetingId?: string;
5651
- destinationMeetingId?: string;
5652
- totalParticipantsToMove?: number;
5653
- };
5654
- };
5655
- webinar?: {
5656
- stageStatus?: StageStatus;
5657
- };
5658
- livestream?: {
5659
- stageStatus?: StageStatus;
5660
- latency?: number;
5661
- };
5662
- moduleExists?: {
5663
- self?: boolean;
5664
- };
5665
- performanceObserver?: {
5666
- api: PerformanceEntry;
5667
- };
5668
- dyteLocker?: {
5669
- methodName: string;
5670
- lockName: string;
5671
- };
5672
- socket?: {
5673
- retryAttempt: number;
5674
- };
5675
- connectionState?: {
5676
- joinAttempted: boolean;
5677
- };
5678
- source?: string;
5679
- eventListener?: {
5680
- eventName: string;
5681
- listenerCount: number;
5682
- };
5683
- dataChannelMessageChunk?: {
5684
- id: string;
5685
- count: number;
5686
- chunkIndex: number;
5687
- chunk: string;
5688
- transprtId: string;
5689
- };
5690
- peerIds?: string[];
5691
- producers?: ProducerState[];
5692
- sdp?: RTCSessionDescription['sdp'];
5693
- awaitQueueTask?: {
5694
- id?: string | number;
5695
- metadata?: Record<string, unknown>;
5696
- queueSizeAtStart?: number;
5697
- taskStartTime?: number;
5698
- execTime?: number;
5699
- };
5551
+ type LogData$2 = {
5552
+ error?: ReturnType<typeof createSafeToLogError>;
5553
+ peers?: string;
5554
+ flags?: string | {
5555
+ [key: string]: {
5556
+ enabled: boolean;
5557
+ value: string | number | boolean;
5558
+ };
5559
+ };
5560
+ devices?: string | MediaDeviceInfo[];
5561
+ debuggingHint?: string;
5562
+ constraints?: string | ClientMediaStreamConstraints;
5563
+ timeout?: number;
5564
+ execTime?: number;
5565
+ country?: string;
5566
+ media?: {
5567
+ audio?: {
5568
+ enabled: boolean;
5569
+ deviceName?: string;
5570
+ deviceId?: string;
5571
+ trackId?: string;
5572
+ permission?: keyof typeof MediaPermission;
5573
+ canProduce?: MediaProductionPermissionType;
5574
+ };
5575
+ video?: {
5576
+ enabled?: boolean;
5577
+ deviceName?: string;
5578
+ deviceId?: string;
5579
+ trackId?: string;
5580
+ permission?: keyof typeof MediaPermission;
5581
+ canProduce?: MediaProductionPermissionType;
5582
+ layer?: number;
5583
+ };
5584
+ screenshare?: {
5585
+ enabled: boolean;
5586
+ count?: number;
5587
+ maxAllowedCount?: number;
5588
+ permission?: keyof typeof MediaPermission;
5589
+ deviceName?: string;
5590
+ deviceId?: string;
5591
+ audio?: {
5592
+ enabled: boolean;
5593
+ trackId?: string;
5594
+ };
5595
+ video?: {
5596
+ enabled: boolean;
5597
+ trackId?: string;
5598
+ };
5599
+ canProduce?: MediaProductionPermissionType;
5600
+ };
5601
+ };
5602
+ producerInfo?: {
5603
+ peerId: string;
5604
+ producers: ProducerState[];
5605
+ };
5606
+ preferredDevice?: {
5607
+ kind: 'audio' | 'video';
5608
+ preferredDeviceId?: string;
5609
+ lastUsedPreferredDeviceId?: string;
5610
+ };
5611
+ mediaPermissionsErrors?: {
5612
+ kind: 'audio' | 'video' | 'screenshare';
5613
+ message: string;
5614
+ deviceId?: string;
5615
+ };
5616
+ pip?: {
5617
+ id: string;
5618
+ handRaised?: boolean;
5619
+ source?: any;
5620
+ };
5621
+ memoize?: {
5622
+ doubleInvoked?: {
5623
+ property: string;
5624
+ };
5625
+ };
5626
+ clientInitOptions?: ClientOptions;
5627
+ plugin?: {
5628
+ id?: string;
5629
+ name?: string;
5630
+ enabledBy?: string;
5631
+ duration?: number;
5632
+ storeName?: string;
5633
+ data?: any;
5634
+ };
5635
+ roomJoined?: boolean;
5636
+ transport?: {
5637
+ id?: string;
5638
+ type?: 'send' | 'recv';
5639
+ status?: RTCPeerConnectionState | 'reconnecting';
5640
+ lastDisconnectedTime?: string;
5641
+ lastDisconnectedTimeOffset?: number;
5642
+ durationPassed?: number;
5643
+ remoteOfferAnswer?: RTCSessionDescriptionInit;
5644
+ serverId?: string;
5645
+ };
5646
+ iceCandidate?: RTCIceCandidate;
5647
+ iceRestart?: {
5648
+ status?: RTCPeerConnectionState | 'reconnecting';
5649
+ isSendTransport?: boolean;
5650
+ isRecvTransport?: boolean;
5651
+ currentAttempt?: number;
5652
+ };
5653
+ producer?: {
5654
+ id: string;
5655
+ peerId?: string;
5656
+ kind: 'audio' | 'video' | PRODUCERS_TYPE;
5657
+ status?: 'not_initialized' | 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
5658
+ appData: {
5659
+ screenShare?: boolean;
5660
+ supportsRemoteControl?: boolean;
5661
+ };
5662
+ error?: string;
5663
+ closureReason?: string;
5664
+ remoteAnswer?: SessionDescription;
5665
+ trackId?: string;
5666
+ };
5667
+ consumer?: {
5668
+ id: string;
5669
+ peerId?: string;
5670
+ kind?: string;
5671
+ appData?: {
5672
+ screenShare?: boolean;
5673
+ supportsRemoteControl?: boolean;
5674
+ };
5675
+ remotelyPaused?: boolean;
5676
+ producerId?: string;
5677
+ closureReason?: string;
5678
+ sessionDescription?: RTCSessionDescriptionInit;
5679
+ };
5680
+ consumerIds?: string[];
5681
+ consumerState?: ConsumerState;
5682
+ consumerStateMap?: {
5683
+ [key: string]: ConsumerState;
5684
+ };
5685
+ rtcChannel?: {
5686
+ label?: string;
5687
+ message?: DCMessage;
5688
+ messageStringified?: string;
5689
+ };
5690
+ localStorage?: {
5691
+ key?: string;
5692
+ value?: string;
5693
+ };
5694
+ spotlight?: {
5695
+ spotlighter?: {
5696
+ id?: string;
5697
+ };
5698
+ currentTab?: {
5699
+ id?: string;
5700
+ type?: ActiveTabType;
5701
+ };
5702
+ };
5703
+ networkCall?: {
5704
+ status?: number;
5705
+ statusText?: string;
5706
+ baseURL?: string;
5707
+ url?: string;
5708
+ retries?: number;
5709
+ method?: string;
5710
+ isOnline?: string;
5711
+ ip?: any;
5712
+ timezone?: string;
5713
+ };
5714
+ ipInfo?: {
5715
+ city: string;
5716
+ country: string;
5717
+ region: string;
5718
+ loc: string;
5719
+ timezone: string;
5720
+ ip: string;
5721
+ postal: string;
5722
+ };
5723
+ polls?: {
5724
+ hasQuestion?: boolean;
5725
+ optionsLength?: number;
5726
+ };
5727
+ chat?: {
5728
+ imageType?: string;
5729
+ messageType?: string;
5730
+ };
5731
+ participant?: {
5732
+ id: string;
5733
+ maskedName?: string;
5734
+ };
5735
+ actions?: {
5736
+ disableAllAudio?: {
5737
+ allowUnmute?: boolean;
5738
+ };
5739
+ trackRobustness?: {
5740
+ reacquireTrack?: boolean;
5741
+ eventType?: string;
5742
+ };
5743
+ };
5744
+ recording?: {
5745
+ id?: string;
5746
+ state?: RecordingState;
5747
+ };
5748
+ selectedPeer?: {
5749
+ oldIndex?: number;
5750
+ newIndex?: number;
5751
+ peerId?: string;
5752
+ };
5753
+ pageNavigation?: {
5754
+ viewMode: ViewMode;
5755
+ currentPage: number;
5756
+ pageCount: number;
5757
+ maxActiveParticipantsCount: number;
5758
+ settingPage?: number;
5759
+ };
5760
+ connectedMeetings?: {
5761
+ movement?: {
5762
+ sourceMeetingId?: string;
5763
+ destinationMeetingId?: string;
5764
+ totalParticipantsToMove?: number;
5765
+ };
5766
+ };
5767
+ webinar?: {
5768
+ stageStatus?: StageStatus;
5769
+ };
5770
+ livestream?: {
5771
+ stageStatus?: StageStatus;
5772
+ latency?: number;
5773
+ };
5774
+ moduleExists?: {
5775
+ self?: boolean;
5776
+ };
5777
+ performanceObserver?: {
5778
+ api: PerformanceEntry;
5779
+ };
5780
+ locker?: {
5781
+ methodName: string;
5782
+ lockName: string;
5783
+ };
5784
+ socket?: {
5785
+ retryAttempt: number;
5786
+ };
5787
+ connectionState?: {
5788
+ joinAttempted: boolean;
5789
+ };
5790
+ source?: string;
5791
+ eventListener?: {
5792
+ eventName: string;
5793
+ listenerCount: number;
5794
+ };
5795
+ dataChannelMessageChunk?: {
5796
+ id: string;
5797
+ count: number;
5798
+ chunkIndex: number;
5799
+ chunk: string;
5800
+ transprtId: string;
5801
+ };
5802
+ peerIds?: string[];
5803
+ producers?: ProducerState[];
5804
+ sdp?: RTCSessionDescription['sdp'];
5805
+ awaitQueueTask?: {
5806
+ id?: string | number;
5807
+ metadata?: Record<string, unknown>;
5808
+ queueSizeAtStart?: number;
5809
+ taskStartTime?: number;
5810
+ execTime?: number;
5811
+ };
5700
5812
  };
5701
5813
  type EventSeverities = SupportedEventSeverities;
5702
5814
  type LogData$1 = LogData$2;
@@ -5709,38 +5821,38 @@ interface MeetingMetadata {
5709
5821
  visitedUrl?: string;
5710
5822
  userId?: string;
5711
5823
  }
5712
- declare class RTKTelemetry {
5713
- logsCache: {
5714
- [key: string]: any;
5715
- }[];
5716
- logsProcessorTimer: NodeJS.Timer;
5717
- static location: {
5718
- country: string;
5719
- };
5720
- readonly logsEndpoint: string;
5721
- tracingEnabled: boolean;
5722
- initialized: boolean;
5723
- readonly logsProcessingInterval = 7000;
5724
- logExclusionList: string[];
5725
- meetingMetadata: MeetingMetadata;
5726
- resetPeerId(peerId: string): void;
5727
- init(context: Context<RTKContextState>, options: MeetingMetadata, enableTracing: boolean): void;
5728
- static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
5729
- injectContext(injectionReceiver: any): void;
5730
- addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
5731
- sendOtelLogsToNewRelic(logs: object[]): void;
5732
- processCachedLogs(): void;
5733
- destruct(): void;
5824
+ declare class Telemetry {
5825
+ logsCache: {
5826
+ [key: string]: any;
5827
+ }[];
5828
+ logsProcessorTimer: NodeJS.Timer;
5829
+ static location: {
5830
+ country: string;
5831
+ };
5832
+ readonly logsEndpoint: string;
5833
+ tracingEnabled: boolean;
5834
+ initialized: boolean;
5835
+ readonly logsProcessingInterval = 7000;
5836
+ logExclusionList: string[];
5837
+ meetingMetadata: MeetingMetadata;
5838
+ resetPeerId(peerId: string): void;
5839
+ init(context: Context<ContextState>, options: MeetingMetadata, enableTracing: boolean): void;
5840
+ static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
5841
+ injectContext(injectionReceiver: any): void;
5842
+ addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
5843
+ sendOtelLogsToNewRelic(logs: object[]): void;
5844
+ processCachedLogs(): void;
5845
+ destruct(): void;
5734
5846
  }
5735
5847
  type LogData = LogData$1;
5736
- declare class RTKLogger$1 {
5737
- readonly telemetry: RTKTelemetry;
5738
- init(context: Context<RTKContextState>): void;
5739
- info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5740
- error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5741
- debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5742
- log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5743
- warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5848
+ declare class Logger {
5849
+ readonly telemetry: Telemetry;
5850
+ init(context: Context<ContextState>): void;
5851
+ info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5852
+ error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5853
+ debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5854
+ log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5855
+ warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5744
5856
  }
5745
5857
  interface IceServerInformation {
5746
5858
  url: string;
@@ -5748,12 +5860,12 @@ interface IceServerInformation {
5748
5860
  urls: string;
5749
5861
  credential?: string;
5750
5862
  }
5751
- interface CachedUserDetails {
5752
- peerId?: string;
5753
- pluginInformation: RTKPluginResponse[];
5754
- userDetails: UserDetailsResponseV2;
5755
- roomDetails: RoomDetails;
5756
- iceServers: IceServerInformation[];
5863
+ interface CachedUserDetails {
5864
+ peerId?: string;
5865
+ pluginInformation: PluginResponse[];
5866
+ userDetails: UserDetailsResponseV2;
5867
+ roomDetails: RoomDetails;
5868
+ iceServers: IceServerInformation[];
5757
5869
  }
5758
5870
  interface APIOptions {
5759
5871
  baseURL?: string;
@@ -5763,19 +5875,29 @@ interface APIOptions {
5763
5875
  retryDelay?: number;
5764
5876
  cachedUserDetails?: CachedUserDetails;
5765
5877
  }
5766
- declare class API {
5767
- ipInfo: any;
5768
- readonly peerId: string;
5769
- context: Context<RTKContextState>;
5770
- readonly logger: RTKLogger$1;
5771
- constructor(context: Context<RTKContextState>, options?: APIOptions);
5772
- setAuthToken(token: string, options?: {
5773
- bearer?: boolean;
5774
- }): void;
5775
- setHeader(key: string, value: string): void;
5776
- setRoomName(name: string): void;
5777
- setRoomUUID(id: string): void;
5778
- setOrganizationId(id: string): void;
5878
+ declare class API {
5879
+ ipInfo: any;
5880
+ protected fetchClient: FetchClient;
5881
+ protected requests: FetchClient;
5882
+ protected roomName: string;
5883
+ protected roomUUID: string;
5884
+ protected authToken: string;
5885
+ protected organizationId: string;
5886
+ protected iceServers: IceServerInformation[];
5887
+ protected pluginInformation: PluginResponse[];
5888
+ protected userDetails: UserDetailsResponseV2;
5889
+ protected roomDetails: RoomDetails;
5890
+ readonly peerId: string;
5891
+ context: Context<ContextState>;
5892
+ readonly logger: Logger;
5893
+ constructor(context: Context<ContextState>, options?: APIOptions);
5894
+ setAuthToken(token: string, options?: {
5895
+ bearer?: boolean;
5896
+ }): void;
5897
+ setHeader(key: string, value: string): void;
5898
+ setRoomName(name: string): void;
5899
+ setRoomUUID(id: string): void;
5900
+ setOrganizationId(id: string): void;
5779
5901
  }
5780
5902
  interface Overrides {
5781
5903
  disableSimulcast?: boolean;
@@ -5786,82 +5908,84 @@ interface Overrides {
5786
5908
  forceRelay?: boolean;
5787
5909
  [key: string]: boolean | string | number | Record<string, any>;
5788
5910
  }
5789
- interface RealtimeKitClientOptions {
5790
- authToken: string;
5791
- defaults?: DefaultOptions;
5792
- modules?: Modules;
5793
- overrides?: Overrides;
5794
- baseURI?: string;
5795
- onError?: (error: RTKError) => void;
5796
- cachedUserDetails?: CachedUserDetails;
5797
- }
5798
- declare class RealtimeKitClient {
5799
- private constructor();
5800
- readonly peerId: string;
5801
- static initMedia(options?: {
5802
- video?: boolean;
5803
- audio?: boolean;
5804
- constraints?: MediaConstraints;
5805
- }, skipAwaits?: boolean, cachedUserDetails?: CachedUserDetails): RTKSelfMedia$1;
5806
- static init(options: RealtimeKitClientOptions): Promise<RealtimeKitClient>;
5807
- join(): Promise<void>;
5808
- leave(state?: LeaveRoomState): Promise<void>;
5809
- readonly participants: Readonly<RTKParticipants$1>;
5810
- readonly self: Readonly<RTKSelf$1>;
5811
- readonly meta: Readonly<RTKMeta$1>;
5812
- readonly ai: Readonly<RTKAi>;
5813
- readonly plugins: Readonly<RTKPlugins$1>;
5814
- readonly chat: Readonly<RTKChat$1>;
5815
- readonly polls: Readonly<RTKPolls$1>;
5816
- readonly connectedMeetings: Readonly<RTKConnectedMeetings$1>;
5817
- readonly recording: Readonly<RTKRecording$1>;
5818
- readonly livestream: Readonly<RTKLivestream$1>;
5819
- readonly stage: Readonly<RTKStage>;
5820
- readonly stores: Readonly<RTKStoreManager>;
5821
- readonly audio: AudioPlaybackManager;
5822
- readonly __internals__: Readonly<RTKInternals>;
5823
- joinRoom(): Promise<void>;
5824
- leaveRoom(state?: LeaveRoomState): Promise<void>;
5911
+ interface ClientOptions {
5912
+ authToken: string;
5913
+ defaults?: DefaultOptions;
5914
+ modules?: Modules;
5915
+ overrides?: Overrides;
5916
+ baseURI?: string;
5917
+ onError?: (error: ClientError) => void;
5918
+ cachedUserDetails?: CachedUserDetails;
5919
+ }
5920
+ declare class Client {
5921
+ private constructor();
5922
+ readonly peerId: string;
5923
+ static initMedia(options?: {
5924
+ video?: boolean;
5925
+ audio?: boolean;
5926
+ constraints?: MediaConstraints;
5927
+ }, skipAwaits?: boolean, cachedUserDetails?: CachedUserDetails): SelfMedia;
5928
+ static init(options: ClientOptions): Promise<Client>;
5929
+ private static setupContext;
5930
+ join(): Promise<void>;
5931
+ leave(state?: LeaveRoomState): Promise<void>;
5932
+ readonly participants: Readonly<Participants>;
5933
+ readonly self: Readonly<Self>;
5934
+ readonly meta: Readonly<Meta>;
5935
+ readonly ai: Readonly<Ai>;
5936
+ readonly plugins: Readonly<Plugins>;
5937
+ readonly chat: Readonly<Chat>;
5938
+ readonly polls: Readonly<Polls>;
5939
+ readonly connectedMeetings: Readonly<ConnectedMeetings>;
5940
+ readonly recording: Readonly<Recording>;
5941
+ readonly livestream: Readonly<Livestream>;
5942
+ readonly stage: Readonly<Stage>;
5943
+ readonly stores: Readonly<StoreManager>;
5944
+ readonly audio: AudioPlaybackManager;
5945
+ readonly __internals__: Readonly<Internals>;
5946
+ joinRoom(): Promise<void>;
5947
+ leaveRoom(state?: LeaveRoomState): Promise<void>;
5825
5948
  }
5826
5949
  declare enum RequestToJoinType {
5827
5950
  PRESENT = "REQUEST_TO_PRESENT"
5828
5951
  }
5829
- type RTKParticipant = Readonly<RTKParticipant$1>;
5830
- type RTKParticipants = Readonly<RTKParticipants$1>;
5831
- type RTKParticipantMap = Readonly<RTKParticipantMap$1>;
5832
- type RTKPlugin = Readonly<RTKPlugin$1>;
5833
- type RTKPlugins = Readonly<RTKPlugins$1>;
5834
- type RTKPluginMap = Readonly<RTKPluginMap$1>;
5835
- type RTKMeta = Readonly<RTKMeta$1>;
5836
- type RTKSelf = Readonly<RTKSelf$1>;
5837
- type RTKSelfMedia = Readonly<RTKSelfMedia$1>;
5838
- type RTKChat = Readonly<RTKChat$1>;
5839
- type RTKPolls = Readonly<RTKPolls$1>;
5840
- type RTKRecording = Readonly<RTKRecording$1>;
5841
- type RTKLivestream = Readonly<RTKLivestream$1>;
5842
- type RTKStore = RTKStore$1;
5843
- type RTKConnectedMeetings = Readonly<RTKConnectedMeetings$1>;
5844
- type RTKPermissionsPreset = Readonly<RTKPermissionsPreset$1>;
5845
- type RTKThemePreset = Readonly<RTKThemePreset$1>;
5846
- type RTKLogger = RTKLogger$1;
5847
- type RTKType = {
5848
- callStats?: unknown;
5849
- RTKTelemetry?: typeof RTKTelemetry;
5952
+ type RTKConfigOptions = Pick<ControllerOptions, Exclude<keyof ControllerOptions, 'peerId'>>;
5953
+ type RTKParticipant = Readonly<Participant>;
5954
+ type RTKParticipants = Readonly<Participants>;
5955
+ type RTKParticipantMap = Readonly<ParticipantMap>;
5956
+ type RTKPlugin = Readonly<Plugin>;
5957
+ type RTKPlugins = Readonly<Plugins>;
5958
+ type RTKPluginMap = Readonly<PluginMap>;
5959
+ type RTKMeta = Readonly<Meta>;
5960
+ type RTKSelf = Readonly<Self>;
5961
+ type RTKSelfMedia = Readonly<SelfMedia>;
5962
+ type RTKChat = Readonly<Chat>;
5963
+ type RTKPolls = Readonly<Polls>;
5964
+ type RTKRecording = Readonly<Recording>;
5965
+ type RTKLivestream = Readonly<Livestream>;
5966
+ type RTKStore = Store;
5967
+ type RTKConnectedMeetings = Readonly<ConnectedMeetings>;
5968
+ type RTKPermissionsPreset = Readonly<PermissionPreset>;
5969
+ type RTKThemePreset = Readonly<ThemePreset>;
5970
+ type RTKLogger = Logger;
5971
+ type ClientType = {
5972
+ callStats?: unknown;
5973
+ Telemetry?: typeof Telemetry;
5850
5974
  };
5851
- declare global {
5852
- interface Navigator {
5853
- RNLocalMediaHandlerImpl?: any;
5854
- RNAudioSampleHandlerImpl?: any;
5855
- RNBackgroundTimerImpl?: any;
5856
- RNDeviceInfoImpl?: any;
5857
- isReactNative?: boolean;
5858
- }
5859
- interface Window {
5860
- RTK?: RTKType;
5861
- FAST_DYTE?: boolean;
5862
- MediaStreamTrackProcessor?: any;
5863
- MediaStreamTrackGenerator?: any;
5864
- TransformStream?: any;
5865
- }
5866
- }
5867
- export { ActiveTab, ActiveTabType, AudioConsumerScoreStats, AudioMiddleware, AudioProducerScoreStats, BroadcastMessagePayload, ChatChannel, ChatUpdateParams, CustomMessage, DeviceConfig, RTKBasicParticipant, RTKChat, RealtimeKitClientOptions, RTKConnectedMeetings, RTKLivestream, RTKMeta, RTKParticipant, RTKParticipantMap, RTKParticipants, RTKPermissionsPreset, RTKPlugin, RTKPluginMap, RTKPlugins, RTKPolls, RTKRecording, RTKSelf, RTKSelfMedia, RTKStore, RTKThemePreset, FileMessage, ImageMessage, JoinedPeer, LeaveRoomState, LivestreamIngestionCredentials, LivestreamState, LogData, MediaConnectionState, MediaConnectionUpdate, MediaKind, MediaPermission, Message, ProducerScoreStats, RecordingState, RequestToJoinType, SocketConnectionState, StageStatus, StartLivestreamConfig, TextMessage, VideoConsumerScoreStats, VideoMiddleware, VideoProducerScoreStats, VideoQualityConstraints, RealtimeKitClient as default, LeaveRoomState as leaveRoomState };
5975
+ declare global {
5976
+ interface Navigator {
5977
+ RNLocalMediaHandlerImpl?: any;
5978
+ RNAudioSampleHandlerImpl?: any;
5979
+ RNBackgroundTimerImpl?: any;
5980
+ RNDeviceInfoImpl?: any;
5981
+ isReactNative?: boolean;
5982
+ }
5983
+ interface Window {
5984
+ RTK?: ClientType;
5985
+ FAST_RTK?: boolean;
5986
+ MediaStreamTrackProcessor?: any;
5987
+ MediaStreamTrackGenerator?: any;
5988
+ TransformStream?: any;
5989
+ }
5990
+ }
5991
+ export { ActiveTab, ActiveTabType, AudioConsumerScoreStats, AudioMiddleware, AudioProducerScoreStats, BroadcastMessagePayload, CachedUserDetails, ChatChannel, ChatUpdateParams, ClientError, ConsumerScoreStats, CustomMessage, DeviceConfig, FileMessage, ImageMessage, JoinedPeer, LeaveRoomState, LivestreamIngestionCredentials, LivestreamState, LogData, MediaConnectionState, MediaConnectionUpdate, MediaConstraints, MediaKind, MediaPermission, Message, ProducerScoreStats, BasicParticipant as RTKBasicParticipant, BasicParticipantsMap as RTKBasicParticipantsMap, RTKChat, ClientOptions as RTKClientOptions, RTKConfigOptions, RTKConnectedMeetings, RTKLivestream, RTKLogger, RTKMeta, RTKParticipant, RTKParticipantMap, RTKParticipants, RTKPermissionsPreset, RTKPlugin, RTKPluginMap, RTKPlugins, RTKPolls, RTKRecording, RTKSelf, RTKSelfMedia, RTKStore, StoreData as RTKStoreData, RateLimitConfig as RTKStoreRateLimitConfig, RTKThemePreset, RecordingState, RequestToJoinType, SocketConnectionState, StageStatus, StartLivestreamConfig, TextMessage, UserDetailsResponseV2, VideoConsumerScoreStats, VideoMiddleware, VideoProducerScoreStats, VideoQualityConstraints, Client as default, LeaveRoomState as leaveRoomState };