@cloudflare/realtimekit 1.2.0-staging.9 → 1.2.1-staging.1

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,90 +2914,162 @@ 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;
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;
2849
2937
  }
2850
- type StageSocketMessage = GetStageRequestsResponse | GetStagePeersResponse | DenyStageAccessRequest | PeerStatusUpdate;
2851
- declare class StageSocketHandler {
2852
- constructor(socketService: SocketService);
2853
- getStageRequests(): Promise<GetStageRequestsResponse>;
2854
- requestAccess(): void;
2855
- cancelRequestAccess(): void;
2856
- grantAccess(userIds: string[]): Promise<void>;
2857
- denyAccess(userIds: string[]): Promise<void>;
2858
- joinStage(): Promise<{
2859
- id: string;
2860
- payload: Uint8Array;
2861
- }>;
2862
- leaveStage(userId: string): Promise<{
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<{
2863
2990
  id: string;
2864
2991
  payload: Uint8Array;
2865
2992
  }>;
2866
- kick(userIds: string[]): Promise<{
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;
2867
3001
  id: string;
2868
- payload: Uint8Array;
2869
3002
  }>;
2870
- on(event: number, handler: (socketMessage: StageSocketMessage, messageId?: string) => void): void;
2871
- getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
2872
- }
2873
- type StageStatus = 'OFF_STAGE' | 'REQUESTED_TO_JOIN_STAGE' | 'ACCEPTED_TO_JOIN_STAGE' | 'ON_STAGE';
2874
- interface StageRequestPayload {
2875
- displayName: string;
2876
- userId: string;
2877
- peerId: string;
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;
2878
3020
  }
2879
- type StageEvents = {
2880
- ['stageAccessRequestUpdate']: (requests?: StageRequestPayload[]) => void;
2881
- ['stageStatusUpdate']: (status: StageStatus) => void;
2882
- ['newStageRequest']: (payload: {
2883
- count: number;
2884
- }) => void;
2885
- ['stageRequestApproved']: () => void;
2886
- ['stageRequestRejected']: () => void;
3021
+ type PipEvents = {
3022
+ ['cameraToggled']: () => void;
3023
+ ['micToggled']: () => void;
3024
+ ['hangup']: () => void;
3025
+ ['pipStarted']: () => void;
3026
+ ['pipEnded']: () => void;
2887
3027
  ['*']: (eventName: string, ...args: any[]) => void;
2888
3028
  };
2889
- declare class RTKStage extends RTKTypedEventEmitter<StageEvents> {
2890
- readonly telemetry: RTKTelemetry;
2891
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, participants: RTKParticipants, stageSocketHandler: StageSocketHandler, roomSocketHandler: RoomSocketHandler);
2892
- readonly status: StageStatus;
2893
- getAccessRequests(): {
2894
- stageRequests: StageRequestPayload[];
2895
- };
2896
- requestAccess(): Promise<void>;
2897
- cancelRequestAccess(): Promise<void>;
2898
- grantAccess(userIds: string[]): Promise<void>;
2899
- denyAccess(userIds: string[]): Promise<void>;
2900
- readonly peerId: string;
2901
- join(): Promise<void>;
2902
- leave(): Promise<void>;
2903
- kick(userIds: string[]): Promise<{
2904
- id: string;
2905
- payload: Uint8Array;
2906
- }>;
2907
- }
2908
- interface ResponseStatus {
2909
- success: boolean;
2910
- message: string;
2911
- }
2912
- type MediaPermission$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE' | 'CANCELED';
2913
- declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter$1 {
2914
- readonly logger: RTKLogger$1;
2915
- constructor(context: Context<RTKContextState>);
2916
- safeEmit(event: string, ...args: any[]): boolean;
2917
- safeEmitAsPromise<T extends keyof TransportPromiseEvents>(event: T, ...args: any[]): Promise<TransportPromiseEvents[T]>;
2918
- safeEmitAsPromiseWithTimeout<T extends keyof TransportPromiseEvents>(event: T, timeout: number, ...args: any[]): Promise<TransportPromiseEvents[T]>;
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;
2919
3073
  }
2920
3074
  declare enum TransportState {
2921
3075
  NEW = "new",
@@ -2926,11 +3080,6 @@ declare enum TransportState {
2926
3080
  FAILED = "failed",
2927
3081
  CLOSED = "closed"
2928
3082
  }
2929
- declare enum MediaNodeType {
2930
- HIVE = 1,
2931
- ROOM_NODE = 2,
2932
- CF = 3
2933
- }
2934
3083
  type MediaConnectionState = {
2935
3084
  recv: {
2936
3085
  state: string;
@@ -2939,6 +3088,193 @@ type MediaConnectionState = {
2939
3088
  state: string;
2940
3089
  };
2941
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[];
3277
+ }
2942
3278
  interface GenericHandlerResult {
2943
3279
  offerSdp: RTCSessionDescriptionInit;
2944
3280
  callback: (answer: RTCSessionDescriptionInit) => Promise<any>;
@@ -2967,18 +3303,24 @@ interface HandlerSendResult extends GenericHandlerResult {
2967
3303
  mid: string;
2968
3304
  }
2969
3305
  declare abstract class HandlerInterface<TransportPromiseEvents> extends EnhancedEventEmitter<TransportPromiseEvents> {
2970
- 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;
2971
3312
  enableHighBitrate: boolean;
2972
3313
  enableStereo: boolean;
2973
3314
  enableDtx: boolean;
2974
- sfu: MediaNodeType;
2975
3315
  readonly midTransceiverMap: Map<string, RTCRtpTransceiver>;
2976
3316
  abstract readonly name: string;
2977
3317
  close(): void;
2978
3318
  restartIce(): Promise<GenericHandlerResult>;
2979
3319
  init({ direction, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, onTrackHandler, }: HandlerRunOptions): void;
2980
3320
  connect(): Promise<GenericHandlerResult>;
2981
- getTransportStats(): Promise<RTCStatsReport>;
3321
+ getTransportStats(): Promise<RTCStatsReport>;
3322
+ protected _assertSendDirection(): void;
3323
+ protected _assertRecvDirection(): void;
2982
3324
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
2983
3325
  stopSending(localId: string): Promise<GenericHandlerResult>;
2984
3326
  abstract send(options: HandlerSendOptions): Promise<HandlerSendResult>;
@@ -2989,7 +3331,6 @@ declare abstract class HandlerInterface<TransportPromiseEvents> extends Enhanced
2989
3331
  _addEventListeners(): void;
2990
3332
  addCustomEventListeners(): void;
2991
3333
  }
2992
- type MediaKind$1 = 'audio' | 'video';
2993
3334
  type DCMessage = {
2994
3335
  type: string;
2995
3336
  payload: Record<string, unknown>;
@@ -3018,26 +3359,26 @@ type ConsumerOptions = {
3018
3359
  transceiver: RTCRtpTransceiver;
3019
3360
  closeTranscieverOnClose?: boolean;
3020
3361
  };
3021
- type MediaKind = 'audio' | 'video';
3022
- declare class Consumer extends EnhancedEventEmitter<TransportPromiseEvents> {
3023
- readonly rtpReceiver: RTCRtpReceiver;
3024
- readonly id: string;
3025
- readonly localId: string;
3026
- readonly producerId: string;
3027
- readonly producingTransportId: string;
3028
- readonly mimeType: string;
3029
- readonly track: MediaStreamTrack;
3030
- readonly peerId: string;
3031
- readonly appData: Record<string, unknown>;
3032
- readonly transceiver: RTCRtpTransceiver;
3033
- constructor(context: Context<RTKContextState>, opts: ConsumerOptions);
3034
- readonly closed: boolean;
3035
- readonly kind: MediaKind;
3036
- readonly paused: boolean;
3037
- close(reason?: string, closeTranscieverOnClose?: boolean): void;
3038
- getStats(): Promise<RTCStatsReport>;
3039
- pause(): void;
3040
- resume(): void;
3362
+ type MediaKind$1 = 'audio' | 'video';
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;
3041
3382
  }
3042
3383
  declare const localMediaEvents: readonly [
3043
3384
  "AUDIO_TRACK_CHANGE",
@@ -3051,173 +3392,447 @@ declare const localMediaEvents: readonly [
3051
3392
  "DEVICE_LIST_UPDATED"
3052
3393
  ];
3053
3394
  type LocalMediaEvents = (typeof localMediaEvents)[number];
3054
- type ParticipantEvents = {
3055
- ['videoUpdate']: (payload: {
3056
- videoEnabled: boolean;
3057
- videoTrack: MediaStreamTrack;
3058
- }) => void;
3059
- ['audioUpdate']: (payload: {
3060
- audioEnabled: boolean;
3061
- audioTrack: MediaStreamTrack;
3062
- }) => void;
3063
- ['screenShareUpdate']: (payload: {
3064
- screenShareEnabled: boolean;
3065
- screenShareTracks: {
3066
- audio: MediaStreamTrack;
3067
- video: MediaStreamTrack;
3068
- };
3069
- }) => void;
3070
- ['pinned']: (payload: RTKParticipant) => void;
3071
- ['unpinned']: (payload: RTKParticipant) => void;
3072
- ['poorConnection']: (payload: {
3073
- score: number;
3074
- kind: string;
3075
- }) => void;
3076
- ['stageStatusUpdate']: (payload: RTKParticipant) => void;
3077
- ['mediaScoreUpdate']: (payload: {
3078
- kind: MediaKind;
3079
- isScreenshare: boolean;
3080
- score: number;
3081
- participantId: string;
3082
- scoreStats: ConsumerScoreStats;
3083
- }) => void;
3084
- ['kicked']: () => void;
3085
- ['*']: (event: string, ...args: any[]) => void;
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;
3427
+ };
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;
3086
3482
  };
3087
- type SelfEvents = {
3088
- ['toggleTile']: (payload: {
3089
- hidden: boolean;
3090
- }) => void;
3091
- ['videoUpdate']: (payload: {
3092
- videoEnabled: boolean;
3093
- videoTrack: MediaStreamTrack;
3094
- }) => void;
3095
- ['audioUpdate']: (payload: {
3096
- audioEnabled: boolean;
3097
- audioTrack: MediaStreamTrack;
3098
- }) => void;
3099
- ['screenShareUpdate']: (payload: {
3100
- screenShareEnabled: boolean;
3101
- screenShareTracks: {
3102
- audio?: MediaStreamTrack;
3103
- video?: MediaStreamTrack;
3104
- };
3105
- }) => void;
3106
- ['deviceUpdate']: ({ device }: {
3107
- device: MediaDeviceInfo;
3108
- }) => void;
3109
- ['deviceListUpdate']: (changedDevices: {
3110
- added: MediaDeviceInfo[];
3111
- removed: MediaDeviceInfo[];
3112
- devices: MediaDeviceInfo[];
3113
- }) => void;
3114
- ['pinned']: (payload: RTKSelf) => void;
3115
- ['unpinned']: (payload: RTKSelf) => void;
3116
- ['mediaPermissionUpdate']: (payload: {
3117
- message: keyof typeof MediaPermission;
3118
- kind: 'audio' | 'video' | 'screenshare';
3119
- }) => void;
3120
- ['mediaPermissionError']: (payload: {
3121
- message: keyof typeof MediaPermission;
3122
- constraints: any;
3123
- kind: 'audio' | 'video' | 'screenshare';
3124
- }) => void;
3125
- ['mediaScoreUpdate']: (payload: {
3126
- kind: MediaKind;
3127
- isScreenshare: boolean;
3128
- score: number;
3129
- participantId: string;
3130
- scoreStats: ProducerScoreStats;
3131
- }) => void;
3132
- ['waitlisted']: () => void;
3133
- ['roomLeft']: (payload: {
3134
- state: LeaveRoomState;
3135
- }) => void;
3136
- ['roomJoined']: (payload: {
3137
- reconnected: boolean;
3138
- }) => void;
3139
- ['autoplayError']: (error: Error) => void;
3140
- ['*']: (event: string, ...args: any[]) => void;
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;
3141
3491
  };
3142
- declare class LocalMediaHandler extends RTKEventEmitter<LocalMediaEvents> {
3143
- readonly telemetry: RTKTelemetry;
3144
- audioUpdateInProgress: boolean;
3145
- videoUpdateInProgress: boolean;
3146
- constructor(context: Context<RTKContextState>, mediaConstraints: MediaConstraints, isNonPreferredDevice?: (media: MediaDeviceInfo) => boolean, autoSwitchDevice?: boolean);
3147
- context: Context<RTKContextState>;
3148
- repopulateAvailableDevices(): Promise<boolean>;
3149
- setupStreams({ audio, video, }: {
3150
- audio: boolean;
3151
- video: boolean;
3152
- }): Promise<void>;
3153
- getCurrentDevices(): {
3154
- audio: MediaDeviceInfo;
3155
- video: MediaDeviceInfo;
3156
- speaker: MediaDeviceInfo;
3157
- };
3158
- readonly permissions: {
3159
- audio?: MediaPermission$1;
3160
- video?: MediaPermission$1;
3161
- screenshare?: MediaPermission$1;
3162
- };
3163
- getAllDevices(): Promise<InputDeviceInfo[]>;
3164
- getDeviceById(deviceId: string, kind?: 'audioinput' | 'audiooutput' | 'videoinput'): Promise<MediaDeviceInfo>;
3165
- readonly rawAudioTrack: MediaStreamTrack;
3166
- readonly audioTrack: MediaStreamTrack;
3167
- readonly audioEnabled: boolean;
3168
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3169
- disableAudio(): void;
3170
- getAudioDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3171
- setAudioDevice(device: MediaDeviceInfo): Promise<void>;
3172
- setupSpeaker(): Promise<void>;
3173
- setSpeakerDevice(device: MediaDeviceInfo): Promise<void>;
3174
- readonly rawVideoTrack: MediaStreamTrack;
3175
- readonly videoTrack: MediaStreamTrack;
3176
- readonly videoEnabled: boolean;
3177
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3178
- disableVideo(): void;
3179
- getVideoDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3180
- setVideoDevice(device: MediaDeviceInfo): Promise<void>;
3181
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3182
- readonly screenShareTracks: {
3183
- audio: MediaStreamTrack;
3184
- video: MediaStreamTrack;
3185
- };
3186
- readonly screenShareEnabled: boolean;
3187
- enableScreenShare(): Promise<void>;
3188
- disableScreenShare(): Promise<void>;
3189
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3190
- getSpeakerDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3191
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3192
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3193
- removeAllAudioMiddlewares(): Promise<ResponseStatus>;
3194
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3195
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3196
- removeAllVideoMiddlewares(): Promise<ResponseStatus>;
3197
- setVideoMiddlewareGlobalConfig(config: VideoMiddlewareGlobalConfig): Promise<void>;
3198
- destruct(): void;
3199
- onDeviceChange(changedDevices: {
3200
- added: MediaDeviceInfo[];
3201
- removed: MediaDeviceInfo[];
3202
- devices: MediaDeviceInfo[];
3203
- }, skipDeviceChange: boolean): Promise<void>;
3204
- removeAllTracks(): void;
3205
- removeAudioTrack(): void;
3206
- removeVideoTrack(): void;
3207
- removeDocumentEventListeners(): 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;
3208
3497
  }
3209
- declare enum MediaPermission {
3210
- NOT_REQUESTED = 0,
3211
- ACCEPTED = 1,
3212
- DENIED = 2,
3213
- CANCELED = 3,
3214
- SYSTEM_DENIED = 4,
3215
- COULD_NOT_START = 5,
3216
- NO_DEVICES_AVAILABLE = 6
3498
+ type StageSocketMessage = GetStageRequestsResponse | GetStagePeersResponse | DenyStageAccessRequest | PeerStatusUpdate;
3499
+ declare class StageSocketHandler {
3500
+ constructor(socketService: SocketService);
3501
+ getStageRequests(): Promise<GetStageRequestsResponse>;
3502
+ requestAccess(): void;
3503
+ cancelRequestAccess(): void;
3504
+ grantAccess(userIds: string[]): Promise<void>;
3505
+ denyAccess(userIds: string[]): Promise<void>;
3506
+ joinStage(): Promise<{
3507
+ id: string;
3508
+ payload: Uint8Array;
3509
+ }>;
3510
+ leaveStage(userId: string): Promise<{
3511
+ id: string;
3512
+ payload: Uint8Array;
3513
+ }>;
3514
+ kick(userIds: string[]): Promise<{
3515
+ id: string;
3516
+ payload: Uint8Array;
3517
+ }>;
3518
+ on(event: number, handler: (socketMessage: StageSocketMessage, messageId?: string) => void): void;
3519
+ getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
3217
3520
  }
3218
- type AudioMiddleware = (audioContext: AudioContext) => Promise<ScriptProcessorNode | AudioWorkletNode>;
3219
- type VideoMiddleware = (() => Promise<(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => Promise<void>>) | ((helpers: {
3220
- canvas: HTMLCanvasElement;
3521
+ type StageStatus = 'OFF_STAGE' | 'REQUESTED_TO_JOIN_STAGE' | 'ACCEPTED_TO_JOIN_STAGE' | 'ON_STAGE';
3522
+ interface StageRequestPayload {
3523
+ displayName: string;
3524
+ userId: string;
3525
+ peerId: string;
3526
+ }
3527
+ type StageEvents = {
3528
+ ['stageAccessRequestUpdate']: (requests?: StageRequestPayload[]) => void;
3529
+ ['stageStatusUpdate']: (status: StageStatus) => void;
3530
+ ['newStageRequest']: (payload: {
3531
+ count: number;
3532
+ }) => void;
3533
+ ['stageRequestApproved']: () => void;
3534
+ ['stageRequestRejected']: () => void;
3535
+ ['*']: (eventName: string, ...args: any[]) => void;
3536
+ };
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
+ }>;
3556
+ }
3557
+ declare const modes: readonly [
3558
+ "ACTIVE_GRID",
3559
+ "PAGINATED",
3560
+ "MANUAL"
3561
+ ];
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[];
3578
+ };
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;
3635
+ };
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>;
3823
+ }
3824
+ declare enum MediaPermission {
3825
+ NOT_REQUESTED = 0,
3826
+ ACCEPTED = 1,
3827
+ DENIED = 2,
3828
+ CANCELED = 3,
3829
+ SYSTEM_DENIED = 4,
3830
+ COULD_NOT_START = 5,
3831
+ NO_DEVICES_AVAILABLE = 6
3832
+ }
3833
+ type AudioMiddleware = (audioContext: AudioContext) => Promise<ScriptProcessorNode | AudioWorkletNode>;
3834
+ type VideoMiddleware = (() => Promise<(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => Promise<void>>) | ((helpers: {
3835
+ canvas: HTMLCanvasElement;
3221
3836
  WorkerTimers: typeof WorkerTimers;
3222
3837
  }) => Promise<void>);
3223
3838
  type VideoMiddlewareGlobalConfig = {
@@ -3256,11 +3871,11 @@ type ScreenshareQualityConstraints = {
3256
3871
  displaySurface?: 'window' | 'monitor' | 'browser';
3257
3872
  selfBrowserSurface?: 'include' | 'exclude';
3258
3873
  };
3259
- interface RTKMediaTrackConstraints extends MediaTrackConstraints {
3260
- optional?: Array<object>;
3874
+ interface ClientMediaTrackConstraints extends MediaTrackConstraints {
3875
+ optional?: Array<object>;
3261
3876
  }
3262
- interface RTKMediaStreamConstraints extends MediaStreamConstraints {
3263
- audio?: boolean | RTKMediaTrackConstraints;
3877
+ interface ClientMediaStreamConstraints extends MediaStreamConstraints {
3878
+ audio?: boolean | ClientMediaTrackConstraints;
3264
3879
  }
3265
3880
  type MediaConstraints = {
3266
3881
  audio?: AudioQualityConstraints;
@@ -3404,725 +4019,147 @@ type PresetV2CamelCased = {
3404
4019
  spacingBase: number;
3405
4020
  theme: Theme;
3406
4021
  };
3407
- configDiff: any;
3408
- };
3409
- version?: string;
3410
- id?: string;
3411
- name?: string;
3412
- };
3413
- type MaxVideoStreams = PresetV2CamelCased['config']['maxVideoStreams'];
3414
- declare class RTKThemePreset$1 {
3415
- private constructor();
3416
- static fromResponse(preset: PresetV2CamelCased): RTKThemePreset$1;
3417
- static default(): RTKThemePreset$1;
3418
- static init(preset?: PresetV2CamelCased, useDefault?: boolean): RTKThemePreset$1;
3419
- readonly setupScreen: Readonly<{
3420
- isEnabled: boolean;
3421
- }>;
3422
- readonly waitingRoom: Readonly<{
3423
- isEnabled: boolean;
3424
- }>;
3425
- readonly controlBar: Readonly<{
3426
- isEnabled: boolean;
3427
- elements?: {
3428
- chat?: boolean;
3429
- fullscreen?: boolean;
3430
- invite?: boolean;
3431
- layout?: boolean;
3432
- participants?: boolean;
3433
- plugins?: boolean;
3434
- polls?: boolean;
3435
- reactions?: boolean;
3436
- screenshare?: boolean;
3437
- };
3438
- }>;
3439
- readonly header: Readonly<{
3440
- isEnabled: boolean;
3441
- elements: {
3442
- logo: string;
3443
- timer: boolean;
3444
- title: boolean;
3445
- participantCount: boolean;
3446
- changeLayout: boolean;
3447
- };
3448
- }>;
3449
- readonly pipMode: Readonly<boolean>;
3450
- readonly viewType: Readonly<ViewType>;
3451
- readonly livestreamViewerQualities: Readonly<LivestreamViewerMediaQualityType[]>;
3452
- readonly maxVideoStreams: Readonly<MaxVideoStreams>;
3453
- readonly maxScreenShareCount: Readonly<number>;
3454
- readonly plugins: Readonly<string[]>;
3455
- readonly disabledPlugins: Readonly<string[]>;
3456
- readonly designTokens: Readonly<PresetV2CamelCased['ui']['designTokens']>;
3457
- readonly configDiff: Readonly<PresetV2CamelCased['ui']['configDiff']>;
3458
- readonly mediaConstraints: Readonly<PresetMediaConstraints>;
3459
- readonly name: string;
3460
- }
3461
- type PresetPermissions = PresetV2CamelCased['permissions'];
3462
- type MediaRoomType = 'HIVE' | 'CF';
3463
- type PermissionEvents = {
3464
- ['chatUpdate']: () => void;
3465
- ['pollsUpdate']: () => void;
3466
- ['pluginsUpdate']: () => void;
3467
- ['permissionsUpdate']: (patch: PresetUpdates) => void;
3468
- ['*']: () => void;
3469
- };
3470
- declare class RTKPermissionsPreset$1 extends RTKTypedEventEmitter<PermissionEvents> {
3471
- private constructor();
3472
- static fromResponse(response: PresetPermissions, viewType: ViewType, context: Context<RTKContextState>): RTKPermissionsPreset$1;
3473
- static default(context: Context<RTKContextState>, viewType: ViewType): RTKPermissionsPreset$1;
3474
- static init(context: Context<RTKContextState>, viewType: ViewType, response?: PresetPermissions): RTKPermissionsPreset$1;
3475
- readonly mediaRoomType: Readonly<MediaRoomType>;
3476
- readonly stageEnabled: Readonly<boolean>;
3477
- readonly acceptStageRequests: Readonly<boolean>;
3478
- readonly stageAccess: Readonly<MediaProductionPermissionType>;
3479
- readonly acceptWaitingRequests: Readonly<boolean>;
3480
- readonly requestProduceVideo: Readonly<boolean>;
3481
- readonly requestProduceAudio: Readonly<boolean>;
3482
- readonly requestProduceScreenshare: Readonly<boolean>;
3483
- readonly canAllowParticipantAudio: Readonly<boolean>;
3484
- readonly canAllowParticipantScreensharing: Readonly<boolean>;
3485
- readonly canAllowParticipantVideo: Readonly<boolean>;
3486
- readonly canDisableParticipantAudio: Readonly<boolean>;
3487
- readonly canDisableParticipantVideo: Readonly<boolean>;
3488
- readonly kickParticipant: Readonly<boolean>;
3489
- readonly pinParticipant: Readonly<boolean>;
3490
- readonly canRecord: Readonly<boolean>;
3491
- readonly waitingRoomType: Readonly<WaitingRoomTypes>;
3492
- readonly waitingRoomBehaviour: Readonly<WaitingRoomTypes>;
3493
- readonly plugins: Readonly<PresetPermissions['plugins']>;
3494
- readonly polls: Readonly<PresetPermissions['polls']>;
3495
- readonly produceVideo: Readonly<MediaProductionPermissionType>;
3496
- readonly requestProduce: Readonly<boolean>;
3497
- readonly canProduceVideo: Readonly<MediaProductionPermissionType>;
3498
- readonly produceScreenshare: Readonly<MediaProductionPermissionType>;
3499
- readonly canProduceScreenshare: Readonly<MediaProductionPermissionType>;
3500
- readonly produceAudio: Readonly<MediaProductionPermissionType>;
3501
- readonly canProduceAudio: Readonly<MediaProductionPermissionType>;
3502
- readonly chatPublic: Readonly<PresetPermissions['chat']['public']>;
3503
- readonly chatPrivate: Readonly<PresetPermissions['chat']['private']>;
3504
- readonly chatChannel: Readonly<PresetPermissions['chat']['channel']>;
3505
- readonly chatMessage: Readonly<PresetPermissions['chat']['message']>;
3506
- readonly connectedMeetings: Readonly<PresetPermissions['connectedMeetings']>;
3507
- readonly hiddenParticipant: Readonly<boolean>;
3508
- readonly showParticipantList: Readonly<boolean>;
3509
- readonly canChangeParticipantRole: Readonly<boolean>;
3510
- readonly canChangeParticipantPermissions: Readonly<boolean>;
3511
- readonly canChangeTheme: Readonly<boolean>;
3512
- readonly canPresent: Readonly<boolean>;
3513
- readonly acceptPresentRequests: Readonly<boolean>;
3514
- readonly canEditDisplayName: Readonly<boolean>;
3515
- readonly maxScreenShareCount: Readonly<number>;
3516
- readonly isRecorder: Readonly<boolean>;
3517
- readonly canSpotlight: Readonly<boolean>;
3518
- readonly canLivestream: Readonly<boolean>;
3519
- readonly transcriptionEnabled: Readonly<boolean>;
3520
- }
3521
- interface UserDetailsResponseV2 {
3522
- participant: UserDetailsResponse;
3523
- preset: PresetV2CamelCased;
3524
- }
3525
- type LeaveRoomState = 'kicked' | 'ended' | 'left' | 'rejected' | 'connected-meeting' | 'disconnected' | 'failed' | 'stageLeft';
3526
- declare class SelfController {
3527
- readonly self: RTKSelf$1;
3528
- readonly authToken: string;
3529
- readonly peerId: string;
3530
- viewType: ViewType;
3531
- readonly telemetry: RTKTelemetry;
3532
- readonly logger: RTKLogger$1;
3533
- readonly mediaJoined: boolean;
3534
- private constructor();
3535
- static init(context: Context<RTKContextState>, roomSocketHandler: RoomSocketHandler, participant: UserDetailsResponseV2['participant'], permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1): Promise<SelfController>;
3536
- shareMediaTracks(): Promise<void>;
3537
- resetSelf(shouldAutoJoin: boolean): Promise<void>;
3538
- joinRoom(reconnected?: boolean): Promise<void>;
3539
- leaveRoom(state?: LeaveRoomState): Promise<void>;
3540
- }
3541
- declare class RTKSelfMedia$1 extends RTKTypedEventEmitter<SelfEvents> {
3542
- readonly peerId: string;
3543
- init(options?: {
3544
- video?: boolean;
3545
- audio?: boolean;
3546
- constraints?: MediaConstraints;
3547
- }, skipAwaits?: boolean, context?: Context<RTKContextState>): Promise<void>;
3548
- context: Context<RTKContextState>;
3549
- readonly audioTrack: MediaStreamTrack;
3550
- readonly rawAudioTrack: MediaStreamTrack;
3551
- readonly mediaPermissions: {
3552
- audio?: MediaPermission$1;
3553
- video?: MediaPermission$1;
3554
- screenshare?: MediaPermission$1;
3555
- };
3556
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3557
- success: boolean;
3558
- message: string;
3559
- }>;
3560
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3561
- success: boolean;
3562
- message: string;
3563
- }>;
3564
- removeAllAudioMiddlewares(): Promise<{
3565
- success: boolean;
3566
- message: string;
3567
- }>;
3568
- readonly videoTrack: MediaStreamTrack;
3569
- readonly rawVideoTrack: MediaStreamTrack;
3570
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3571
- success: boolean;
3572
- message: string;
3573
- }>;
3574
- setVideoMiddlewareGlobalConfig(config?: VideoMiddlewareGlobalConfig): Promise<void>;
3575
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3576
- success: boolean;
3577
- message: string;
3578
- }>;
3579
- removeAllVideoMiddlewares(): Promise<{
3580
- success: boolean;
3581
- message: string;
3582
- }>;
3583
- readonly screenShareTracks: {
3584
- audio: MediaStreamTrack;
3585
- video: MediaStreamTrack;
3586
- };
3587
- readonly audioEnabled: boolean;
3588
- readonly videoEnabled: boolean;
3589
- readonly screenShareEnabled: boolean;
3590
- enableAudio(): Promise<void>;
3591
- enableVideo(): Promise<void>;
3592
- disableAudio(): Promise<void>;
3593
- enableScreenShare(): Promise<void>;
3594
- disableScreenShare(): Promise<void>;
3595
- disableVideo(): Promise<void>;
3596
- getCurrentDevices(): {
3597
- audio: MediaDeviceInfo;
3598
- video: MediaDeviceInfo;
3599
- speaker: MediaDeviceInfo;
3600
- };
3601
- getAudioDevices(): Promise<MediaDeviceInfo[]>;
3602
- getVideoDevices(): Promise<MediaDeviceInfo[]>;
3603
- getSpeakerDevices(): Promise<MediaDeviceInfo[]>;
3604
- getDeviceById(deviceId: string, kind: 'audio' | 'video' | 'speaker'): Promise<MediaDeviceInfo>;
3605
- setDevice(device: MediaDeviceInfo): Promise<void>;
3606
- }
3607
- interface UserDetailsResponse {
3608
- id: string;
3609
- name: string;
3610
- email: string;
3611
- picture?: string;
3612
- loggedIn?: boolean;
3613
- scope?: string[];
3614
- clientSpecificId?: string;
3615
- customParticipantId?: string;
3616
- organizationId?: string;
3617
- }
3618
- declare class RTKSelf$1 extends RTKSelfMedia$1 {
3619
- name: string;
3620
- picture: string;
3621
- customParticipantId: string;
3622
- waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
3623
- role: any;
3624
- userId: string;
3625
- organizationId: string;
3626
- supportsRemoteControl: boolean;
3627
- device: DeviceConfig;
3628
- readonly telemetry: RTKTelemetry;
3629
- hidden: boolean;
3630
- readonly stageStatus: StageStatus;
3631
- readonly id: string;
3632
- readonly peerId: string;
3633
- presetName: string;
3634
- roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
3635
- private constructor();
3636
- static __init__(context: Context<RTKContextState>, details: UserDetailsResponse, permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1, presetName: string, skipAwaits?: boolean): Promise<RTKSelf$1>;
3637
- cleanupEvents(): void;
3638
- readonly permissions: RTKPermissionsPreset$1;
3639
- readonly config: RTKThemePreset$1;
3640
- readonly roomJoined: boolean;
3641
- setName(name: string): void;
3642
- setupTracks(options?: {
3643
- video?: boolean;
3644
- audio?: boolean;
3645
- forceReset?: boolean;
3646
- }): Promise<void>;
3647
- destructMediaHandler(): Promise<void>;
3648
- removeDocumentEventListeners(): Promise<void>;
3649
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3650
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3651
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3652
- enableScreenShare(): Promise<void>;
3653
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3654
- disableAudio(): Promise<void>;
3655
- disableVideo(): Promise<void>;
3656
- disableScreenShare(): Promise<void>;
3657
- getAllDevices(): Promise<InputDeviceInfo[]>;
3658
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
3659
- readonly isPinned: boolean;
3660
- pin(): Promise<void>;
3661
- unpin(): Promise<void>;
3662
- hide(): Promise<void>;
3663
- show(): void;
3664
- setDevice(device: MediaDeviceInfo): Promise<void>;
3665
- cleanUpTracks(): void;
3666
- playAudio(): Promise<void>;
3667
- registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
3668
- deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
3669
- }
3670
- interface RTKBasicParticipant {
3671
- userId: string;
3672
- name?: string;
3673
- picture?: string;
3674
- customParticipantId: string;
3675
- }
3676
- declare class RTKBasicParticipantsMap extends RTKEventEmitter<'participantsUpdate'> {
3677
- constructor(logger: RTKLogger$1);
3678
- __set(objId: string, obj: RTKBasicParticipant): Map<string, RTKBasicParticipant>;
3679
- __clear(): void;
3680
- get(objId: string): RTKBasicParticipant;
3681
- toArray(): RTKBasicParticipant[];
3682
- }
3683
- type ChatChannelSocketMessage = GetChatChannelResponse;
3684
- interface ChatChannel {
3685
- id: string;
3686
- displayName: string;
3687
- memberIds: string[];
3688
- displayPictureUrl?: string;
3689
- visibility?: string;
3690
- isDirectMessage?: boolean;
3691
- latestMessage?: Message;
3692
- unreadCount: number;
3693
- }
3694
- interface UpdateChannelRequestPayload {
3695
- memberIds?: string[];
3696
- displayName?: string;
3697
- displayPictureUrl?: string;
3698
- visibility?: string;
3699
- }
3700
- declare class ChatChannelSocketHandler {
3701
- readonly telemetry: RTKTelemetry;
3702
- readonly logger: RTKLogger$1;
3703
- constructor(context: Context<RTKContextState>, socketService: SocketService);
3704
- createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise<ChatChannel>;
3705
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
3706
- static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
3707
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
3708
- on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
3709
- }
3710
- declare enum ChatMessageType {
3711
- TEXT = 0,
3712
- IMAGE = 1,
3713
- FILE = 2,
3714
- CUSTOM = 3
3715
- }
3716
- type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
3717
- interface SearchFilters {
3718
- channelId?: string;
3719
- timestamp?: number;
3720
- size?: number;
3721
- reversed?: boolean;
3722
- }
3723
- declare class ChatSocketHandler {
3724
- readonly telemetry: RTKTelemetry;
3725
- readonly logger: RTKLogger$1;
3726
- constructor(context: Context<RTKContextState>, socketService: SocketService);
3727
- getChatMessages(): Promise<{
3728
- id: string;
3729
- payload: Uint8Array;
3730
- }>;
3731
- getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<GetPaginatedChatMessageRoomResponse>;
3732
- sendMessageToRoom(message: string, messageType: ChatMessageType): void;
3733
- sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
3734
- sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
3735
- sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
3736
- editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise<ChatMessage>;
3737
- deleteMessage(chatId: string, channelId?: string): Promise<{
3738
- channelId?: string;
3739
- id: string;
3740
- }>;
3741
- searchMessages(query: string, filters: SearchFilters): Promise<ChatMessage[]>;
3742
- getAllChannels(): Promise<ChatChannel[]>;
3743
- markLastReadMessage(channelId: string, message: Message): Promise<string>;
3744
- setPinState(message: Message, pin: boolean): Promise<PinChatMessageResponse>;
3745
- on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
3746
- }
3747
- declare class RTKSelectedPeers {
3748
- constructor();
3749
- add(peerId: string, priority: number, context: Context<RTKContextState>): number;
3750
- delete(peerId: string, context: Context<RTKContextState>): void;
3751
- index(peerId: string): number;
3752
- readonly peers: string[];
3753
- readonly compulsoryPeers: string[];
3754
- readonly activeSpeakerPeers: string[];
3755
- }
3756
- type PipEvents = {
3757
- ['cameraToggled']: () => void;
3758
- ['micToggled']: () => void;
3759
- ['hangup']: () => void;
3760
- ['pipStarted']: () => void;
3761
- ['pipEnded']: () => void;
3762
- ['*']: (eventName: string, ...args: any[]) => void;
3763
- };
3764
- declare class RTKPip extends RTKTypedEventEmitter<PipEvents> {
3765
- private constructor();
3766
- static _init(context: Context<RTKContextState>, self: RTKSelf$1): Promise<RTKPip>;
3767
- overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise<void>;
3768
- isSupported(): boolean;
3769
- readonly isActive: boolean;
3770
- init({ height, width }?: {
3771
- height?: number;
3772
- width?: number;
3773
- }): void;
3774
- enableSource(source: string): void;
3775
- disableSource(source: string): void;
3776
- addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
3777
- updateSource(id: string, source: any): void;
3778
- removeSource(id: string): void;
3779
- removePinnedSource(): void;
3780
- removeAllSources(): void;
3781
- enable(): void;
3782
- disable: (partial?: boolean) => void;
3783
- }
3784
- type TranscriptionData = {
3785
- id: string;
3786
- name: string;
3787
- peerId: string;
3788
- userId: string;
3789
- customParticipantId: string;
3790
- transcript: string;
3791
- isPartialTranscript: boolean;
3792
- date: Date;
3793
- };
3794
- type AiEvents = {
3795
- ['transcript']: (t: TranscriptionData) => void;
3796
- ['*']: (event: string, ...args: any[]) => void;
3797
- };
3798
- declare class RTKAi extends RTKTypedEventEmitter<AiEvents> {
3799
- transcripts: TranscriptionData[];
3800
- readonly telemetry: RTKTelemetry;
3801
- constructor(context: Context<RTKContextState>);
3802
- static init(context: Context<RTKContextState>, transcriptionEnabled: boolean): Promise<RTKAi>;
3803
- static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
3804
- static parseTranscripts(transcriptData: string): TranscriptionData[];
3805
- getActiveTranscript(): Promise<void>;
3806
- onTranscript(transcript: TranscriptionData): Promise<void>;
3807
- }
3808
- type ActiveTabType = 'screenshare' | 'plugin';
3809
- interface ActiveTab {
3810
- type: ActiveTabType;
3811
- id: string;
3812
- }
3813
- declare enum TabChangeSource {
3814
- User = 0,
3815
- Meeting = 1
3816
- }
3817
- interface MediaConnectionUpdate {
3818
- transport: 'consuming' | 'producing';
3819
- state: string;
3820
- reconnected: boolean;
3821
- }
3822
- type MetaEvents = {
3823
- ['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
3824
- ['socketConnectionUpdate']: (state: SocketConnectionState) => void;
3825
- ['poorConnection']: (payload: {
3826
- score: number;
3827
- }) => void;
3828
- ['meetingStartTimeUpdate']: (payload: {
3829
- meetingStartedTimestamp: Date;
3830
- }) => void;
3831
- ['transcript']: (t: TranscriptionData) => void;
3832
- ['activeTabUpdate']: (tab: ActiveTab) => void;
3833
- ['selfTabUpdate']: (tab: ActiveTab) => void;
3834
- ['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
3835
- ['*']: (event: string, ...args: any[]) => void;
3836
- };
3837
- declare class RTKMeta$1 extends RTKTypedEventEmitter<MetaEvents> {
3838
- selfActiveTab: ActiveTab | undefined;
3839
- readonly socketState: SocketConnectionState;
3840
- readonly mediaState: MediaConnectionState;
3841
- broadcastTabChanges: boolean;
3842
- viewType: string;
3843
- meetingStartedTimestamp: Date;
3844
- meetingTitle: string;
3845
- sessionId: string;
3846
- constructor(context: Context<RTKContextState>, self: RTKSelf, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
3847
- readonly meetingId: string;
3848
- setBroadcastTabChanges(broadcastTabChanges: boolean): void;
3849
- setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
3850
- }
3851
- interface RTKMapEvents<T extends EventMap$1> {
3852
- onAddEvent?: keyof T;
3853
- onDeleteEvent?: keyof T;
3854
- onClearEvent?: keyof T;
3855
- }
3856
- type ModifyPrependObject<T extends EventMap$1, U> = {
3857
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3858
- } & {
3859
- ['*']: (event: String, ...args: any[]) => void;
3860
- };
3861
- declare class RTKMap<T extends (EventMap$1 & WildCardEvent<T>), U extends {
3862
- id: string;
3863
- } & RTKTypedEventEmitter<T>, V extends EventMap$1> extends Map<string, U> {
3864
- readonly onAddEvent: keyof V;
3865
- readonly onDeleteEvent: keyof V;
3866
- readonly onClearEvent: keyof V;
3867
- constructor(options: RTKMapEvents<V>, logger?: RTKLogger$1);
3868
- emit<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject<T, U>)[E]>): boolean;
3869
- on<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3870
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3871
- } & {
3872
- "*": (event: String, ...args: any[]) => void;
3873
- } & V>;
3874
- addListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3875
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3876
- } & {
3877
- "*": (event: String, ...args: any[]) => void;
3878
- } & V>;
3879
- off<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3880
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3881
- } & {
3882
- "*": (event: String, ...args: any[]) => void;
3883
- } & V>;
3884
- once<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3885
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3886
- } & {
3887
- "*": (event: String, ...args: any[]) => void;
3888
- } & V>;
3889
- prependListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3890
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3891
- } & {
3892
- "*": (event: String, ...args: any[]) => void;
3893
- } & V>;
3894
- prependOnceListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3895
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3896
- } & {
3897
- "*": (event: String, ...args: any[]) => void;
3898
- } & V>;
3899
- removeListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{
3900
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3901
- } & {
3902
- "*": (event: String, ...args: any[]) => void;
3903
- } & V>;
3904
- removeAllListeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event?: E): RTKTypedEventEmitter<{
3905
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3906
- } & {
3907
- "*": (event: String, ...args: any[]) => void;
3908
- } & V>;
3909
- listeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): Function[];
3910
- listenerCount<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): number;
3911
- getMaxListeners(): number;
3912
- setMaxListeners(n: number): RTKTypedEventEmitter<{
3913
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3914
- } & {
3915
- "*": (event: String, ...args: any[]) => void;
3916
- } & V>;
3917
- eventNames(): (string | symbol)[];
3918
- add(obj: U, emitEvent?: boolean): this;
3919
- set(objId: string, obj: U, emitEvent?: boolean): this;
3920
- delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3921
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3922
- toArray(): U[];
3923
- }
3924
- type ParticipantMapEvents = {
3925
- ['participantJoined']: (payload: RTKParticipant$1) => void;
3926
- ['participantLeft']: (payload: RTKParticipant$1) => void;
3927
- ['participantsCleared']: () => void;
3928
- ['participantsUpdate']: () => void;
3929
- ['kicked']: (payload: {
3930
- id: string;
3931
- }) => void;
3932
- };
3933
- declare class RTKParticipantMap$1<T extends Pick<RTKParticipant$1, 'id' | keyof RTKTypedEventEmitter<ParticipantEvents>> = RTKParticipant$1> extends RTKMap<ParticipantEvents, T, ParticipantMapEvents> {
3934
- constructor(logger: RTKLogger, options?: RTKMapEvents<ParticipantMapEvents>);
3935
- add(participant: T, emitEvent?: boolean): this;
3936
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3937
- delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3938
- }
3939
- declare const modes: readonly [
3940
- "ACTIVE_GRID",
3941
- "PAGINATED",
3942
- "MANUAL"
3943
- ];
3944
- type ViewMode = (typeof modes)[number];
3945
- interface BroadcastMessagePayload {
3946
- [key: string]: boolean | number | string | Date | ActiveTab;
3947
- }
3948
- interface PeerProducerConfig {
3949
- audio: boolean;
3950
- video: boolean;
3951
- screenshareAudio: boolean;
3952
- screenshareVideo: boolean;
3953
- }
3954
- type BroadcastMessageTarget = {
3955
- participantIds: string[];
3956
- } | {
3957
- presetNames: string[];
3958
- } | {
3959
- meetingIds: string[];
3960
- };
3961
- type JoinedPeer = {
3962
- id: string;
3963
- userId: string;
3964
- name: string;
3965
- stageType?: StageStatus;
3966
- customParticipantId?: string;
3967
- presetId?: string;
3968
- picture?: string;
3969
- waitlisted: boolean;
3970
- recorderType?: string;
3971
- stageStatus?: StageStatus;
3972
- metadata?: {
3973
- preset_name?: string;
3974
- };
3975
- flags?: {
3976
- hiddenParticipant?: boolean;
3977
- recorder?: boolean;
3978
- };
3979
- };
3980
- type ParticipantsEvents = {
3981
- ['viewModeChanged']: (payload: {
3982
- viewMode: string;
3983
- currentPage: number;
3984
- pageCount: number;
3985
- }) => void;
3986
- ['activeSpeaker']: (payload: {
3987
- peerId: string;
3988
- volume: number;
3989
- }) => void;
3990
- ['broadcastedMessage']: (payload: {
3991
- type: string;
3992
- payload: BroadcastMessagePayload;
3993
- timestamp: number;
3994
- }) => void;
3995
- ['poorConnection']: (payload: {
3996
- participantId: string;
3997
- score: number;
3998
- kind: string;
3999
- }) => void;
4000
- ['pageChanged']: (payload: {
4001
- viewMode: string;
4002
- currentPage: number;
4003
- pageCount: number;
4004
- }) => void;
4005
- ['mediaScoreUpdate']: (payload: {
4006
- kind: string;
4007
- isScreenshare: boolean;
4008
- score: number;
4009
- participantId: string;
4010
- scoreStats: ConsumerScoreStats;
4011
- }) => void;
4012
- ['media_decode_error']: (payload: {
4013
- reason: string;
4014
- code: '1702' | '1703';
4015
- }) => void;
4016
- ['*']: (event: string, ...args: any[]) => void;
4017
- };
4018
- declare class RTKParticipants$1 extends RTKTypedEventEmitter<ParticipantsEvents> {
4019
- readonly waitlisted: Readonly<RTKParticipantMap$1<Pick<RTKParticipant$1, Exclude<keyof RTKParticipant$1, 'audioTrack' | 'videoTrack' | 'screenShareTracks'>>>>;
4020
- readonly joined: Readonly<RTKParticipantMap$1>;
4021
- readonly active: Readonly<RTKParticipantMap$1>;
4022
- readonly videoSubscribed: Readonly<RTKParticipantMap$1>;
4023
- readonly audioSubscribed: Readonly<RTKParticipantMap$1>;
4024
- readonly pinned: Readonly<RTKParticipantMap$1>;
4025
- readonly all: Readonly<RTKBasicParticipantsMap>;
4026
- readonly pip: RTKPip;
4027
- rateLimitConfig: {
4028
- maxInvocations: number;
4029
- period: number;
4030
- };
4031
- readonly rateLimits: {
4032
- maxInvocations: number;
4033
- period: number;
4034
- };
4035
- updateRateLimits(num: number, period: number): void;
4036
- readonly telemetry: RTKTelemetry;
4037
- viewMode: ViewMode;
4038
- currentPage: number;
4039
- lastActiveSpeaker: string;
4040
- selectedPeers: RTKSelectedPeers;
4041
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, roomSocketHandler: RoomSocketHandler);
4042
- setupEvents(): void;
4043
- readonly count: number;
4044
- readonly maxActiveParticipantsCount: number;
4045
- setMaxActiveParticipantsCount(limit: number): void;
4046
- readonly pageCount: number;
4047
- acceptWaitingRoomRequest(id: string): void;
4048
- acceptAllWaitingRoomRequest(userIds: string[]): Promise<void>;
4049
- rejectWaitingRoomRequest(id: string): Promise<void>;
4050
- setViewMode(viewMode: ViewMode): Promise<void>;
4051
- subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4052
- unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4053
- getPeerIdsForCurrentPage(): string[];
4054
- setPage(page: number): Promise<void>;
4055
- disableAllAudio(allowUnmute: boolean): Promise<void>;
4056
- disableAllVideo(): Promise<void>;
4057
- disableAudio(participantId: string): Promise<void>;
4058
- disableVideo(participantId: string): Promise<void>;
4059
- kick(participantId: string): Promise<void>;
4060
- kickAll(): Promise<void>;
4061
- broadcastMessage(type: Exclude<string, 'spotlight'>, payload: BroadcastMessagePayload, target?: BroadcastMessageTarget): Promise<void>;
4062
- getAllJoinedPeers(searchQuery: string, limit: number, offset: number): Promise<{
4063
- id: string;
4064
- userId: string;
4065
- name: string;
4066
- displayName: string;
4067
- stageType: StageStatus;
4068
- customParticipantId: string;
4069
- presetId: string;
4070
- picture: string;
4071
- waitlisted: boolean;
4072
- stageStatus: StageStatus;
4073
- metadata: {
4074
- preset_name: string;
4075
- };
4076
- recorderType: string;
4077
- flags: {
4078
- hiddenParticipant: boolean;
4079
- hidden_participant: boolean;
4080
- recorder: boolean;
4081
- };
4082
- }[]>;
4083
- updatePermissions(participantIds: string[], permissions: PresetUpdates): Promise<void>;
4084
- getParticipantsInMeetingPreJoin(): Promise<RoomPeersInfoResponse>;
4085
- }
4086
- interface FetchRequestConfig {
4087
- baseURL?: string;
4088
- url?: string;
4089
- method?: string;
4090
- headers?: Record<string, string>;
4091
- timeout?: number;
4092
- retry?: number;
4093
- retryDelay?: number;
4094
- responseType?: string;
4095
- data?: any;
4096
- params?: Record<string, string>;
4097
- }
4098
- interface FetchResponse<T = any> {
4099
- data: T;
4100
- status: number;
4101
- statusText: string;
4102
- headers: Record<string, string>;
4103
- config: FetchRequestConfig;
4104
- }
4105
- declare class FetchClient {
4106
- defaults: {
4107
- baseURL: string;
4108
- headers: {
4109
- common: Record<string, string>;
4110
- };
4111
- timeout: number;
4112
- retry: number;
4113
- retryDelay: number;
4022
+ configDiff: any;
4114
4023
  };
4115
- constructor(options: {
4116
- baseURL: string;
4117
- timeout: number;
4118
- retry: number;
4119
- retryDelay: number;
4120
- responseType?: string;
4121
- });
4122
- request<T = any>(config: FetchRequestConfig): Promise<FetchResponse<T>>;
4123
- get<T = any>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4124
- post<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4125
- put<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4024
+ version?: string;
4025
+ id?: string;
4026
+ name?: string;
4027
+ };
4028
+ type MaxVideoStreams = PresetV2CamelCased['config']['maxVideoStreams'];
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;
4075
+ }
4076
+ type PresetPermissions = PresetV2CamelCased['permissions'];
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>;
4135
+ }
4136
+ interface UserDetailsResponseV2 {
4137
+ participant: UserDetailsResponse;
4138
+ preset: PresetV2CamelCased;
4139
+ }
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;
4126
4163
  }
4127
4164
  type LivestreamState = 'IDLE' | 'STARTING' | 'WAITING_ON_MANUAL_INGESTION' | 'LIVESTREAMING' | 'STOPPING';
4128
4165
  type LivestreamEvents = {
@@ -4143,59 +4180,60 @@ type LivestreamResponse = {
4143
4180
  manualIngest: boolean;
4144
4181
  ingestionCredentials?: LivestreamIngestionCredentials;
4145
4182
  };
4146
- declare class RTKLivestream$1 extends RTKTypedEventEmitter<LivestreamEvents> {
4147
- state: LivestreamState;
4148
- playbackUrl: string | undefined;
4149
- ingestionCredentials: LivestreamIngestionCredentials;
4150
- viewerCount: number;
4151
- readonly telemetry: RTKTelemetry;
4152
- constructor(context: Context<RTKContextState>, self: RTKSelf);
4153
- setLivestreamState(livestreamState: LivestreamState): void;
4154
- start(livestreamConfig?: StartLivestreamConfig): Promise<void>;
4155
- 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>;
4156
4194
  }
4157
4195
  type PluginSocketMessage = DisablePluginResponse | EnablePluginResponse | PluginEventResponse | PluginStoreResponse | SendChatMessageToPeersResponse | SendChatMessageToRoomResponse;
4158
- declare class PluginSocketHandler {
4159
- constructor(context: Context<RTKContextState>, socketService: SocketService);
4160
- readonly logger: RTKLogger$1;
4161
- addPlugin(pluginId: string, staggered: boolean): void;
4162
- removePlugin(pluginId: string): void;
4163
- getActivePlugins(): Promise<EnablePluginsResponse>;
4164
- customPluginEventToRoom(pluginId: string, data: any, messageId?: string): void;
4165
- customPluginEventToPeers(pluginId: string, peerIds: string[], data: any, messageId?: string): void;
4166
- enablePluginForRoom(pluginId: string, messageId?: string): void;
4167
- enablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4168
- disablePluginForRoom(pluginId: string, messageId?: string): void;
4169
- disablePluginForPeers(pluginId: string, peerIds: string[], messageId?: string): void;
4170
- storeInsertKeys(pluginId: string, store: string, insertKeys: {
4171
- key: string;
4172
- payload?: any;
4173
- }[], messageId?: string): void;
4174
- storeGetKeys(pluginId: string, store: string, getKeys: {
4175
- key: string;
4176
- }[], messageId?: string): void;
4177
- storeDeleteKeys(pluginId: string, store: string, deleteKeys: {
4178
- key: string;
4179
- }[], messageId?: string): void;
4180
- storeDelete(pluginId: string, store: string, messageId?: string): void;
4181
- getPluginDataOld(pluginId: string, store: string): void;
4182
- storePluginDataOld(pluginId: string, store: string, data: any): void;
4183
- on(event: number, handler: (socketMessage: PluginSocketMessage, messageId?: string) => void): void;
4184
- }
4185
- interface RTKPluginResponse {
4186
- baseURL: string;
4187
- createdAt: string;
4188
- description: string;
4189
- id: string;
4190
- name: string;
4191
- organizationId: string;
4192
- picture: string;
4193
- private: boolean;
4194
- published: boolean;
4195
- staggered: boolean;
4196
- tags: string[];
4197
- type: string;
4198
- 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;
4199
4237
  }
4200
4238
  interface PluginViews {
4201
4239
  [viewId: string]: {
@@ -4264,39 +4302,41 @@ type _string = string & {
4264
4302
  _?: any;
4265
4303
  };
4266
4304
  type PluginEvents$1 = keyof typeof PluginEventKeys | _string;
4267
- declare class RTKPlugin$1 extends RTKEventEmitter<PluginEvents$1> {
4268
- readonly baseURL: string;
4269
- readonly createdAt: Date;
4270
- readonly description: string;
4271
- readonly id: string;
4272
- readonly name: string;
4273
- readonly organizationId: string;
4274
- readonly picture: string;
4275
- readonly private: boolean;
4276
- readonly published: boolean;
4277
- readonly staggered: boolean;
4278
- readonly tags: string[];
4279
- readonly type: string;
4280
- readonly updatedAt: Date;
4281
- config?: PluginConfig;
4282
- active: boolean;
4283
- iframes: Map<string, {
4284
- iframe: HTMLIFrameElement | ReactNativeWebView;
4285
- listener?: (message: MessageEvent) => void;
4286
- }>;
4287
- enabledBy: string;
4288
- readonly telemetry: RTKTelemetry;
4289
- 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);
4290
- sendIframeEvent(message: PluginIframeMessage): void;
4291
- sendData(payload: SendDataOptions): void;
4292
- removePluginView(viewId?: string): void;
4293
- addPluginView(iframe: HTMLIFrameElement | ReactNativeWebView, viewId?: string): void;
4294
- activateForSelf(): Promise<void>;
4295
- deactivateForSelf(): void;
4296
- enable(): Promise<void>;
4297
- disable(): void;
4298
- activate(): Promise<void>;
4299
- 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>;
4300
4340
  }
4301
4341
  interface RecordingConfig {
4302
4342
  fileNamePrefix?: string;
@@ -4311,34 +4351,34 @@ interface ReactNativeFile {
4311
4351
  name: string;
4312
4352
  type: string;
4313
4353
  }
4314
- declare class APIClient extends API {
4315
- telemetry: RTKTelemetry;
4316
- constructor(context: Context<RTKContextState>, options?: APIOptions);
4317
- getIPDetails(): Promise<any>;
4318
- getICEServers(): Promise<any>;
4319
- getPlugins(): Promise<any[]>;
4320
- getPluginDetails(pluginId: string): Promise<RTKPluginResponse>;
4321
- getPluginConfig(pluginBaseUrl: string): Promise<PluginConfig>;
4322
- authorizePlugin(pluginId: string): Promise<string>;
4323
- getPresignedUrls(filename: string, viewType: string): Promise<{
4324
- getLocation: any;
4325
- putLocation: any;
4326
- }>;
4327
- uploadFile(file: File | ReactNativeFile, url: string): Promise<void>;
4328
- startLivestreaming({ manualIngestion, }: StartLivestreamConfig): Promise<LivestreamResponse>;
4329
- stopLivestreaming(): Promise<FetchResponse<any>>;
4330
- getActiveLivestream(): Promise<LivestreamResponse>;
4331
- getUserDetails(): Promise<UserDetailsResponseV2>;
4332
- startRecording(config: RecordingConfig, allowMultiple?: boolean): Promise<string>;
4333
- updateRecording(recordingId: string, action: 'stop' | 'pause' | 'resume'): Promise<FetchResponse<any>>;
4334
- getActiveRecording(): Promise<{
4335
- status: string;
4336
- id: string;
4337
- }>;
4338
- getActiveTranscript(): Promise<{
4339
- transcript: string;
4340
- }>;
4341
- 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>;
4342
4382
  }
4343
4383
  declare enum MessageType {
4344
4384
  text = "text",
@@ -4436,62 +4476,66 @@ type ChatEvents = {
4436
4476
  ['channelUpdate']: (channel?: ChatChannel) => void;
4437
4477
  ['*']: (event: string, ...args: any[]) => void;
4438
4478
  };
4439
- declare class RTKChat$1 extends RTKTypedEventEmitter<ChatEvents> {
4440
- messages: Message[];
4441
- channels: ChatChannel[];
4442
- maxTextLimit: number;
4443
- readonly telemetry: RTKTelemetry;
4444
- setMaxTextLimit(limit: number): void;
4445
- constructor(context: Context<RTKContextState>, chatSocketHandler: ChatSocketHandler, chatChannelSocketHandler: ChatChannelSocketHandler, self: RTKSelf$1, participants: RTKParticipants$1);
4446
- readonly rateLimits: {
4447
- maxInvocations: number;
4448
- period: number;
4449
- };
4450
- updateRateLimits(num: number, period: number): void;
4451
- sendTextMessage(message: string, peerIds?: string[]): Promise<void>;
4452
- sendCustomMessage(message: CustomMessagePayload, peerIds?: string[]): Promise<void>;
4453
- sendImageMessage(image: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4454
- sendFileMessage(file: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4455
- sendMessage(message: MessagePayload, participantIds?: string[]): Promise<void>;
4456
- editTextMessage(messageId: string, message: string, channelId?: string): Promise<void>;
4457
- editImageMessage(messageId: string, image: File | ReactNativeFile, channelId?: string): Promise<void>;
4458
- editFileMessage(messageId: string, file: File | ReactNativeFile, channelId?: string): Promise<void>;
4459
- editMessage(messageId: string, message: MessagePayload, channelId?: string): Promise<void>;
4460
- deleteMessage(messageId: string, channelId?: string): Promise<void>;
4461
- getMessagesByUser(userId: string): Message[];
4462
- getMessagesByType(type: keyof typeof MessageType): Message[];
4463
- pin(id: string): Promise<void>;
4464
- unpin(id: string): Promise<void>;
4465
- getMessages(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<{
4466
- messages: Message[];
4467
- next: boolean;
4468
- }>;
4469
- createChannel(channelName: string, memberIds: string[], options?: {
4470
- displayPictureUrl?: string;
4471
- visibility?: string;
4472
- isDirectMessage?: boolean;
4473
- }): Promise<ChatChannel>;
4474
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
4475
- sendMessageToChannel(message: MessagePayload, channelId: string, options?: {
4476
- replyTo?: Message;
4477
- }): Promise<void>;
4478
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
4479
- searchMessages(query: string, filters?: SearchFilters): Promise<Message[]>;
4480
- markLastReadMessage(channelId: string, message: Message): Promise<void>;
4481
- readonly pinned: Message[];
4482
- }
4483
- declare class PollSocketHandler {
4484
- readonly logger: RTKLogger$1;
4485
- readonly telemetry: RTKTelemetry;
4486
- constructor(context: Context<RTKContextState>, socketService: SocketService);
4487
- getPolls(): Promise<{
4488
- id: string;
4489
- payload: Uint8Array;
4490
- }>;
4491
- createPoll(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): boolean;
4492
- votePoll(id: string, index: number): boolean;
4493
- on(event: number, handler: (message: UpdatePollResponse) => void): void;
4494
- 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;
4495
4539
  }
4496
4540
  interface PollOption {
4497
4541
  text: string;
@@ -4518,15 +4562,15 @@ type PollsEvents = {
4518
4562
  }) => void;
4519
4563
  ['*']: (eventName: string, ...args: any[]) => void;
4520
4564
  };
4521
- declare class RTKPolls$1 extends RTKTypedEventEmitter<PollsEvents> {
4522
- items: Poll[];
4523
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, pollSocketHandler: PollSocketHandler);
4524
- create(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): Promise<void>;
4525
- vote(id: string, index: number): Promise<void>;
4526
- }
4527
- type PluginMapEvents = {
4528
- ['pluginAdded']: (plugin: RTKPlugin$1) => void;
4529
- ['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;
4530
4574
  };
4531
4575
  type PluginEvents = {
4532
4576
  ['stateUpdate']: (payload: {
@@ -4541,15 +4585,87 @@ type PluginEvents = {
4541
4585
  ['enabled']: () => void;
4542
4586
  ['*']: (eventName: string, ...args: any[]) => void;
4543
4587
  };
4544
- declare class RTKPluginMap$1<T extends RTKPlugin$1 = RTKPlugin$1> extends RTKMap<PluginEvents, T, PluginMapEvents> {
4545
- constructor(logger: RTKLogger$1);
4546
- add(plugin: T, emitEvent?: boolean): this;
4547
- delete(pluginId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
4548
- }
4549
- declare class RTKPlugins$1 {
4550
- readonly all: RTKPluginMap$1;
4551
- readonly active: RTKPluginMap$1;
4552
- 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>;
4553
4669
  }
4554
4670
  type RecordingState = 'IDLE' | 'STARTING' | 'RECORDING' | 'PAUSED' | 'STOPPING';
4555
4671
  type RecordingType = 'BROWSER' | 'TRACK' | 'COMPOSITE';
@@ -4562,19 +4678,19 @@ type RecordingEvents = {
4562
4678
  ['recordingUpdate']: (state: RecordingState) => void;
4563
4679
  ['*']: (eventName: string, ...args: any[]) => void;
4564
4680
  };
4565
- declare class RTKRecording$1 extends RTKTypedEventEmitter<RecordingEvents> {
4566
- recordingPeerIds: string[];
4567
- readonly recordingState: RecordingState;
4568
- recordings: RecordingInfo[];
4569
- constructor(context: Context<RTKContextState>, self: RTKSelf);
4570
- readonly telemetry: RTKTelemetry;
4571
- updateRecordings(recordings: RecordingInfo[]): void;
4572
- start(opts?: {
4573
- allowMultiple: boolean;
4574
- }): Promise<void>;
4575
- stop(recordingId?: string): Promise<void>;
4576
- pause(recordingId?: string): Promise<void>;
4577
- 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>;
4578
4694
  }
4579
4695
  declare class BrowserDetection {
4580
4696
  _bowser: any;
@@ -4633,70 +4749,76 @@ declare class BrowserCapabilities extends BrowserDetection {
4633
4749
  _getChromiumBasedVersion(): number;
4634
4750
  isIOSMobile(): boolean;
4635
4751
  }
4636
- declare class RTKFeatures {
4637
- constructor(context: Context<RTKContextState>);
4638
- hasFeature(featureName: string): boolean;
4639
- getFeatureValue(featureName: string): _dyteinternals_utils.RTKFlagValues;
4640
- getAllFeatures(): {
4641
- [x: string]: _dyteinternals_utils.RTKFlagsEntry;
4642
- };
4643
- }
4644
- declare class RTKInternals {
4645
- logger: RTKLogger$1;
4646
- features: RTKFeatures;
4647
- browserSpecs: BrowserCapabilities;
4648
- callStats: InhouseCallStats;
4649
- constructor(logger: RTKLogger$1, features: RTKFeatures, callStats: InhouseCallStats);
4650
- 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;
4651
4767
  }
4652
4768
  type StoreData = {
4653
4769
  [type: string]: any;
4654
4770
  };
4655
- declare class RTKStore$1 {
4656
- name: string;
4657
- rateLimitConfig: {
4658
- maxInvocations: number;
4659
- period: number;
4660
- };
4661
- bulkRateLimitConfig: {
4662
- maxInvocations: number;
4663
- period: number;
4664
- };
4665
- constructor({ name, socketHandler, meetingId }: {
4666
- name: string;
4667
- socketHandler: PluginSocketHandler;
4668
- meetingId: string;
4669
- });
4670
- set(key: string, value: any, sync?: boolean, emit?: boolean): Promise<void>;
4671
- bulkSet(data: {
4672
- key: string;
4673
- payload: any;
4674
- }[]): Promise<void>;
4675
- update(key: string, value: any, sync?: boolean): Promise<void>;
4676
- delete(key: string, sync?: boolean, emit?: boolean): Promise<void>;
4677
- bulkDelete(data: {
4678
- key: string;
4679
- }[]): Promise<void>;
4680
- get(key: string): any;
4681
- getAll(): StoreData;
4682
- readonly rateLimits: {
4683
- maxInvocations: number;
4684
- period: number;
4685
- };
4686
- updateRateLimits(num: number, period: number): void;
4687
- readonly bulkRateLimits: {
4688
- maxInvocations: number;
4689
- period: number;
4690
- };
4691
- updateBulkRateLimits(num: number, period: number): void;
4692
- subscribe(key: string | '*', cb: (value: any) => any): void;
4693
- unsubscribe(key: string | '*', cb?: (value: any) => any): void;
4694
- populate(data: StoreData): void;
4695
- }
4696
- declare class RTKStoreManager {
4697
- stores: Map<String, RTKStore$1>;
4698
- constructor(context: Context<RTKContextState>, handler: PluginSocketHandler);
4699
- 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>;
4700
4822
  }
4701
4823
  declare const enum PRODUCERS_TYPE {
4702
4824
  WEBCAM = "webcam",
@@ -4719,66 +4841,66 @@ interface MediaNodeClientOptions {
4719
4841
  peerId: string;
4720
4842
  socket: SocketService;
4721
4843
  }
4722
- declare class MediaNodeClient {
4723
- readonly context: Context<RTKContextState>;
4724
- readonly authToken: string;
4725
- readonly e2ee: boolean;
4726
- readonly peerId: string;
4727
- readonly telemetry: RTKTelemetry;
4728
- readonly logger: RTKLogger$1;
4729
- constructor(context: Context<RTKContextState>, nodeType: MediaNodeType, options: MediaNodeClientOptions);
4730
- mediaJoined: boolean;
4731
- reset(): void;
4732
- joinRoom(displayName: string, roomUuid: string, forceFullReset?: boolean, rejoining?: boolean, permissions?: MediaPermissions): Promise<{
4733
- roomJoined: boolean;
4734
- }>;
4735
- initializeConnection(displayName: string, roomUuid: string, rejoining?: boolean, permissions?: MediaPermissions): Promise<void>;
4736
- getConsumers(): Map<string, Consumer>;
4737
- leaveRoom(): Promise<void>;
4738
- activatePeers(producers: ProducerState[]): Promise<void>;
4739
- createConsumers(producers: ProducerState[]): Promise<void>;
4740
- closeConsumers(producers: ProducerState[]): Promise<void>;
4741
- _shareWebcam(videoTrack: MediaStreamTrack & {
4742
- originalSettings?: {
4743
- width: number;
4744
- };
4745
- }, codec: VideoCodec): Promise<MediaStreamTrack>;
4746
- shareWebcam(videoTrack: MediaStreamTrack): Promise<MediaStreamTrack | null>;
4747
- shareScreen(tracks: {
4748
- video?: MediaStreamTrack;
4749
- audio?: MediaStreamTrack;
4750
- }): Promise<void>;
4751
- shareMic(audioTrack: MediaStreamTrack): Promise<void>;
4752
- pauseMic(): Promise<void>;
4753
- pauseWebcam(): Promise<void>;
4754
- resumeMic(): Promise<void>;
4755
- resumeWebcam(producerType?: PRODUCERS_TYPE): Promise<void>;
4756
- disableWebcam(codec: VideoCodec): Promise<void>;
4757
- disableMic(): Promise<void>;
4758
- disableScreenShare(): Promise<void>;
4759
- muteSelf(): Promise<void>;
4760
- unmuteSelf(): Promise<void>;
4761
- resetVideoProducers(videoTrack: MediaStreamTrack, screenShareTrack?: MediaStreamTrack): Promise<void>;
4762
- changeDisplayName(displayName: string, peerId?: string): Promise<void>;
4763
- kick(peerId: string): void;
4764
- kickAll(): void;
4765
- muteAll(_allowUnMute: boolean): Promise<void>;
4766
- muteAllVideo(): Promise<void>;
4767
- disableAudio(peerId: string): Promise<void>;
4768
- disableVideo(peerId: string): Promise<void>;
4769
- pinPeer(peerId: string | null): Promise<void>;
4770
- validateScreenShare(payload: {
4771
- peerId: string;
4772
- consumerId: string;
4773
- screenShare: boolean;
4774
- producerId: string;
4775
- consumerPeerId: string;
4776
- }): number;
4777
- switchConsumersToLayer(consumerIds: string[], layer: number): Promise<void>;
4778
- handleSocketEvents(): Promise<void>;
4779
- handleCallstatsEvents(): void;
4780
- handlePeerCapabilities(peerId: string, capabilities: PeerRtpCapabilitites): void;
4781
- 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
+ resetVideoProducers(videoTrack: MediaStreamTrack, screenShareTrack?: MediaStreamTrack): Promise<void>;
4884
+ changeDisplayName(displayName: string, peerId?: string): Promise<void>;
4885
+ kick(peerId: string): void;
4886
+ kickAll(): void;
4887
+ muteAll(_allowUnMute: boolean): Promise<void>;
4888
+ muteAllVideo(): Promise<void>;
4889
+ disableAudio(peerId: string): Promise<void>;
4890
+ disableVideo(peerId: string): Promise<void>;
4891
+ pinPeer(peerId: string | null): Promise<void>;
4892
+ validateScreenShare(payload: {
4893
+ peerId: string;
4894
+ consumerId: string;
4895
+ screenShare: boolean;
4896
+ producerId: string;
4897
+ consumerPeerId: string;
4898
+ }): number;
4899
+ switchConsumersToLayer(consumerIds: string[], layer: number): Promise<void>;
4900
+ handleSocketEvents(): Promise<void>;
4901
+ handleCallstatsEvents(): void;
4902
+ handlePeerCapabilities(peerId: string, capabilities: PeerRtpCapabilitites): void;
4903
+ handlePeerLeaving(peerId: string): void;
4782
4904
  }
4783
4905
  interface SocketServicePayload {
4784
4906
  payload: any;
@@ -4837,55 +4959,57 @@ declare class ConnectedMeetingsSocketHandler {
4837
4959
  error: any;
4838
4960
  }>;
4839
4961
  }
4840
- type ConnectedMeetingsEvents = {
4841
- ['meetingChanged']: (meeting: RealtimeKitClient) => void;
4842
- ['stateUpdate']: (payload: {
4843
- meetings: ConnectedMeeting[];
4844
- parentMeeting: ConnectedMeeting;
4845
- }) => void;
4846
- ['changingMeeting']: (meetingId: string) => void;
4847
- ['*']: (eventName: string, ...args: any[]) => void;
4962
+ type ConnectedMeetingsEvents = {
4963
+ ['meetingChanged']: (meeting: Client) => void;
4964
+ ['stateUpdate']: (payload: {
4965
+ meetings: ConnectedMeeting[];
4966
+ parentMeeting: ConnectedMeeting;
4967
+ }) => void;
4968
+ ['changingMeeting']: (meetingId: string) => void;
4969
+ ['*']: (eventName: string, ...args: any[]) => void;
4848
4970
  };
4849
- declare class RTKConnectedMeetings$1 extends RTKTypedEventEmitter<ConnectedMeetingsEvents> {
4850
- constructor(context: Context<RTKContextState>);
4851
- meetings: ConnectedMeeting[];
4852
- parentMeeting: ConnectedMeeting;
4853
- readonly supportsConnectedMeetings: boolean;
4854
- readonly isActive: boolean;
4855
- getConnectedMeetings(): Promise<{
4856
- parentMeeting: ConnectedMeeting;
4857
- meetings: ConnectedMeeting[];
4858
- }>;
4859
- createMeetings(request: {
4860
- title: string;
4861
- }[]): Promise<{
4862
- id: string;
4863
- title: string;
4864
- }[]>;
4865
- updateMeetings(request: {
4866
- id: string;
4867
- title: string;
4868
- }[]): Promise<void>;
4869
- deleteMeetings(meetingIds: string[]): Promise<{
4870
- id: string;
4871
- }[]>;
4872
- moveParticipants(sourceMeetingId: string, destinationMeetingId: string, participantIds: string[]): Promise<{
4873
- success: boolean;
4874
- error?: undefined;
4875
- } | {
4876
- success: boolean;
4877
- error: any;
4878
- }>;
4879
- moveParticipantsWithCustomPreset(sourceMeetingId: string, destinationMeetingId: string, participants: {
4880
- id: string;
4881
- presetId: string;
4882
- }[]): Promise<{
4883
- success: boolean;
4884
- error?: undefined;
4885
- } | {
4886
- success: boolean;
4887
- error: any;
4888
- }>;
4971
+ declare class ConnectedMeetings extends TypedEventEmitter$1<ConnectedMeetingsEvents> {
4972
+ constructor(context: Context<ContextState>);
4973
+ meetings: ConnectedMeeting[];
4974
+ parentMeeting: ConnectedMeeting;
4975
+ readonly supportsConnectedMeetings: boolean;
4976
+ readonly isActive: boolean;
4977
+ private validateConnectedMeetingsAction;
4978
+ getConnectedMeetings(): Promise<{
4979
+ parentMeeting: ConnectedMeeting;
4980
+ meetings: ConnectedMeeting[];
4981
+ }>;
4982
+ createMeetings(request: {
4983
+ title: string;
4984
+ }[]): Promise<{
4985
+ id: string;
4986
+ title: string;
4987
+ }[]>;
4988
+ updateMeetings(request: {
4989
+ id: string;
4990
+ title: string;
4991
+ }[]): Promise<void>;
4992
+ deleteMeetings(meetingIds: string[]): Promise<{
4993
+ id: string;
4994
+ }[]>;
4995
+ moveParticipants(sourceMeetingId: string, destinationMeetingId: string, participantIds: string[]): Promise<{
4996
+ success: boolean;
4997
+ error?: undefined;
4998
+ } | {
4999
+ success: boolean;
5000
+ error: any;
5001
+ }>;
5002
+ moveParticipantsWithCustomPreset(sourceMeetingId: string, destinationMeetingId: string, participants: {
5003
+ id: string;
5004
+ presetId: string;
5005
+ }[]): Promise<{
5006
+ success: boolean;
5007
+ error?: undefined;
5008
+ } | {
5009
+ success: boolean;
5010
+ error: any;
5011
+ }>;
5012
+ private moveSuccessHandler;
4889
5013
  }
4890
5014
  interface Modules {
4891
5015
  pip?: boolean;
@@ -4917,36 +5041,36 @@ interface Modules {
4917
5041
  };
4918
5042
  experimentalAudioPlayback?: boolean;
4919
5043
  }
4920
- interface DefaultOptions {
4921
- video?: boolean;
4922
- audio?: boolean;
4923
- recording?: RecordingConfig;
4924
- mediaHandler?: RTKSelfMedia$1;
4925
- autoSwitchAudioDevice?: boolean;
4926
- mediaConfiguration?: {
4927
- video?: VideoQualityConstraints;
4928
- audio?: AudioQualityConstraints;
4929
- screenshare?: ScreenshareQualityConstraints;
4930
- };
4931
- isNonPreferredDevice?: (device: MediaDeviceInfo) => boolean;
5044
+ interface DefaultOptions {
5045
+ video?: boolean;
5046
+ audio?: boolean;
5047
+ recording?: RecordingConfig;
5048
+ mediaHandler?: SelfMedia;
5049
+ autoSwitchAudioDevice?: boolean;
5050
+ mediaConfiguration?: {
5051
+ video?: VideoQualityConstraints;
5052
+ audio?: AudioQualityConstraints;
5053
+ screenshare?: ScreenshareQualityConstraints;
5054
+ };
5055
+ isNonPreferredDevice?: (device: MediaDeviceInfo) => boolean;
4932
5056
  }
4933
5057
  interface RoomDetails {
4934
- sfu: MediaNodeType;
4935
- roomNodeUrl: string;
4936
5058
  meetingTitle: string;
4937
- useHiveMedia: boolean;
4938
- }
4939
- declare class ConnectionHandler {
4940
- mediaJoined: boolean;
4941
- socketJoined: boolean;
4942
- socketJoinAttempted: boolean;
4943
- mediaJoinAttempted: boolean;
4944
- socketState: SocketConnectionState;
4945
- mediaState: MediaConnectionState;
4946
- readonly joinAttempted: boolean;
4947
- readonly roomJoined: boolean;
4948
- constructor(context: Context<RTKContextState>);
4949
- updateSocketConnectionState(state: SocketStateEvent, attempt?: number): void;
5059
+ }
5060
+ interface ControllerOptions {
5061
+ peerId?: string;
5062
+ }
5063
+ declare class ConnectionHandler {
5064
+ mediaJoined: boolean;
5065
+ socketJoined: boolean;
5066
+ socketJoinAttempted: boolean;
5067
+ mediaJoinAttempted: boolean;
5068
+ socketState: SocketConnectionState;
5069
+ mediaState: MediaConnectionState;
5070
+ readonly joinAttempted: boolean;
5071
+ readonly roomJoined: boolean;
5072
+ constructor(context: Context<ContextState>);
5073
+ updateSocketConnectionState(state: SocketStateEvent, attempt?: number): void;
4950
5074
  }
4951
5075
  declare const ERROR_CODES: {
4952
5076
  '0000': string;
@@ -5037,9 +5161,9 @@ declare const ERROR_CODES: {
5037
5161
  '2006': string;
5038
5162
  '9900': string;
5039
5163
  };
5040
- declare class RTKError extends Error {
5041
- code: keyof typeof ERROR_CODES;
5042
- constructor(message: string, code?: keyof typeof ERROR_CODES, logger?: RTKLogger$1 | undefined, log?: boolean);
5164
+ declare class ClientError extends Error {
5165
+ code: keyof typeof ERROR_CODES;
5166
+ constructor(message: string, code?: keyof typeof ERROR_CODES, logger?: Logger | undefined, log?: boolean);
5043
5167
  }
5044
5168
  type EventMap = {
5045
5169
  [key: string]: (...args: any[]) => void;
@@ -5066,7 +5190,6 @@ interface TypedEventEmitter<Events extends EventMap> {
5066
5190
  }
5067
5191
  declare enum SessionEvents {
5068
5192
  NEW_PRODUCER = "NEW_PRODUCER",
5069
- PRODUCER_TRACK_ENDED = "PRODUCER_TRACK_ENDED",
5070
5193
  ROOM_NODE_CONNECTION_ERROR = "ROOM_NODE_CONNECTION_ERROR",
5071
5194
  SOCKET_SERVICE_ROOM_JOINED = "SOCKET_SERVICE_ROOM_JOINED",
5072
5195
  SOCKET_SERVICE_RECONNECTED = "SOCKET_SERVICE_RECONNECTED",
@@ -5081,11 +5204,9 @@ declare enum SessionEvents {
5081
5204
  CONSUMER_SCORE_UPDATE = "CONSUMER_SCORE_UPDATE",
5082
5205
  PRODUCER_STATUS_UPDATE = "PRODUCER_STATUS_UPDATE",
5083
5206
  CONSUMER_STATUS_UPDATE = "CONSUMER_STATUS_UPDATE",
5084
- LOW_PRODUCER_SCORE = "LOW_PRODUCER_SCORE",
5085
5207
  LOW_CONSUMER_SCORE = "LOW_CONSUMER_SCORE",
5086
5208
  MEDIA_PERMISSION_ERROR = "MEDIA_PERMISSION_ERROR",
5087
5209
  MEDIA_PERMISSION_UPDATE = "MEDIA_PERMISSION_UPDATE",
5088
- WAITLISTED = "WAIT_LISTED",
5089
5210
  MESSAGE = "websocket/message",
5090
5211
  ROOM_MESSAGE = "websocket/room-message",
5091
5212
  PEER_JOINED_INTERNAL = "peer/joined-internal",
@@ -5097,18 +5218,10 @@ declare enum SessionEvents {
5097
5218
  NEW_CONSUMER = "websocket/new-consumer",
5098
5219
  PRODUCER_SCORE = "websocket/producer-score",
5099
5220
  CONSUMER_SCORE = "websocket/consumer-score",
5100
- PRODUCER_TOGGLE = "hive/producer-toggle",
5101
- CONSUMER_TOGGLE = "hive/consumer-toggle",
5102
- SELECTED_PEERS_DIFF = "hive/selected-peers-diff",
5221
+ PRODUCER_TOGGLE = "cf/producer-toggle",
5103
5222
  UPDATE_ACTIVE = "media/update-active",
5104
- RESET_PRODUCER_STATE = "hive/reset-producer-state",
5105
- CF_TRANSPORT_STATE_CHANGED = "cf/transport-state-changed",
5106
- CF_ROOM_REJOINING = "cf/room-rejoining",
5107
- CF_ROOM_REJOIN_FAILED = "cf/room-rejoining-failed",
5108
- CF_ROOM_REJOINED = "cf/room-rejoined",
5109
- CF_TRANPSORT_RECONNECTING = "cf/transport-reconnecting",
5223
+ RESET_PRODUCER_STATE = "cf/reset-producer-state",
5110
5224
  ROOM_STATE = "sockethub/room-state",
5111
- PEER_DISPLAY_NAME_CHANGED = "hive/display-name-changed",
5112
5225
  GET_STAGE_REQUESTS = "GET_STAGE_REQUESTS",
5113
5226
  UPDATE_STAGE_REQUESTS = "UPDATE_STAGE_REQUESTS",
5114
5227
  KICK_PEER = "KICK_PEER",
@@ -5129,31 +5242,32 @@ declare enum SessionEvents {
5129
5242
  type AllEvents = {
5130
5243
  [key in SessionEvents]: (payload?: any) => void;
5131
5244
  };
5132
- type TypedEvents = {
5133
- [SessionEvents.UPDATE_PERMISSIONS]: (p: PresetUpdates) => void;
5134
- [SessionEvents.MAX_SPATIAL_LAYER_CHANGE]: (p: {
5135
- peerId: string;
5136
- maxSpatialLayer: number;
5137
- }) => void;
5138
- [SessionEvents.UPDATE_ACTIVE]: (p?: {
5139
- page?: number;
5140
- createAllConsumers?: boolean;
5141
- }) => void;
5142
- [SessionEvents.PEER_JOINED_INTERNAL]: (p: RTKParticipant$1) => void;
5143
- [SessionEvents.UPDATE_PEER_STAGE_STATUS]: (p: {
5144
- id: string;
5145
- status: string;
5146
- }) => void;
5147
- [SessionEvents.GET_STAGE_REQUESTS]: (stageRequests: StageRequest[]) => void;
5148
- [SessionEvents.UPDATE_STAGE_REQUESTS]: (payload: {
5149
- request: StageRequestPayload;
5150
- add: boolean;
5151
- }) => void;
5152
- [SessionEvents.KICK_PEER]: (payload: {
5153
- peerId: string;
5154
- }) => void;
5155
- [SessionEvents.JOIN_MEDIA_ROOM]: () => void;
5156
- [SessionEvents.LEAVE_MEDIA_ROOM]: (state: LeaveRoomState) => void;
5245
+ type TypedEvents = {
5246
+ [SessionEvents.UPDATE_PERMISSIONS]: (p: PresetUpdates) => void;
5247
+ [SessionEvents.MAX_SPATIAL_LAYER_CHANGE]: (p: {
5248
+ peerId: string;
5249
+ maxSpatialLayer: number;
5250
+ }) => void;
5251
+ [SessionEvents.UPDATE_ACTIVE]: (p?: {
5252
+ viewMode?: ViewMode;
5253
+ page?: number;
5254
+ createAllConsumers?: boolean;
5255
+ }) => void;
5256
+ [SessionEvents.PEER_JOINED_INTERNAL]: (p: Participant) => void;
5257
+ [SessionEvents.UPDATE_PEER_STAGE_STATUS]: (p: {
5258
+ id: string;
5259
+ status: string;
5260
+ }) => void;
5261
+ [SessionEvents.GET_STAGE_REQUESTS]: (stageRequests: StageRequest[]) => void;
5262
+ [SessionEvents.UPDATE_STAGE_REQUESTS]: (payload: {
5263
+ request: StageRequestPayload;
5264
+ add: boolean;
5265
+ }) => void;
5266
+ [SessionEvents.KICK_PEER]: (payload: {
5267
+ peerId: string;
5268
+ }) => void;
5269
+ [SessionEvents.JOIN_MEDIA_ROOM]: () => void;
5270
+ [SessionEvents.LEAVE_MEDIA_ROOM]: (state: LeaveRoomState) => void;
5157
5271
  };
5158
5272
  type UntypedEvents = Pick<AllEvents, Exclude<keyof AllEvents, keyof TypedEvents>>;
5159
5273
  type SessionEventsType = TypedEvents & UntypedEvents;
@@ -5171,47 +5285,44 @@ declare class AudioPlaybackManager extends AudioPlayback {
5171
5285
  addParticipantTrack(participantId: string, track: MediaStreamTrack): void;
5172
5286
  removeParticipantTrack(participantId: string): void;
5173
5287
  }
5174
- type RTKContextState = {
5175
- authToken?: string;
5176
- peerId?: string;
5177
- apiBase?: string;
5178
- baseURI?: string;
5179
- onError?: (error: RTKError) => void;
5180
- stageStatus?: StageStatus;
5181
- organizationId?: string;
5182
- presetName?: string;
5183
- maxPreferredStreams?: number;
5184
- defaults?: DefaultOptions;
5185
- modules?: Modules;
5186
- overrides?: Overrides;
5187
- apiClient?: APIClient;
5188
- userId?: string;
5189
- meetingId?: string;
5190
- roomName?: string;
5191
- socketService?: SocketService;
5192
- pip?: RTKPip;
5193
- roomNodeOptions?: {
5194
- sfu: MediaNodeType;
5195
- };
5196
- roomNodeClient?: MediaNodeClient;
5197
- viewType?: ViewType;
5198
- env?: ClientEnvTypeAll;
5199
- sdkVersion?: string;
5200
- sdkName?: 'web-core';
5201
- callstats?: InhouseCallStats;
5202
- connectionHandler?: ConnectionHandler;
5203
- cachedUserDetails?: CachedUserDetails;
5204
- peerSessionStore?: TypedEventEmitter<SessionEventsType>;
5205
- flagsmith?: ReturnType<typeof createNewFlagsmithInstance>;
5206
- roomSocketHandler?: RoomSocketHandler;
5207
- connectedMeetingsSocketHandler?: ConnectedMeetingsSocketHandler;
5208
- audioPlayback?: AudioPlaybackManager;
5209
- options?: RealtimeKitClientOptions;
5210
- self?: RTKSelf;
5211
- telemetry?: RTKTelemetry;
5212
- logger?: RTKLogger$1;
5213
- meeting?: RealtimeKitClient;
5214
- selfController?: SelfController;
5288
+ type ContextState = {
5289
+ authToken?: string;
5290
+ peerId?: string;
5291
+ apiBase?: string;
5292
+ baseURI?: string;
5293
+ onError?: (error: ClientError) => void;
5294
+ stageStatus?: StageStatus;
5295
+ organizationId?: string;
5296
+ presetName?: string;
5297
+ maxPreferredStreams?: number;
5298
+ defaults?: DefaultOptions;
5299
+ modules?: Modules;
5300
+ overrides?: Overrides;
5301
+ apiClient?: APIClient;
5302
+ userId?: string;
5303
+ meetingId?: string;
5304
+ roomName?: string;
5305
+ socketService?: SocketService;
5306
+ pip?: Pip;
5307
+ roomNodeClient?: MediaNodeClient;
5308
+ viewType?: ViewType;
5309
+ env?: ClientEnvTypeAll;
5310
+ sdkVersion?: string;
5311
+ sdkName?: 'web-core';
5312
+ callstats?: InhouseCallStats;
5313
+ connectionHandler?: ConnectionHandler;
5314
+ cachedUserDetails?: CachedUserDetails;
5315
+ peerSessionStore?: TypedEventEmitter<SessionEventsType>;
5316
+ flagsmith?: ReturnType<typeof createNewFlagsmithInstance>;
5317
+ roomSocketHandler?: RoomSocketHandler;
5318
+ connectedMeetingsSocketHandler?: ConnectedMeetingsSocketHandler;
5319
+ audioPlayback?: AudioPlaybackManager;
5320
+ options?: ClientOptions;
5321
+ self?: Self;
5322
+ telemetry?: Telemetry;
5323
+ logger?: Logger;
5324
+ meeting?: Client;
5325
+ selfController?: SelfController;
5215
5326
  };
5216
5327
  interface Context<T extends Record<string, any>> {
5217
5328
  subscribe: (key: keyof T, listener: (value: any) => void) => () => void;
@@ -5221,105 +5332,114 @@ interface Context<T extends Record<string, any>> {
5221
5332
  getValue: <K extends keyof T>(key: K) => T[K];
5222
5333
  getAllValues: () => T;
5223
5334
  }
5224
- type SocketServiceCapability = keyof typeof Capabilities;
5225
- type SocketStateEvent = 'connected' | 'disconnected' | 'reconnected' | 'errored' | 'reconnecting' | 'reconnectAttempt' | 'reconnectFailure' | 'failed';
5226
- type SocketServiceCapabilities = SocketServiceCapability[];
5227
- interface SocketConnectionState {
5228
- state: Extract<SocketStateEvent, 'connected' | 'disconnected' | 'reconnecting' | 'failed'>;
5229
- reconnected: boolean;
5230
- reconnectionAttempt: number;
5335
+ declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter$1 {
5336
+ readonly logger: Logger;
5337
+ constructor(context: Context<ContextState>);
5338
+ safeEmit(event: string, ...args: any[]): boolean;
5339
+ safeEmitAsPromise<T extends keyof TransportPromiseEvents>(event: T, ...args: any[]): Promise<TransportPromiseEvents[T]>;
5340
+ safeEmitAsPromiseWithTimeout<T extends keyof TransportPromiseEvents>(event: T, timeout: number, ...args: any[]): Promise<TransportPromiseEvents[T]>;
5231
5341
  }
5232
- declare class SocketService {
5233
- readonly roomName: string;
5234
- readonly authToken: string;
5235
- readonly capabilities: SocketServiceCapabilities;
5236
- joinAttempted: boolean;
5237
- readonly telemetry: RTKTelemetry;
5238
- readonly logger: RTKLogger$1;
5239
- readonly peerId: string;
5240
- constructor(context: Context<RTKContextState>, { peerId, meetingId, authToken, capabilities, }: {
5241
- peerId: string;
5242
- meetingId: string;
5243
- authToken: string;
5244
- capabilities: SocketServiceCapabilities;
5245
- });
5246
- updateURL(peerID: string): void;
5247
- readonly url: string;
5248
- connect(): Promise<void>;
5249
- disconnect(): void;
5250
- readonly isConnected: boolean;
5251
- sendMessage(event: number, protobuf?: Uint8Array, messageId?: string): boolean;
5252
- sendMessagePromise(event: number, protobuf?: Uint8Array, messageId?: string, resp?: number): Promise<{
5253
- id: string;
5254
- payload: Uint8Array;
5255
- }>;
5256
- sendMessagePromiseWithTimeout({ event, timeout, protobuf, messageId, resp, }: {
5257
- timeout: number;
5258
- event: number;
5259
- protobuf?: Uint8Array;
5260
- messageId?: string;
5261
- resp?: number;
5262
- }): Promise<{
5263
- id: string;
5264
- payload: Uint8Array;
5265
- }>;
5266
- on(event: number, listener: (message: {
5267
- id?: string;
5268
- payload?: Uint8Array;
5269
- }) => void): void;
5270
- onStateEvent(event: SocketStateEvent, listener: (...args: any) => void): void;
5271
- removeListener(event: number, listener: (message: {
5272
- id?: string;
5273
- payload?: Uint8Array;
5274
- }) => void): void;
5275
- removeListeners(event: number): void;
5276
- flush(): any;
5277
- handleSocketConnectionEvents(): void;
5342
+ type MediaKind = 'audio' | 'video';
5343
+ type ProducerConstructorOptions = {
5344
+ id: string;
5345
+ localId: string;
5346
+ track?: MediaStreamTrack;
5347
+ stopTracks: boolean;
5348
+ disableTrackOnPause: boolean;
5349
+ zeroRtpOnPause: boolean;
5350
+ handler: HandlerInterface<TransportPromiseEvents>;
5351
+ appData?: Record<string, unknown>;
5352
+ rtpSender?: RTCRtpSender;
5353
+ };
5354
+ declare class Producer extends EnhancedEventEmitter<TransportPromiseEvents> {
5355
+ readonly id: string;
5356
+ readonly localId: string;
5357
+ readonly kind: MediaKind;
5358
+ readonly appData: Record<string, unknown>;
5359
+ readonly rtpSender: RTCRtpSender;
5360
+ constructor(context: Context<ContextState>, opt: ProducerConstructorOptions);
5361
+ readonly closed: boolean;
5362
+ readonly track: MediaStreamTrack | null;
5363
+ readonly paused: boolean;
5364
+ readonly maxSpatialLayer: number | undefined;
5365
+ close(reason?: string): Promise<void>;
5366
+ getStats(): Promise<RTCStatsReport>;
5367
+ pause(): void;
5368
+ resume(): void;
5369
+ replaceTrack({ track, }: {
5370
+ track: MediaStreamTrack | null;
5371
+ }): Promise<void>;
5372
+ setMaxSpatialLayer(spatialLayer: number): Promise<void>;
5373
+ setRtpEncodingParameters(params: RTCRtpEncodingParameters): Promise<void>;
5374
+ private _onTrackEnded;
5375
+ private _handleTrack;
5376
+ private _destroyTrack;
5278
5377
  }
5279
- type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
5280
- declare class RoomSocketHandler {
5281
- socket: SocketService;
5282
- readonly telemetry: RTKTelemetry;
5283
- readonly logger: RTKLogger$1;
5284
- cleanup(): void;
5285
- constructor(context: Context<RTKContextState>, socketService: SocketService);
5286
- joinRoom(opts: {
5287
- name: string;
5288
- id: string;
5289
- userId: string;
5290
- customParticipantId: string;
5291
- picture?: string;
5292
- }): Promise<{
5293
- peer: Peer;
5294
- }>;
5295
- getAllAddedParticipants(): Promise<RTKBasicParticipant[]>;
5296
- getRoomPeers(searchQuery: string, limit: number, offset: number): Promise<RoomPeersInfoResponse>;
5297
- getRoomPeersNonPaginated(): Promise<RoomPeersInfoResponse>;
5298
- getStagePeers(): Promise<RoomPeersInfoResponse>;
5299
- getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
5300
- getRoomState(): Promise<RoomInfoResponse>;
5301
- getRoomStageState(): Promise<GetRoomStageStateResponse>;
5302
- broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
5303
- id: string;
5304
- payload: Uint8Array;
5305
- }>;
5306
- broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
5307
- id: string;
5308
- payload: Uint8Array;
5309
- }>;
5310
- broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise<boolean>;
5311
- leaveRoom(): Promise<void>;
5312
- kick(peerId: string): Promise<void>;
5313
- kickAll(propagateKickAll?: boolean): Promise<void>;
5314
- getWaitingRoomRequests(): void;
5315
- acceptWaitingRoomRequest(userIds: string[]): void;
5316
- rejectWaitingRoomRequest(userIds: string[]): void;
5317
- updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
5318
- id: string;
5319
- payload: Uint8Array;
5320
- }>;
5321
- on(event: number, handler: (message: EventHandlerTypes) => void): void;
5322
- getUserPermissions(userId: string): Promise<Pick<PresetTypeV2['permissions'], 'chat' | 'polls' | 'plugins'>>;
5378
+ interface UserDetailsResponse {
5379
+ id: string;
5380
+ name: string;
5381
+ email: string;
5382
+ picture?: string;
5383
+ loggedIn?: boolean;
5384
+ scope?: string[];
5385
+ clientSpecificId?: string;
5386
+ customParticipantId?: string;
5387
+ organizationId?: string;
5388
+ }
5389
+ declare class Self extends SelfMedia {
5390
+ name: string;
5391
+ picture: string;
5392
+ customParticipantId: string;
5393
+ waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
5394
+ role: any;
5395
+ userId: string;
5396
+ organizationId: string;
5397
+ supportsRemoteControl: boolean;
5398
+ device: DeviceConfig;
5399
+ readonly telemetry: Telemetry;
5400
+ hidden: boolean;
5401
+ readonly stageStatus: StageStatus;
5402
+ readonly producers: Producer[];
5403
+ readonly id: string;
5404
+ readonly peerId: string;
5405
+ presetName: string;
5406
+ roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
5407
+ private constructor();
5408
+ static __init__(context: Context<ContextState>, details: UserDetailsResponse, permissions: PermissionPreset, theme: ThemePreset, presetName: string, skipAwaits?: boolean): Promise<Self>;
5409
+ cleanupEvents(): void;
5410
+ private setupEvents;
5411
+ readonly permissions: PermissionPreset;
5412
+ readonly config: ThemePreset;
5413
+ readonly roomJoined: boolean;
5414
+ setName(name: string): void;
5415
+ setupTracks(options?: {
5416
+ video?: boolean;
5417
+ audio?: boolean;
5418
+ forceReset?: boolean;
5419
+ }): Promise<void>;
5420
+ destructMediaHandler(): Promise<void>;
5421
+ removeDocumentEventListeners(): Promise<void>;
5422
+ enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
5423
+ enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
5424
+ updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
5425
+ enableScreenShare(): Promise<void>;
5426
+ updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
5427
+ disableAudio(): Promise<void>;
5428
+ disableVideo(): Promise<void>;
5429
+ disableScreenShare(): Promise<void>;
5430
+ getAllDevices(): Promise<InputDeviceInfo[]>;
5431
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5432
+ readonly isPinned: boolean;
5433
+ pin(): Promise<void>;
5434
+ unpin(): Promise<void>;
5435
+ hide(): Promise<void>;
5436
+ show(): void;
5437
+ setDevice(device: MediaDeviceInfo): Promise<void>;
5438
+ cleanUpTracks(): void;
5439
+ playAudio(): Promise<void>;
5440
+ registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
5441
+ deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
5442
+ private updateVideo;
5323
5443
  }
5324
5444
  interface DeviceConfig {
5325
5445
  browserName: string;
@@ -5338,7 +5458,7 @@ interface ProducerState {
5338
5458
  mimeType?: string;
5339
5459
  consumer?: Partial<Consumer>;
5340
5460
  }
5341
- interface Participant {
5461
+ interface IParticipant {
5342
5462
  id: string;
5343
5463
  userId: string;
5344
5464
  displayName: string;
@@ -5361,48 +5481,50 @@ interface Participant {
5361
5481
  };
5362
5482
  recorderType?: string;
5363
5483
  }
5364
- declare class RTKParticipant$1 extends RTKTypedEventEmitter<ParticipantEvents> {
5365
- id: string;
5366
- userId: string;
5367
- name: string;
5368
- picture: string;
5369
- isHost: boolean;
5370
- customParticipantId?: string;
5371
- readonly clientSpecificId: string;
5372
- flags: {
5373
- [key: string]: string | boolean;
5374
- };
5375
- device: DeviceConfig;
5376
- videoTrack: MediaStreamTrack;
5377
- audioTrack: MediaStreamTrack;
5378
- screenShareTracks: {
5379
- audio: MediaStreamTrack;
5380
- video: MediaStreamTrack;
5381
- };
5382
- videoEnabled: boolean;
5383
- audioEnabled: boolean;
5384
- screenShareEnabled: boolean;
5385
- producers: ProducerState[];
5386
- manualProducerConfig: PeerProducerConfig;
5387
- supportsRemoteControl: boolean;
5388
- presetName?: string;
5389
- readonly stageStatus: StageStatus;
5390
- readonly telemetry: RTKTelemetry;
5391
- constructor(context: Context<RTKContextState>, participant: Participant, self: RTKSelf, roomSocket: RoomSocketHandler);
5392
- setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
5393
- setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
5394
- setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
5395
- pin(): Promise<void>;
5396
- unpin(): Promise<void>;
5397
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5398
- disableAudio(): Promise<void>;
5399
- kick(): Promise<void>;
5400
- disableVideo(): Promise<void>;
5401
- getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "plugins" | "polls" | "chat">>;
5402
- setStageStatus(stageStatus: StageStatus): void;
5403
- readonly isPinned: boolean;
5404
- registerVideoElement(videoElem: HTMLVideoElement): void;
5405
- deregisterVideoElement(videoElem?: HTMLVideoElement): void;
5484
+ declare class Participant extends TypedEventEmitter$1<ParticipantEvents> {
5485
+ id: string;
5486
+ userId: string;
5487
+ name: string;
5488
+ picture: string;
5489
+ isHost: boolean;
5490
+ customParticipantId?: string;
5491
+ readonly clientSpecificId: string;
5492
+ flags: {
5493
+ [key: string]: string | boolean;
5494
+ };
5495
+ device: DeviceConfig;
5496
+ videoTrack: MediaStreamTrack;
5497
+ audioTrack: MediaStreamTrack;
5498
+ screenShareTracks: {
5499
+ audio: MediaStreamTrack;
5500
+ video: MediaStreamTrack;
5501
+ };
5502
+ videoEnabled: boolean;
5503
+ audioEnabled: boolean;
5504
+ screenShareEnabled: boolean;
5505
+ producers: ProducerState[];
5506
+ manualProducerConfig: PeerProducerConfig;
5507
+ supportsRemoteControl: boolean;
5508
+ presetName?: string;
5509
+ readonly stageStatus: StageStatus;
5510
+ readonly telemetry: Telemetry;
5511
+ constructor(context: Context<ContextState>, participant: IParticipant, self: Self, roomSocket: RoomSocketHandler);
5512
+ setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
5513
+ setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
5514
+ setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
5515
+ private setupEvents;
5516
+ pin(): Promise<void>;
5517
+ unpin(): Promise<void>;
5518
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5519
+ disableAudio(): Promise<void>;
5520
+ kick(): Promise<void>;
5521
+ disableVideo(): Promise<void>;
5522
+ getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "chat" | "polls" | "plugins">>;
5523
+ setStageStatus(stageStatus: StageStatus): void;
5524
+ readonly isPinned: boolean;
5525
+ registerVideoElement(videoElem: HTMLVideoElement): void;
5526
+ deregisterVideoElement(videoElem?: HTMLVideoElement): void;
5527
+ private updateVideo;
5406
5528
  }
5407
5529
  declare function createSafeToLogError(ex: any): {
5408
5530
  stack?: string;
@@ -5412,266 +5534,267 @@ declare function createSafeToLogError(ex: any): {
5412
5534
  code?: number | string;
5413
5535
  };
5414
5536
  type SupportedEventSeverities = 'info' | 'error' | 'debug' | 'log' | 'warn';
5415
- type LogData$2 = {
5416
- error?: ReturnType<typeof createSafeToLogError>;
5417
- peers?: string;
5418
- flags?: string | {
5419
- [key: string]: {
5420
- enabled: boolean;
5421
- value: string | number | boolean;
5422
- };
5423
- };
5424
- devices?: string | MediaDeviceInfo[];
5425
- debuggingHint?: string;
5426
- constraints?: string | RTKMediaStreamConstraints;
5427
- timeout?: number;
5428
- execTime?: number;
5429
- country?: string;
5430
- media?: {
5431
- audio?: {
5432
- enabled: boolean;
5433
- deviceName?: string;
5434
- deviceId?: string;
5435
- trackId?: string;
5436
- permission?: keyof typeof MediaPermission;
5437
- canProduce?: MediaProductionPermissionType;
5438
- };
5439
- video?: {
5440
- enabled?: boolean;
5441
- deviceName?: string;
5442
- deviceId?: string;
5443
- trackId?: string;
5444
- permission?: keyof typeof MediaPermission;
5445
- canProduce?: MediaProductionPermissionType;
5446
- layer?: number;
5447
- };
5448
- screenshare?: {
5449
- enabled: boolean;
5450
- count?: number;
5451
- maxAllowedCount?: number;
5452
- permission?: keyof typeof MediaPermission;
5453
- deviceName?: string;
5454
- deviceId?: string;
5455
- audio?: {
5456
- enabled: boolean;
5457
- trackId?: string;
5458
- };
5459
- video?: {
5460
- enabled: boolean;
5461
- trackId?: string;
5462
- };
5463
- canProduce?: MediaProductionPermissionType;
5464
- };
5465
- };
5466
- producerInfo?: {
5467
- peerId: string;
5468
- producers: ProducerState[];
5469
- };
5470
- preferredDevice?: {
5471
- kind: 'audio' | 'video';
5472
- preferredDeviceId?: string;
5473
- lastUsedPreferredDeviceId?: string;
5474
- };
5475
- mediaPermissionsErrors?: {
5476
- kind: 'audio' | 'video' | 'screenshare';
5477
- message: string;
5478
- deviceId?: string;
5479
- };
5480
- pip?: {
5481
- id: string;
5482
- handRaised?: boolean;
5483
- source?: any;
5484
- };
5485
- memoize?: {
5486
- doubleInvoked?: {
5487
- property: string;
5488
- };
5489
- };
5490
- dyteClientInitOptions?: RealtimeKitClientOptions;
5491
- plugin?: {
5492
- id?: string;
5493
- name?: string;
5494
- enabledBy?: string;
5495
- duration?: number;
5496
- storeName?: string;
5497
- data?: any;
5498
- };
5499
- roomJoined?: boolean;
5500
- transport?: {
5501
- id?: string;
5502
- type?: 'send' | 'recv';
5503
- status?: RTCPeerConnectionState | 'reconnecting';
5504
- lastDisconnectedTime?: string;
5505
- lastDisconnectedTimeOffset?: number;
5506
- durationPassed?: number;
5507
- remoteOfferAnswer?: RTCSessionDescriptionInit;
5508
- serverId?: string;
5509
- };
5510
- iceCandidate?: RTCIceCandidate;
5511
- iceRestart?: {
5512
- status?: RTCPeerConnectionState | 'reconnecting';
5513
- isSendTransport?: boolean;
5514
- isRecvTransport?: boolean;
5515
- currentAttempt?: number;
5516
- };
5517
- producer?: {
5518
- id: string;
5519
- peerId?: string;
5520
- kind: 'audio' | 'video' | PRODUCERS_TYPE;
5521
- status?: 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
5522
- appData: {
5523
- screenShare?: boolean;
5524
- supportsRemoteControl?: boolean;
5525
- };
5526
- error?: string;
5527
- closureReason?: string;
5528
- remoteAnswer?: SessionDescription;
5529
- trackId?: string;
5530
- };
5531
- consumer?: {
5532
- id: string;
5533
- peerId?: string;
5534
- kind?: string;
5535
- appData?: {
5536
- screenShare?: boolean;
5537
- supportsRemoteControl?: boolean;
5538
- };
5539
- remotelyPaused?: boolean;
5540
- producerId?: string;
5541
- closureReason?: string;
5542
- sessionDescription?: RTCSessionDescriptionInit;
5543
- };
5544
- consumerIds?: string[];
5545
- consumerState?: ConsumerState;
5546
- consumerStateMap?: {
5547
- [key: string]: ConsumerState;
5548
- };
5549
- rtcChannel?: {
5550
- label?: string;
5551
- message?: DCMessage;
5552
- messageStringified?: string;
5553
- };
5554
- localStorage?: {
5555
- key?: string;
5556
- value?: string;
5557
- };
5558
- spotlight?: {
5559
- spotlighter?: {
5560
- id?: string;
5561
- };
5562
- currentTab?: {
5563
- id?: string;
5564
- type?: ActiveTabType;
5565
- };
5566
- };
5567
- networkCall?: {
5568
- status?: number;
5569
- statusText?: string;
5570
- baseURL?: string;
5571
- url?: string;
5572
- retries?: number;
5573
- method?: string;
5574
- isOnline?: string;
5575
- ip?: any;
5576
- timezone?: string;
5577
- };
5578
- ipInfo?: {
5579
- city: string;
5580
- country: string;
5581
- region: string;
5582
- loc: string;
5583
- timezone: string;
5584
- ip: string;
5585
- postal: string;
5586
- };
5587
- dytePolls?: {
5588
- hasQuestion?: boolean;
5589
- optionsLength?: number;
5590
- };
5591
- dyteChat?: {
5592
- imageType?: string;
5593
- messageType?: string;
5594
- };
5595
- dyteParticipant?: {
5596
- id: string;
5597
- };
5598
- actions?: {
5599
- disableAllAudio?: {
5600
- allowUnmute?: boolean;
5601
- };
5602
- trackRobustness?: {
5603
- reacquireTrack?: boolean;
5604
- eventType?: string;
5605
- };
5606
- };
5607
- recording?: {
5608
- id?: string;
5609
- state?: RecordingState;
5610
- };
5611
- selectedPeer?: {
5612
- oldIndex?: number;
5613
- newIndex?: number;
5614
- peerId?: string;
5615
- };
5616
- pageNavigation?: {
5617
- viewMode: ViewMode;
5618
- currentPage: number;
5619
- pageCount: number;
5620
- maxActiveParticipantsCount: number;
5621
- settingPage?: number;
5622
- };
5623
- connectedMeetings?: {
5624
- movement?: {
5625
- sourceMeetingId?: string;
5626
- destinationMeetingId?: string;
5627
- totalParticipantsToMove?: number;
5628
- };
5629
- };
5630
- webinar?: {
5631
- stageStatus?: StageStatus;
5632
- };
5633
- livestream?: {
5634
- stageStatus?: StageStatus;
5635
- latency?: number;
5636
- };
5637
- moduleExists?: {
5638
- self?: boolean;
5639
- };
5640
- performanceObserver?: {
5641
- api: PerformanceEntry;
5642
- };
5643
- dyteLocker?: {
5644
- methodName: string;
5645
- lockName: string;
5646
- };
5647
- socket?: {
5648
- retryAttempt: number;
5649
- };
5650
- connectionState?: {
5651
- joinAttempted: boolean;
5652
- };
5653
- source?: string;
5654
- eventListener?: {
5655
- eventName: string;
5656
- listenerCount: number;
5657
- };
5658
- dataChannelMessageChunk?: {
5659
- id: string;
5660
- count: number;
5661
- chunkIndex: number;
5662
- chunk: string;
5663
- transprtId: string;
5664
- };
5665
- peerIds?: string[];
5666
- producers?: ProducerState[];
5667
- sdp?: RTCSessionDescription['sdp'];
5668
- awaitQueueTask?: {
5669
- id?: string | number;
5670
- metadata?: Record<string, unknown>;
5671
- queueSizeAtStart?: number;
5672
- taskStartTime?: number;
5673
- execTime?: number;
5674
- };
5537
+ type LogData$2 = {
5538
+ error?: ReturnType<typeof createSafeToLogError>;
5539
+ peers?: string;
5540
+ flags?: string | {
5541
+ [key: string]: {
5542
+ enabled: boolean;
5543
+ value: string | number | boolean;
5544
+ };
5545
+ };
5546
+ devices?: string | MediaDeviceInfo[];
5547
+ debuggingHint?: string;
5548
+ constraints?: string | ClientMediaStreamConstraints;
5549
+ timeout?: number;
5550
+ execTime?: number;
5551
+ country?: string;
5552
+ media?: {
5553
+ audio?: {
5554
+ enabled: boolean;
5555
+ deviceName?: string;
5556
+ deviceId?: string;
5557
+ trackId?: string;
5558
+ permission?: keyof typeof MediaPermission;
5559
+ canProduce?: MediaProductionPermissionType;
5560
+ };
5561
+ video?: {
5562
+ enabled?: boolean;
5563
+ deviceName?: string;
5564
+ deviceId?: string;
5565
+ trackId?: string;
5566
+ permission?: keyof typeof MediaPermission;
5567
+ canProduce?: MediaProductionPermissionType;
5568
+ layer?: number;
5569
+ };
5570
+ screenshare?: {
5571
+ enabled: boolean;
5572
+ count?: number;
5573
+ maxAllowedCount?: number;
5574
+ permission?: keyof typeof MediaPermission;
5575
+ deviceName?: string;
5576
+ deviceId?: string;
5577
+ audio?: {
5578
+ enabled: boolean;
5579
+ trackId?: string;
5580
+ };
5581
+ video?: {
5582
+ enabled: boolean;
5583
+ trackId?: string;
5584
+ };
5585
+ canProduce?: MediaProductionPermissionType;
5586
+ };
5587
+ };
5588
+ producerInfo?: {
5589
+ peerId: string;
5590
+ producers: ProducerState[];
5591
+ };
5592
+ preferredDevice?: {
5593
+ kind: 'audio' | 'video';
5594
+ preferredDeviceId?: string;
5595
+ lastUsedPreferredDeviceId?: string;
5596
+ };
5597
+ mediaPermissionsErrors?: {
5598
+ kind: 'audio' | 'video' | 'screenshare';
5599
+ message: string;
5600
+ deviceId?: string;
5601
+ };
5602
+ pip?: {
5603
+ id: string;
5604
+ handRaised?: boolean;
5605
+ source?: any;
5606
+ };
5607
+ memoize?: {
5608
+ doubleInvoked?: {
5609
+ property: string;
5610
+ };
5611
+ };
5612
+ clientInitOptions?: ClientOptions;
5613
+ plugin?: {
5614
+ id?: string;
5615
+ name?: string;
5616
+ enabledBy?: string;
5617
+ duration?: number;
5618
+ storeName?: string;
5619
+ data?: any;
5620
+ };
5621
+ roomJoined?: boolean;
5622
+ transport?: {
5623
+ id?: string;
5624
+ type?: 'send' | 'recv';
5625
+ status?: RTCPeerConnectionState | 'reconnecting';
5626
+ lastDisconnectedTime?: string;
5627
+ lastDisconnectedTimeOffset?: number;
5628
+ durationPassed?: number;
5629
+ remoteOfferAnswer?: RTCSessionDescriptionInit;
5630
+ serverId?: string;
5631
+ };
5632
+ iceCandidate?: RTCIceCandidate;
5633
+ iceRestart?: {
5634
+ status?: RTCPeerConnectionState | 'reconnecting';
5635
+ isSendTransport?: boolean;
5636
+ isRecvTransport?: boolean;
5637
+ currentAttempt?: number;
5638
+ };
5639
+ producer?: {
5640
+ id: string;
5641
+ peerId?: string;
5642
+ kind: 'audio' | 'video' | PRODUCERS_TYPE;
5643
+ status?: 'not_initialized' | 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
5644
+ appData: {
5645
+ screenShare?: boolean;
5646
+ supportsRemoteControl?: boolean;
5647
+ };
5648
+ error?: string;
5649
+ closureReason?: string;
5650
+ remoteAnswer?: SessionDescription;
5651
+ trackId?: string;
5652
+ };
5653
+ consumer?: {
5654
+ id: string;
5655
+ peerId?: string;
5656
+ kind?: string;
5657
+ appData?: {
5658
+ screenShare?: boolean;
5659
+ supportsRemoteControl?: boolean;
5660
+ };
5661
+ remotelyPaused?: boolean;
5662
+ producerId?: string;
5663
+ closureReason?: string;
5664
+ sessionDescription?: RTCSessionDescriptionInit;
5665
+ };
5666
+ consumerIds?: string[];
5667
+ consumerState?: ConsumerState;
5668
+ consumerStateMap?: {
5669
+ [key: string]: ConsumerState;
5670
+ };
5671
+ rtcChannel?: {
5672
+ label?: string;
5673
+ message?: DCMessage;
5674
+ messageStringified?: string;
5675
+ };
5676
+ localStorage?: {
5677
+ key?: string;
5678
+ value?: string;
5679
+ };
5680
+ spotlight?: {
5681
+ spotlighter?: {
5682
+ id?: string;
5683
+ };
5684
+ currentTab?: {
5685
+ id?: string;
5686
+ type?: ActiveTabType;
5687
+ };
5688
+ };
5689
+ networkCall?: {
5690
+ status?: number;
5691
+ statusText?: string;
5692
+ baseURL?: string;
5693
+ url?: string;
5694
+ retries?: number;
5695
+ method?: string;
5696
+ isOnline?: string;
5697
+ ip?: any;
5698
+ timezone?: string;
5699
+ };
5700
+ ipInfo?: {
5701
+ city: string;
5702
+ country: string;
5703
+ region: string;
5704
+ loc: string;
5705
+ timezone: string;
5706
+ ip: string;
5707
+ postal: string;
5708
+ };
5709
+ polls?: {
5710
+ hasQuestion?: boolean;
5711
+ optionsLength?: number;
5712
+ };
5713
+ chat?: {
5714
+ imageType?: string;
5715
+ messageType?: string;
5716
+ };
5717
+ participant?: {
5718
+ id: string;
5719
+ maskedName?: string;
5720
+ };
5721
+ actions?: {
5722
+ disableAllAudio?: {
5723
+ allowUnmute?: boolean;
5724
+ };
5725
+ trackRobustness?: {
5726
+ reacquireTrack?: boolean;
5727
+ eventType?: string;
5728
+ };
5729
+ };
5730
+ recording?: {
5731
+ id?: string;
5732
+ state?: RecordingState;
5733
+ };
5734
+ selectedPeer?: {
5735
+ oldIndex?: number;
5736
+ newIndex?: number;
5737
+ peerId?: string;
5738
+ };
5739
+ pageNavigation?: {
5740
+ viewMode: ViewMode;
5741
+ currentPage: number;
5742
+ pageCount: number;
5743
+ maxActiveParticipantsCount: number;
5744
+ settingPage?: number;
5745
+ };
5746
+ connectedMeetings?: {
5747
+ movement?: {
5748
+ sourceMeetingId?: string;
5749
+ destinationMeetingId?: string;
5750
+ totalParticipantsToMove?: number;
5751
+ };
5752
+ };
5753
+ webinar?: {
5754
+ stageStatus?: StageStatus;
5755
+ };
5756
+ livestream?: {
5757
+ stageStatus?: StageStatus;
5758
+ latency?: number;
5759
+ };
5760
+ moduleExists?: {
5761
+ self?: boolean;
5762
+ };
5763
+ performanceObserver?: {
5764
+ api: PerformanceEntry;
5765
+ };
5766
+ locker?: {
5767
+ methodName: string;
5768
+ lockName: string;
5769
+ };
5770
+ socket?: {
5771
+ retryAttempt: number;
5772
+ };
5773
+ connectionState?: {
5774
+ joinAttempted: boolean;
5775
+ };
5776
+ source?: string;
5777
+ eventListener?: {
5778
+ eventName: string;
5779
+ listenerCount: number;
5780
+ };
5781
+ dataChannelMessageChunk?: {
5782
+ id: string;
5783
+ count: number;
5784
+ chunkIndex: number;
5785
+ chunk: string;
5786
+ transprtId: string;
5787
+ };
5788
+ peerIds?: string[];
5789
+ producers?: ProducerState[];
5790
+ sdp?: RTCSessionDescription['sdp'];
5791
+ awaitQueueTask?: {
5792
+ id?: string | number;
5793
+ metadata?: Record<string, unknown>;
5794
+ queueSizeAtStart?: number;
5795
+ taskStartTime?: number;
5796
+ execTime?: number;
5797
+ };
5675
5798
  };
5676
5799
  type EventSeverities = SupportedEventSeverities;
5677
5800
  type LogData$1 = LogData$2;
@@ -5684,38 +5807,38 @@ interface MeetingMetadata {
5684
5807
  visitedUrl?: string;
5685
5808
  userId?: string;
5686
5809
  }
5687
- declare class RTKTelemetry {
5688
- logsCache: {
5689
- [key: string]: any;
5690
- }[];
5691
- logsProcessorTimer: NodeJS.Timer;
5692
- static location: {
5693
- country: string;
5694
- };
5695
- readonly logsEndpoint: string;
5696
- tracingEnabled: boolean;
5697
- initialized: boolean;
5698
- readonly logsProcessingInterval = 7000;
5699
- logExclusionList: string[];
5700
- meetingMetadata: MeetingMetadata;
5701
- resetPeerId(peerId: string): void;
5702
- init(context: Context<RTKContextState>, options: MeetingMetadata, enableTracing: boolean): void;
5703
- static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
5704
- injectContext(injectionReceiver: any): void;
5705
- addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
5706
- sendOtelLogsToNewRelic(logs: object[]): void;
5707
- processCachedLogs(): void;
5708
- destruct(): void;
5810
+ declare class Telemetry {
5811
+ logsCache: {
5812
+ [key: string]: any;
5813
+ }[];
5814
+ logsProcessorTimer: NodeJS.Timer;
5815
+ static location: {
5816
+ country: string;
5817
+ };
5818
+ readonly logsEndpoint: string;
5819
+ tracingEnabled: boolean;
5820
+ initialized: boolean;
5821
+ readonly logsProcessingInterval = 7000;
5822
+ logExclusionList: string[];
5823
+ meetingMetadata: MeetingMetadata;
5824
+ resetPeerId(peerId: string): void;
5825
+ init(context: Context<ContextState>, options: MeetingMetadata, enableTracing: boolean): void;
5826
+ static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
5827
+ injectContext(injectionReceiver: any): void;
5828
+ addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
5829
+ sendOtelLogsToNewRelic(logs: object[]): void;
5830
+ processCachedLogs(): void;
5831
+ destruct(): void;
5709
5832
  }
5710
5833
  type LogData = LogData$1;
5711
- declare class RTKLogger$1 {
5712
- readonly telemetry: RTKTelemetry;
5713
- init(context: Context<RTKContextState>): void;
5714
- info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5715
- error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5716
- debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5717
- log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5718
- warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5834
+ declare class Logger {
5835
+ readonly telemetry: Telemetry;
5836
+ init(context: Context<ContextState>): void;
5837
+ info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5838
+ error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5839
+ debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5840
+ log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5841
+ warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5719
5842
  }
5720
5843
  interface IceServerInformation {
5721
5844
  url: string;
@@ -5723,12 +5846,12 @@ interface IceServerInformation {
5723
5846
  urls: string;
5724
5847
  credential?: string;
5725
5848
  }
5726
- interface CachedUserDetails {
5727
- peerId?: string;
5728
- pluginInformation: RTKPluginResponse[];
5729
- userDetails: UserDetailsResponseV2;
5730
- roomDetails: RoomDetails;
5731
- iceServers: IceServerInformation[];
5849
+ interface CachedUserDetails {
5850
+ peerId?: string;
5851
+ pluginInformation: PluginResponse[];
5852
+ userDetails: UserDetailsResponseV2;
5853
+ roomDetails: RoomDetails;
5854
+ iceServers: IceServerInformation[];
5732
5855
  }
5733
5856
  interface APIOptions {
5734
5857
  baseURL?: string;
@@ -5738,101 +5861,117 @@ interface APIOptions {
5738
5861
  retryDelay?: number;
5739
5862
  cachedUserDetails?: CachedUserDetails;
5740
5863
  }
5741
- declare class API {
5742
- ipInfo: any;
5743
- readonly peerId: string;
5744
- context: Context<RTKContextState>;
5745
- readonly logger: RTKLogger$1;
5746
- constructor(context: Context<RTKContextState>, options?: APIOptions);
5747
- setAuthToken(token: string, options?: {
5748
- bearer?: boolean;
5749
- }): void;
5750
- setHeader(key: string, value: string): void;
5751
- setRoomName(name: string): void;
5752
- setRoomUUID(id: string): void;
5753
- setOrganizationId(id: string): void;
5864
+ declare class API {
5865
+ ipInfo: any;
5866
+ protected fetchClient: FetchClient;
5867
+ protected requests: FetchClient;
5868
+ protected roomName: string;
5869
+ protected roomUUID: string;
5870
+ protected authToken: string;
5871
+ protected organizationId: string;
5872
+ protected iceServers: IceServerInformation[];
5873
+ protected pluginInformation: PluginResponse[];
5874
+ protected userDetails: UserDetailsResponseV2;
5875
+ protected roomDetails: RoomDetails;
5876
+ readonly peerId: string;
5877
+ context: Context<ContextState>;
5878
+ readonly logger: Logger;
5879
+ constructor(context: Context<ContextState>, options?: APIOptions);
5880
+ setAuthToken(token: string, options?: {
5881
+ bearer?: boolean;
5882
+ }): void;
5883
+ setHeader(key: string, value: string): void;
5884
+ setRoomName(name: string): void;
5885
+ setRoomUUID(id: string): void;
5886
+ setOrganizationId(id: string): void;
5754
5887
  }
5755
5888
  interface Overrides {
5756
5889
  disableSimulcast?: boolean;
5890
+ simulcastConfig?: {
5891
+ disable?: boolean;
5892
+ encodings?: RTCRtpEncodingParameters[];
5893
+ };
5757
5894
  forceRelay?: boolean;
5758
- [key: string]: boolean | string | number;
5759
- }
5760
- interface RealtimeKitClientOptions {
5761
- authToken: string;
5762
- defaults?: DefaultOptions;
5763
- modules?: Modules;
5764
- overrides?: Overrides;
5765
- baseURI?: string;
5766
- onError?: (error: RTKError) => void;
5767
- cachedUserDetails?: CachedUserDetails;
5768
- }
5769
- declare class RealtimeKitClient {
5770
- private constructor();
5771
- readonly peerId: string;
5772
- static initMedia(options?: {
5773
- video?: boolean;
5774
- audio?: boolean;
5775
- constraints?: MediaConstraints;
5776
- }, skipAwaits?: boolean, cachedUserDetails?: CachedUserDetails): RTKSelfMedia$1;
5777
- static init(options: RealtimeKitClientOptions): Promise<RealtimeKitClient>;
5778
- join(): Promise<void>;
5779
- leave(state?: LeaveRoomState): Promise<void>;
5780
- readonly participants: Readonly<RTKParticipants$1>;
5781
- readonly self: Readonly<RTKSelf$1>;
5782
- readonly meta: Readonly<RTKMeta$1>;
5783
- readonly ai: Readonly<RTKAi>;
5784
- readonly plugins: Readonly<RTKPlugins$1>;
5785
- readonly chat: Readonly<RTKChat$1>;
5786
- readonly polls: Readonly<RTKPolls$1>;
5787
- readonly connectedMeetings: Readonly<RTKConnectedMeetings$1>;
5788
- readonly recording: Readonly<RTKRecording$1>;
5789
- readonly livestream: Readonly<RTKLivestream$1>;
5790
- readonly stage: Readonly<RTKStage>;
5791
- readonly stores: Readonly<RTKStoreManager>;
5792
- readonly audio: AudioPlaybackManager;
5793
- readonly __internals__: Readonly<RTKInternals>;
5794
- joinRoom(): Promise<void>;
5795
- leaveRoom(state?: LeaveRoomState): Promise<void>;
5895
+ [key: string]: boolean | string | number | Record<string, any>;
5896
+ }
5897
+ interface ClientOptions {
5898
+ authToken: string;
5899
+ defaults?: DefaultOptions;
5900
+ modules?: Modules;
5901
+ overrides?: Overrides;
5902
+ baseURI?: string;
5903
+ onError?: (error: ClientError) => void;
5904
+ cachedUserDetails?: CachedUserDetails;
5905
+ }
5906
+ declare class Client {
5907
+ private constructor();
5908
+ readonly peerId: string;
5909
+ static initMedia(options?: {
5910
+ video?: boolean;
5911
+ audio?: boolean;
5912
+ constraints?: MediaConstraints;
5913
+ }, skipAwaits?: boolean, cachedUserDetails?: CachedUserDetails): SelfMedia;
5914
+ static init(options: ClientOptions): Promise<Client>;
5915
+ private static setupContext;
5916
+ join(): Promise<void>;
5917
+ leave(state?: LeaveRoomState): Promise<void>;
5918
+ readonly participants: Readonly<Participants>;
5919
+ readonly self: Readonly<Self>;
5920
+ readonly meta: Readonly<Meta>;
5921
+ readonly ai: Readonly<Ai>;
5922
+ readonly plugins: Readonly<Plugins>;
5923
+ readonly chat: Readonly<Chat>;
5924
+ readonly polls: Readonly<Polls>;
5925
+ readonly connectedMeetings: Readonly<ConnectedMeetings>;
5926
+ readonly recording: Readonly<Recording>;
5927
+ readonly livestream: Readonly<Livestream>;
5928
+ readonly stage: Readonly<Stage>;
5929
+ readonly stores: Readonly<StoreManager>;
5930
+ readonly audio: AudioPlaybackManager;
5931
+ readonly __internals__: Readonly<Internals>;
5932
+ joinRoom(): Promise<void>;
5933
+ leaveRoom(state?: LeaveRoomState): Promise<void>;
5796
5934
  }
5797
5935
  declare enum RequestToJoinType {
5798
5936
  PRESENT = "REQUEST_TO_PRESENT"
5799
5937
  }
5800
- type RTKParticipant = Readonly<RTKParticipant$1>;
5801
- type RTKParticipants = Readonly<RTKParticipants$1>;
5802
- type RTKParticipantMap = Readonly<RTKParticipantMap$1>;
5803
- type RTKPlugin = Readonly<RTKPlugin$1>;
5804
- type RTKPlugins = Readonly<RTKPlugins$1>;
5805
- type RTKPluginMap = Readonly<RTKPluginMap$1>;
5806
- type RTKMeta = Readonly<RTKMeta$1>;
5807
- type RTKSelf = Readonly<RTKSelf$1>;
5808
- type RTKSelfMedia = Readonly<RTKSelfMedia$1>;
5809
- type RTKChat = Readonly<RTKChat$1>;
5810
- type RTKPolls = Readonly<RTKPolls$1>;
5811
- type RTKRecording = Readonly<RTKRecording$1>;
5812
- type RTKLivestream = Readonly<RTKLivestream$1>;
5813
- type RTKStore = RTKStore$1;
5814
- type RTKConnectedMeetings = Readonly<RTKConnectedMeetings$1>;
5815
- type RTKPermissionsPreset = Readonly<RTKPermissionsPreset$1>;
5816
- type RTKThemePreset = Readonly<RTKThemePreset$1>;
5817
- type RTKLogger = RTKLogger$1;
5818
- type RTKType = {
5819
- callStats?: unknown;
5820
- RTKTelemetry?: typeof RTKTelemetry;
5938
+ type RTKConfigOptions = Pick<ControllerOptions, Exclude<keyof ControllerOptions, 'peerId'>>;
5939
+ type RTKParticipant = Readonly<Participant>;
5940
+ type RTKParticipants = Readonly<Participants>;
5941
+ type RTKParticipantMap = Readonly<ParticipantMap>;
5942
+ type RTKPlugin = Readonly<Plugin>;
5943
+ type RTKPlugins = Readonly<Plugins>;
5944
+ type RTKPluginMap = Readonly<PluginMap>;
5945
+ type RTKMeta = Readonly<Meta>;
5946
+ type RTKSelf = Readonly<Self>;
5947
+ type RTKSelfMedia = Readonly<SelfMedia>;
5948
+ type RTKChat = Readonly<Chat>;
5949
+ type RTKPolls = Readonly<Polls>;
5950
+ type RTKRecording = Readonly<Recording>;
5951
+ type RTKLivestream = Readonly<Livestream>;
5952
+ type RTKStore = Store;
5953
+ type RTKConnectedMeetings = Readonly<ConnectedMeetings>;
5954
+ type RTKPermissionsPreset = Readonly<PermissionPreset>;
5955
+ type RTKThemePreset = Readonly<ThemePreset>;
5956
+ type RTKLogger = Logger;
5957
+ type ClientType = {
5958
+ callStats?: unknown;
5959
+ Telemetry?: typeof Telemetry;
5821
5960
  };
5822
- declare global {
5823
- interface Navigator {
5824
- RNLocalMediaHandlerImpl?: any;
5825
- RNAudioSampleHandlerImpl?: any;
5826
- RNBackgroundTimerImpl?: any;
5827
- RNDeviceInfoImpl?: any;
5828
- isReactNative?: boolean;
5829
- }
5830
- interface Window {
5831
- RTK?: RTKType;
5832
- FAST_DYTE?: boolean;
5833
- MediaStreamTrackProcessor?: any;
5834
- MediaStreamTrackGenerator?: any;
5835
- TransformStream?: any;
5836
- }
5837
- }
5838
- 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$1 as MediaKind, MediaPermission, Message, ProducerScoreStats, RecordingState, RequestToJoinType, SocketConnectionState, StageStatus, StartLivestreamConfig, TextMessage, VideoConsumerScoreStats, VideoMiddleware, VideoProducerScoreStats, VideoQualityConstraints, RealtimeKitClient as default, LeaveRoomState as leaveRoomState };
5961
+ declare global {
5962
+ interface Navigator {
5963
+ RNLocalMediaHandlerImpl?: any;
5964
+ RNAudioSampleHandlerImpl?: any;
5965
+ RNBackgroundTimerImpl?: any;
5966
+ RNDeviceInfoImpl?: any;
5967
+ isReactNative?: boolean;
5968
+ }
5969
+ interface Window {
5970
+ RTK?: ClientType;
5971
+ FAST_RTK?: boolean;
5972
+ MediaStreamTrackProcessor?: any;
5973
+ MediaStreamTrackGenerator?: any;
5974
+ TransformStream?: any;
5975
+ }
5976
+ }
5977
+ 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 };