@cloudflare/realtimekit 1.1.0-staging.11 → 1.1.0-staging.16

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.
package/dist/index.d.ts CHANGED
@@ -1,77 +1,10 @@
1
1
  /// <reference types="node" />
2
- import EventEmitter$1, { EventEmitter } from 'events';
3
- import { MessageType as MessageType$1 } from '@protobuf-ts/runtime';
4
2
  import * as _dyteinternals_utils from '@dyteinternals/utils';
5
- import { ViewType, createNewFlagsmithInstance, PresetTypeV2, MediaVideoQualityType, LivestreamViewerMediaQualityType, MediaProductionPermissionType, WaitingRoomTypes, MediaScreenShareQualityType, PluginAccessControls, RecorderType as RecorderType$1, BorderRadius, BorderWidth, Theme } from '@dyteinternals/utils';
3
+ import { MediaVideoQualityType, ViewType, LivestreamViewerMediaQualityType, MediaProductionPermissionType, WaitingRoomTypes, createNewFlagsmithInstance, PresetTypeV2, MediaScreenShareQualityType, PluginAccessControls, RecorderType as RecorderType$1, BorderRadius, BorderWidth, Theme } from '@dyteinternals/utils';
4
+ import { MessageType as MessageType$1 } from '@protobuf-ts/runtime';
5
+ import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
6
6
  import * as WorkerTimers from 'worker-timers';
7
7
 
8
- declare global {
9
- interface SymbolConstructor {
10
- readonly observable: symbol;
11
- }
12
- }
13
-
14
- /**
15
- Get keys of the given type as strings.
16
-
17
- Number keys are converted to strings.
18
-
19
- Use-cases:
20
- - Get string keys from a type which may have number keys.
21
- - Makes it possible to index using strings retrieved from template types.
22
-
23
- @example
24
- ```
25
- import type {StringKeyOf} from 'type-fest';
26
-
27
- type Foo = {
28
- 1: number,
29
- stringKey: string,
30
- };
31
-
32
- type StringKeysOfFoo = StringKeyOf<Foo>;
33
- //=> '1' | 'stringKey'
34
- ```
35
-
36
- @category Object
37
- */
38
- type StringKeyOf<BaseType> = `${Extract<keyof BaseType, string | number>}`;
39
-
40
- declare class RTKEventEmitter<T extends string | symbol> extends EventEmitter {
41
- constructor();
42
- emit(event: T, ...args: any[]): boolean;
43
- on(event: T, callback: (...args: any[]) => void): this;
44
- addListener(event: T, callback: (...args: any[]) => any): this;
45
- off(event: T, callback: (...args: any[]) => any): this;
46
- once(event: T, callback: (...args: any[]) => any): this;
47
- prependListener(event: T, callback: (...args: any[]) => any): this;
48
- prependOnceListener(event: T, callback: (...args: any[]) => any): this;
49
- removeListener(event: T, callback: (...args: any[]) => any): this;
50
- removeAllListeners(event?: T): this;
51
- listeners(event: T): Function[];
52
- listenerCount(event: T): number;
53
- }
54
- type EventMap$1 = {
55
- [key: string]: (...args: any[]) => void;
56
- };
57
- type WildCardEvent<T> = {
58
- ['*']: (event: StringKeyOf<T>, ...args: any) => void;
59
- };
60
- declare class RTKTypedEventEmitter<Events extends EventMap$1 & WildCardEvent<Events>> extends EventEmitter {
61
- constructor();
62
- emit<E extends StringKeyOf<Events>>(event: E, ...args: Parameters<Events[E]>): boolean;
63
- on<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
64
- addListener<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
65
- off<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
66
- once<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
67
- prependListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
68
- prependOnceListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
69
- removeListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
70
- removeAllListeners<T extends StringKeyOf<Events>>(event?: T): this;
71
- listeners<T extends StringKeyOf<Events>>(event: T): Function[];
72
- listenerCount<T extends StringKeyOf<Events>>(event: T): number;
73
- }
74
-
75
8
  /**
76
9
  * protolint:disable ENUM_FIELD_NAMES_PREFIX
77
10
  *
@@ -2617,7 +2550,7 @@ interface IVSPlayerLiveLatencyEntry extends EventEntryBase {
2617
2550
  }
2618
2551
  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;
2619
2552
 
2620
- declare class EventHandler extends EventEmitter$1 {
2553
+ declare class EventHandler extends EventEmitter {
2621
2554
  constructor({ logger, peerId, apiHostnames, }: {
2622
2555
  logger: RTKLogger$2;
2623
2556
  peerId: string;
@@ -2648,8 +2581,8 @@ declare class ParsedRTCStats {
2648
2581
  staleProducerStreamMap: boolean;
2649
2582
  staleConsumerStreamMap: boolean;
2650
2583
  }
2651
- declare abstract class Measurements extends EventEmitter$1 {
2652
- observer: EventEmitter$1;
2584
+ declare abstract class Measurements extends EventEmitter {
2585
+ observer: EventEmitter;
2653
2586
  outboundProducerMap: Map<string, string>;
2654
2587
  inboundConsumerMap: Map<string, string>;
2655
2588
  consumerPeerIdMap: Map<string, {
@@ -2741,8 +2674,8 @@ declare abstract class Measurements extends EventEmitter$1 {
2741
2674
  getNetworkInfo(iceServers: IceServerInfo[], skipConnectivityChecks?: boolean): Promise<NetworkInformation | NetworkInformationWithoutConnectivityData>;
2742
2675
  }
2743
2676
 
2744
- declare class CallStats extends EventEmitter$1 {
2745
- observer: EventEmitter$1;
2677
+ declare class CallStats extends EventEmitter {
2678
+ observer: EventEmitter;
2746
2679
  eventHandler: EventHandler;
2747
2680
  producers: Map<string, any>;
2748
2681
  logger: RTKLogger$2;
@@ -2812,7 +2745,7 @@ declare class CallStats extends EventEmitter$1 {
2812
2745
  expectedScreenshareResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
2813
2746
  }
2814
2747
 
2815
- declare class InhouseCallStats extends EventEmitter$1 {
2748
+ declare class InhouseCallStats extends EventEmitter {
2816
2749
  stats: any;
2817
2750
  peerId: string;
2818
2751
  backend: CallStats;
@@ -2867,167 +2800,144 @@ declare class InhouseCallStats extends EventEmitter$1 {
2867
2800
  expectedScreenshareResolution(frameWidth: number, frameHeight: number): void;
2868
2801
  }
2869
2802
 
2870
- interface RTKBasicParticipant {
2871
- userId: string;
2872
- name?: string;
2873
- picture?: string;
2874
- customParticipantId: string;
2875
- }
2876
- declare class RTKBasicParticipantsMap extends RTKEventEmitter<'participantsUpdate'> {
2877
- constructor();
2878
- __set(objId: string, obj: RTKBasicParticipant): Map<string, RTKBasicParticipant>;
2879
- __clear(): void;
2880
- get(objId: string): RTKBasicParticipant;
2881
- toArray(): RTKBasicParticipant[];
2803
+ declare global {
2804
+ interface SymbolConstructor {
2805
+ readonly observable: symbol;
2806
+ }
2882
2807
  }
2883
2808
 
2884
- type ChatChannelSocketMessage = GetChatChannelResponse;
2885
- interface ChatChannel {
2886
- id: string;
2887
- displayName: string;
2888
- memberIds: string[];
2889
- displayPictureUrl?: string;
2890
- visibility?: string;
2891
- isDirectMessage?: boolean;
2892
- latestMessage?: Message;
2893
- unreadCount: number;
2894
- }
2895
- interface UpdateChannelRequestPayload {
2896
- memberIds?: string[];
2897
- displayName?: string;
2898
- displayPictureUrl?: string;
2899
- visibility?: string;
2900
- }
2901
- declare class ChatChannelSocketHandler {
2902
- constructor(socketService: SocketService);
2903
- createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise<ChatChannel>;
2904
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
2905
- static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
2906
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
2907
- on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
2908
- }
2809
+ /**
2810
+ Get keys of the given type as strings.
2909
2811
 
2910
- declare enum ChatMessageType {
2911
- TEXT = 0,
2912
- IMAGE = 1,
2913
- FILE = 2,
2914
- CUSTOM = 3
2812
+ Number keys are converted to strings.
2813
+
2814
+ Use-cases:
2815
+ - Get string keys from a type which may have number keys.
2816
+ - Makes it possible to index using strings retrieved from template types.
2817
+
2818
+ @example
2819
+ ```
2820
+ import type {StringKeyOf} from 'type-fest';
2821
+
2822
+ type Foo = {
2823
+ 1: number,
2824
+ stringKey: string,
2825
+ };
2826
+
2827
+ type StringKeysOfFoo = StringKeyOf<Foo>;
2828
+ //=> '1' | 'stringKey'
2829
+ ```
2830
+
2831
+ @category Object
2832
+ */
2833
+ type StringKeyOf<BaseType> = `${Extract<keyof BaseType, string | number>}`;
2834
+
2835
+ declare class RTKEventEmitter<T extends string | symbol> extends EventEmitter$1 {
2836
+ logger: RTKLogger$1 | undefined;
2837
+ constructor(logger: RTKLogger$1);
2838
+ emit(event: T, ...args: any[]): boolean;
2839
+ on(event: T, callback: (...args: any[]) => void): this;
2840
+ addListener(event: T, callback: (...args: any[]) => any): this;
2841
+ off(event: T, callback: (...args: any[]) => any): this;
2842
+ once(event: T, callback: (...args: any[]) => any): this;
2843
+ prependListener(event: T, callback: (...args: any[]) => any): this;
2844
+ prependOnceListener(event: T, callback: (...args: any[]) => any): this;
2845
+ removeListener(event: T, callback: (...args: any[]) => any): this;
2846
+ removeAllListeners(event?: T): this;
2847
+ listeners(event: T): Function[];
2848
+ listenerCount(event: T): number;
2915
2849
  }
2916
- type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
2917
- interface SearchFilters {
2918
- channelId?: string;
2919
- timestamp?: number;
2920
- size?: number;
2921
- reversed?: boolean;
2850
+ type EventMap$1 = {
2851
+ [key: string]: (...args: any[]) => void;
2852
+ };
2853
+ type WildCardEvent<T> = {
2854
+ ['*']: (event: StringKeyOf<T>, ...args: any) => void;
2855
+ };
2856
+ declare class RTKTypedEventEmitter<Events extends EventMap$1 & WildCardEvent<Events>> extends EventEmitter$1 {
2857
+ logger: RTKLogger$1 | undefined;
2858
+ constructor(logger: RTKLogger$1);
2859
+ emit<E extends StringKeyOf<Events>>(event: E, ...args: Parameters<Events[E]>): boolean;
2860
+ on<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2861
+ addListener<E extends StringKeyOf<Events>>(event: E, callback: Events[E]): this;
2862
+ off<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2863
+ once<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2864
+ prependListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2865
+ prependOnceListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2866
+ removeListener<T extends StringKeyOf<Events>>(event: T, callback: Events[T]): this;
2867
+ removeAllListeners<T extends StringKeyOf<Events>>(event?: T): this;
2868
+ listeners<T extends StringKeyOf<Events>>(event: T): Function[];
2869
+ listenerCount<T extends StringKeyOf<Events>>(event: T): number;
2922
2870
  }
2923
- declare class ChatSocketHandler {
2871
+
2872
+ type StageSocketMessage = GetStageRequestsResponse | GetStagePeersResponse | DenyStageAccessRequest | PeerStatusUpdate;
2873
+ declare class StageSocketHandler {
2924
2874
  constructor(socketService: SocketService);
2925
- getChatMessages(): Promise<{
2875
+ getStageRequests(): Promise<GetStageRequestsResponse>;
2876
+ requestAccess(): void;
2877
+ cancelRequestAccess(): void;
2878
+ grantAccess(userIds: string[]): Promise<void>;
2879
+ denyAccess(userIds: string[]): Promise<void>;
2880
+ joinStage(): Promise<{
2926
2881
  id: string;
2927
2882
  payload: Uint8Array;
2928
2883
  }>;
2929
- getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<GetPaginatedChatMessageRoomResponse>;
2930
- sendMessageToRoom(message: string, messageType: ChatMessageType): void;
2931
- sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
2932
- sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
2933
- sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
2934
- editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise<ChatMessage>;
2935
- deleteMessage(chatId: string, channelId?: string): Promise<{
2936
- channelId?: string;
2884
+ leaveStage(userId: string): Promise<{
2937
2885
  id: string;
2886
+ payload: Uint8Array;
2938
2887
  }>;
2939
- searchMessages(query: string, filters: SearchFilters): Promise<ChatMessage[]>;
2940
- getAllChannels(): Promise<ChatChannel[]>;
2941
- markLastReadMessage(channelId: string, message: Message): Promise<string>;
2942
- setPinState(message: Message, pin: boolean): Promise<PinChatMessageResponse>;
2943
- on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
2888
+ kick(userIds: string[]): Promise<{
2889
+ id: string;
2890
+ payload: Uint8Array;
2891
+ }>;
2892
+ on(event: number, handler: (socketMessage: StageSocketMessage, messageId?: string) => void): void;
2893
+ getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
2944
2894
  }
2945
2895
 
2946
- declare class RTKSelectedPeers {
2947
- constructor();
2948
- add(peerId: string, priority: number): number;
2949
- delete(peerId: string): void;
2950
- index(peerId: string): number;
2951
- get peers(): string[];
2952
- get compulsoryPeers(): string[];
2953
- get activeSpeakerPeers(): string[];
2896
+ type StageStatus = 'OFF_STAGE' | 'REQUESTED_TO_JOIN_STAGE' | 'ACCEPTED_TO_JOIN_STAGE' | 'ON_STAGE';
2897
+ interface StageRequestPayload {
2898
+ displayName: string;
2899
+ userId: string;
2900
+ peerId: string;
2954
2901
  }
2955
-
2956
- type PipEvents = {
2957
- ['cameraToggled']: () => void;
2958
- ['micToggled']: () => void;
2959
- ['hangup']: () => void;
2960
- ['pipStarted']: () => void;
2961
- ['pipEnded']: () => void;
2902
+ type StageEvents = {
2903
+ ['stageAccessRequestUpdate']: (requests?: StageRequestPayload[]) => void;
2904
+ ['stageStatusUpdate']: (status: StageStatus) => void;
2905
+ ['newStageRequest']: (payload: {
2906
+ count: number;
2907
+ }) => void;
2908
+ ['stageRequestApproved']: () => void;
2909
+ ['stageRequestRejected']: () => void;
2962
2910
  ['*']: (eventName: string, ...args: any[]) => void;
2963
2911
  };
2964
- declare class RTKPip extends RTKTypedEventEmitter<PipEvents> {
2965
- private constructor();
2966
- static _init(context: Context<RTKContextState>, self: RTKSelf$1): Promise<RTKPip>;
2967
- overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise<void>;
2968
- isSupported(): boolean;
2969
- get isActive(): boolean;
2970
- init({ height, width }?: {
2971
- height?: number;
2972
- width?: number;
2973
- }): void;
2974
- enableSource(source: string): void;
2975
- disableSource(source: string): void;
2976
- addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
2977
- updateSource(id: string, source: any): void;
2978
- removeSource(id: string): void;
2979
- removePinnedSource(): void;
2980
- removeAllSources(): void;
2981
- enable(): void;
2982
- disable: (partial?: boolean) => void;
2983
- }
2984
-
2985
- type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
2986
- declare class RoomSocketHandler {
2987
- socket: SocketService;
2988
- cleanup(): Promise<void>;
2989
- constructor(context: Context<RTKContextState>, socketService: SocketService);
2990
- joinRoom(opts: {
2991
- name: string;
2992
- id: string;
2993
- userId: string;
2994
- customParticipantId: string;
2995
- picture?: string;
2996
- }): Promise<{
2997
- peer: Peer;
2998
- }>;
2999
- getAllAddedParticipants(): Promise<RTKBasicParticipant[]>;
3000
- getRoomPeers(searchQuery: string, limit: number, offset: number): Promise<RoomPeersInfoResponse>;
3001
- getRoomPeersNonPaginated(): Promise<RoomPeersInfoResponse>;
3002
- getStagePeers(): Promise<RoomPeersInfoResponse>;
3003
- getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
3004
- getRoomState(): Promise<RoomInfoResponse>;
3005
- getRoomStageState(): Promise<GetRoomStageStateResponse>;
3006
- broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
3007
- id: string;
3008
- payload: Uint8Array;
3009
- }>;
3010
- broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
3011
- id: string;
3012
- payload: Uint8Array;
3013
- }>;
3014
- broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise<boolean>;
3015
- leaveRoom(): Promise<void>;
3016
- kick(peerId: string): Promise<void>;
3017
- kickAll(propagateKickAll?: boolean): Promise<void>;
3018
- getWaitingRoomRequests(): void;
3019
- acceptWaitingRoomRequest(userIds: string[]): void;
3020
- rejectWaitingRoomRequest(userIds: string[]): void;
3021
- updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
2912
+ declare class RTKStage extends RTKTypedEventEmitter<StageEvents> {
2913
+ get telemetry(): RTKTelemetry;
2914
+ constructor(context: Context<RTKContextState>, self: RTKSelf$1, participants: RTKParticipants, stageSocketHandler: StageSocketHandler, roomSocketHandler: RoomSocketHandler);
2915
+ get status(): StageStatus;
2916
+ getAccessRequests(): {
2917
+ stageRequests: StageRequestPayload[];
2918
+ };
2919
+ requestAccess(): Promise<void>;
2920
+ cancelRequestAccess(): Promise<void>;
2921
+ grantAccess(userIds: string[]): Promise<void>;
2922
+ denyAccess(userIds: string[]): Promise<void>;
2923
+ join(): Promise<void>;
2924
+ leave(): Promise<void>;
2925
+ kick(userIds: string[]): Promise<{
3022
2926
  id: string;
3023
2927
  payload: Uint8Array;
3024
2928
  }>;
3025
- on(event: number, handler: (message: EventHandlerTypes) => void): void;
3026
- getUserPermissions(userId: string): Promise<Pick<PresetTypeV2['permissions'], 'chat' | 'polls' | 'plugins'>>;
3027
2929
  }
3028
2930
 
3029
- declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter {
3030
- constructor();
2931
+ interface ResponseStatus {
2932
+ success: boolean;
2933
+ message: string;
2934
+ }
2935
+
2936
+ type MediaPermission$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE' | 'CANCELED';
2937
+
2938
+ declare class EnhancedEventEmitter<TransportPromiseEvents> extends EventEmitter$1 {
2939
+ get logger(): RTKLogger$1;
2940
+ constructor(context: Context<RTKContextState>);
3031
2941
  safeEmit(event: string, ...args: any[]): boolean;
3032
2942
  safeEmitAsPromise<T extends keyof TransportPromiseEvents>(event: T, ...args: any[]): Promise<TransportPromiseEvents[T]>;
3033
2943
  safeEmitAsPromiseWithTimeout<T extends keyof TransportPromiseEvents>(event: T, timeout: number, ...args: any[]): Promise<TransportPromiseEvents[T]>;
@@ -3151,7 +3061,7 @@ declare class Consumer extends EnhancedEventEmitter<TransportPromiseEvents> {
3151
3061
  readonly peerId: string;
3152
3062
  readonly appData: Record<string, unknown>;
3153
3063
  readonly transceiver: RTCRtpTransceiver;
3154
- constructor(opts: ConsumerOptions);
3064
+ constructor(context: Context<RTKContextState>, opts: ConsumerOptions);
3155
3065
  get closed(): boolean;
3156
3066
  get kind(): MediaKind;
3157
3067
  get paused(): boolean;
@@ -3252,550 +3162,138 @@ type SelfEvents = {
3252
3162
  ['*']: (event: string, ...args: any[]) => void;
3253
3163
  };
3254
3164
 
3255
- interface DeviceConfig {
3256
- browserName: string;
3257
- browserVersion: string;
3258
- isMobile: boolean;
3259
- engineName: string;
3260
- osName: string;
3261
- }
3262
- interface ProducerState {
3263
- producerId: string;
3264
- kind: 'audio' | 'video';
3265
- pause: boolean;
3266
- screenShare: boolean;
3267
- producingTransportId: string;
3268
- producingPeerId: string;
3269
- mimeType?: string;
3270
- }
3271
- interface Participant {
3272
- id: string;
3273
- userId: string;
3274
- displayName: string;
3275
- device?: DeviceConfig;
3276
- picture?: string;
3277
- isHost: boolean;
3278
- flags: {
3279
- [key: string]: string | boolean;
3280
- };
3281
- clientSpecificId?: string;
3282
- customParticipantId?: string;
3283
- stageStatus?: StageStatus;
3284
- audioMuted: boolean;
3285
- audioTrack: MediaStreamTrack;
3286
- videoTrack: MediaStreamTrack;
3287
- videoEnabled: boolean;
3288
- producers?: ProducerState[];
3289
- metadata?: {
3290
- preset_name?: string;
3165
+ declare class LocalMediaHandler extends RTKEventEmitter<LocalMediaEvents> {
3166
+ get telemetry(): RTKTelemetry;
3167
+ audioUpdateInProgress: boolean;
3168
+ videoUpdateInProgress: boolean;
3169
+ constructor(context: Context<RTKContextState>, mediaConstraints: MediaConstraints, isNonPreferredDevice?: (media: MediaDeviceInfo) => boolean, autoSwitchDevice?: boolean);
3170
+ set context(context: Context<RTKContextState>);
3171
+ repopulateAvailableDevices(): Promise<boolean>;
3172
+ setupStreams({ audio, video, }: {
3173
+ audio: boolean;
3174
+ video: boolean;
3175
+ }): Promise<void>;
3176
+ getCurrentDevices(): {
3177
+ audio: MediaDeviceInfo;
3178
+ video: MediaDeviceInfo;
3179
+ speaker: MediaDeviceInfo;
3291
3180
  };
3292
- recorderType?: string;
3293
- }
3294
- declare class RTKParticipant$1 extends RTKTypedEventEmitter<ParticipantEvents> {
3295
- id: string;
3296
- userId: string;
3297
- name: string;
3298
- picture: string;
3299
- isHost: boolean;
3300
- customParticipantId?: string;
3301
- get clientSpecificId(): string;
3302
- flags: {
3303
- [key: string]: string | boolean;
3181
+ get permissions(): {
3182
+ audio?: MediaPermission$1;
3183
+ video?: MediaPermission$1;
3184
+ screenshare?: MediaPermission$1;
3304
3185
  };
3305
- device: DeviceConfig;
3306
- videoTrack: MediaStreamTrack;
3307
- audioTrack: MediaStreamTrack;
3308
- screenShareTracks: {
3186
+ getAllDevices(): Promise<InputDeviceInfo[]>;
3187
+ getDeviceById(deviceId: string, kind?: 'audioinput' | 'audiooutput' | 'videoinput'): Promise<MediaDeviceInfo>;
3188
+ get rawAudioTrack(): MediaStreamTrack;
3189
+ get audioTrack(): MediaStreamTrack;
3190
+ get audioEnabled(): boolean;
3191
+ enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3192
+ disableAudio(): void;
3193
+ getAudioDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3194
+ setAudioDevice(device: MediaDeviceInfo): Promise<void>;
3195
+ setupSpeaker(): Promise<void>;
3196
+ setSpeakerDevice(device: MediaDeviceInfo): Promise<void>;
3197
+ get rawVideoTrack(): MediaStreamTrack;
3198
+ get videoTrack(): MediaStreamTrack;
3199
+ get videoEnabled(): boolean;
3200
+ enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3201
+ disableVideo(): void;
3202
+ getVideoDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3203
+ setVideoDevice(device: MediaDeviceInfo): Promise<void>;
3204
+ updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3205
+ get screenShareTracks(): {
3309
3206
  audio: MediaStreamTrack;
3310
3207
  video: MediaStreamTrack;
3311
3208
  };
3312
- videoEnabled: boolean;
3313
- audioEnabled: boolean;
3314
- screenShareEnabled: boolean;
3315
- producers: ProducerState[];
3316
- manualProducerConfig: PeerProducerConfig;
3317
- supportsRemoteControl: boolean;
3318
- presetName?: string;
3319
- get stageStatus(): StageStatus;
3320
- constructor(context: Context<RTKContextState>, participant: Participant, self: RTKSelf, roomSocket: RoomSocketHandler);
3321
- setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
3322
- setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
3323
- setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
3324
- pin(): Promise<void>;
3325
- unpin(): Promise<void>;
3326
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
3327
- disableAudio(): Promise<void>;
3328
- kick(): Promise<void>;
3329
- disableVideo(): Promise<void>;
3330
- getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "plugins" | "polls" | "chat">>;
3331
- setStageStatus(stageStatus: StageStatus): void;
3332
- get isPinned(): boolean;
3333
- registerVideoElement(videoElem: HTMLVideoElement): void;
3334
- deregisterVideoElement(videoElem?: HTMLVideoElement): void;
3209
+ get screenShareEnabled(): boolean;
3210
+ enableScreenShare(): Promise<void>;
3211
+ disableScreenShare(): Promise<void>;
3212
+ updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3213
+ getSpeakerDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3214
+ addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3215
+ removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3216
+ removeAllAudioMiddlewares(): Promise<ResponseStatus>;
3217
+ addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3218
+ removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3219
+ removeAllVideoMiddlewares(): Promise<ResponseStatus>;
3220
+ setVideoMiddlewareGlobalConfig(config: VideoMiddlewareGlobalConfig): Promise<void>;
3221
+ destruct(): void;
3222
+ onDeviceChange(changedDevices: {
3223
+ added: MediaDeviceInfo[];
3224
+ removed: MediaDeviceInfo[];
3225
+ devices: MediaDeviceInfo[];
3226
+ }, skipDeviceChange: boolean): Promise<void>;
3227
+ removeAllTracks(): void;
3228
+ removeAudioTrack(): void;
3229
+ removeVideoTrack(): void;
3230
+ removeDocumentEventListeners(): Promise<void>;
3335
3231
  }
3336
3232
 
3337
- type TranscriptionData = {
3338
- id: string;
3339
- name: string;
3340
- peerId: string;
3341
- userId: string;
3342
- customParticipantId: string;
3343
- transcript: string;
3344
- isPartialTranscript: boolean;
3345
- date: Date;
3346
- };
3347
- type AiEvents = {
3348
- ['transcript']: (t: TranscriptionData) => void;
3349
- ['*']: (event: string, ...args: any[]) => void;
3350
- };
3351
- declare class RTKAi extends RTKTypedEventEmitter<AiEvents> {
3352
- transcripts: TranscriptionData[];
3353
- constructor();
3354
- static init(transcriptionEnabled: boolean): Promise<RTKAi>;
3355
- static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
3356
- static parseTranscripts(transcriptData: string): TranscriptionData[];
3357
- getActiveTranscript(): Promise<void>;
3358
- onTranscript(transcript: TranscriptionData): Promise<void>;
3233
+ declare enum MediaPermission {
3234
+ NOT_REQUESTED = 0,
3235
+ ACCEPTED = 1,
3236
+ DENIED = 2,
3237
+ CANCELED = 3,
3238
+ SYSTEM_DENIED = 4,
3239
+ COULD_NOT_START = 5,
3240
+ NO_DEVICES_AVAILABLE = 6
3359
3241
  }
3360
3242
 
3361
- type ActiveTabType = 'screenshare' | 'plugin';
3362
- interface ActiveTab {
3363
- type: ActiveTabType;
3364
- id: string;
3365
- }
3366
- declare enum TabChangeSource {
3367
- User = 0,
3368
- Meeting = 1
3369
- }
3370
- interface MediaConnectionUpdate {
3371
- transport: 'consuming' | 'producing';
3372
- state: `${TransportState}`;
3373
- reconnected: boolean;
3374
- }
3375
- type MetaEvents = {
3376
- ['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
3377
- ['socketConnectionUpdate']: (state: SocketConnectionState) => void;
3378
- ['poorConnection']: (payload: {
3379
- score: number;
3380
- }) => void;
3381
- ['meetingStartTimeUpdate']: (payload: {
3382
- meetingStartedTimestamp: Date;
3383
- }) => void;
3384
- ['transcript']: (t: TranscriptionData) => void;
3385
- ['activeTabUpdate']: (tab: ActiveTab) => void;
3386
- ['selfTabUpdate']: (tab: ActiveTab) => void;
3387
- ['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
3388
- ['*']: (event: string, ...args: any[]) => void;
3243
+ type AudioMiddleware = (audioContext: AudioContext) => Promise<ScriptProcessorNode | AudioWorkletNode>;
3244
+
3245
+ type VideoMiddleware = (() => Promise<(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => Promise<void>>) | ((helpers: {
3246
+ canvas: HTMLCanvasElement;
3247
+ WorkerTimers: typeof WorkerTimers;
3248
+ }) => Promise<void>);
3249
+ type VideoMiddlewareGlobalConfig = {
3250
+ disablePerFrameCanvasRendering: boolean;
3389
3251
  };
3390
- declare class RTKMeta$1 extends RTKTypedEventEmitter<MetaEvents> {
3391
- selfActiveTab: ActiveTab | undefined;
3392
- get socketState(): SocketConnectionState;
3393
- get mediaState(): MediaConnectionState;
3394
- broadcastTabChanges: boolean;
3395
- viewType: string;
3396
- meetingStartedTimestamp: Date;
3397
- meetingTitle: string;
3398
- sessionId: string;
3399
- constructor(context: Context<RTKContextState>, self: RTKSelf, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
3400
- get meetingId(): string;
3401
- setBroadcastTabChanges(broadcastTabChanges: boolean): void;
3402
- setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
3403
- }
3404
-
3405
- interface RTKMapEvents<T extends EventMap$1> {
3406
- onAddEvent?: keyof T;
3407
- onDeleteEvent?: keyof T;
3408
- onClearEvent?: keyof T;
3409
- }
3410
- type ModifyPrependObject<T extends EventMap$1, U> = {
3411
- [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3412
- } & {
3413
- ['*']: (event: String, ...args: any[]) => void;
3414
- };
3415
- declare class RTKMap<T extends (EventMap$1 & WildCardEvent<T>), U extends {
3416
- id: string;
3417
- } & RTKTypedEventEmitter<T>, V extends EventMap$1> extends Map<string, U> {
3418
- readonly onAddEvent: keyof V;
3419
- readonly onDeleteEvent: keyof V;
3420
- readonly onClearEvent: keyof V;
3421
- constructor(options: RTKMapEvents<V>);
3422
- emit<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject<T, U>)[E]>): boolean;
3423
- on<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3424
- "*": (event: String, ...args: any[]) => void;
3425
- } & V>;
3426
- addListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3427
- "*": (event: String, ...args: any[]) => void;
3428
- } & V>;
3429
- off<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3430
- "*": (event: String, ...args: any[]) => void;
3431
- } & V>;
3432
- once<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3433
- "*": (event: String, ...args: any[]) => void;
3434
- } & V>;
3435
- prependListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3436
- "*": (event: String, ...args: any[]) => void;
3437
- } & V>;
3438
- prependOnceListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3439
- "*": (event: String, ...args: any[]) => void;
3440
- } & V>;
3441
- removeListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3442
- "*": (event: String, ...args: any[]) => void;
3443
- } & V>;
3444
- removeAllListeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event?: E): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3445
- "*": (event: String, ...args: any[]) => void;
3446
- } & V>;
3447
- listeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): Function[];
3448
- listenerCount<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): number;
3449
- getMaxListeners(): number;
3450
- setMaxListeners(n: number): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3451
- "*": (event: String, ...args: any[]) => void;
3452
- } & V>;
3453
- eventNames(): (string | symbol)[];
3454
- add(obj: U, emitEvent?: boolean): this;
3455
- set(objId: string, obj: U, emitEvent?: boolean): this;
3456
- delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3457
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3458
- toArray(): U[];
3459
- }
3460
-
3461
- type ParticipantMapEvents = {
3462
- ['participantJoined']: (payload: RTKParticipant$1) => void;
3463
- ['participantLeft']: (payload: RTKParticipant$1) => void;
3464
- ['participantsCleared']: () => void;
3465
- ['participantsUpdate']: () => void;
3466
- ['kicked']: (payload: {
3467
- id: string;
3468
- }) => void;
3469
- };
3470
- declare class RTKParticipantMap$1<T extends Pick<RTKParticipant$1, 'id' | keyof RTKTypedEventEmitter<ParticipantEvents>> = RTKParticipant$1> extends RTKMap<ParticipantEvents, T, ParticipantMapEvents> {
3471
- constructor(options?: RTKMapEvents<ParticipantMapEvents>);
3472
- add(participant: T, emitEvent?: boolean): this;
3473
- clear(emitEvent?: boolean, removeListeners?: boolean): void;
3474
- delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3475
- }
3476
3252
 
3477
- declare const modes: readonly ["ACTIVE_GRID", "PAGINATED", "MANUAL"];
3478
- type ViewMode = (typeof modes)[number];
3479
- interface BroadcastMessagePayload {
3480
- [key: string]: boolean | number | string | Date | ActiveTab;
3481
- }
3482
- interface PeerProducerConfig {
3483
- audio: boolean;
3484
- video: boolean;
3485
- screenshareAudio: boolean;
3486
- screenshareVideo: boolean;
3487
- }
3488
- type BroadcastMessageTarget = {
3489
- participantIds: string[];
3490
- } | {
3491
- presetNames: string[];
3492
- } | {
3493
- meetingIds: string[];
3253
+ type PresetMediaConstraints = PresetV2CamelCased['config']['media'];
3254
+ type AudioQualityConstraints = {
3255
+ echoCancellation?: boolean;
3256
+ noiseSupression?: boolean;
3257
+ autoGainControl?: boolean;
3258
+ enableStereo?: boolean;
3259
+ enableHighBitrate?: boolean;
3494
3260
  };
3495
- type JoinedPeer = {
3496
- id: string;
3497
- userId: string;
3498
- name: string;
3499
- stageType?: StageStatus;
3500
- customParticipantId?: string;
3501
- presetId?: string;
3502
- picture?: string;
3503
- waitlisted: boolean;
3504
- recorderType?: string;
3505
- stageStatus?: StageStatus;
3506
- metadata?: {
3507
- preset_name?: string;
3261
+ type VideoQualityConstraints = {
3262
+ width: {
3263
+ ideal: number;
3508
3264
  };
3509
- flags?: {
3510
- hiddenParticipant?: boolean;
3511
- recorder?: boolean;
3265
+ height: {
3266
+ ideal: number;
3267
+ };
3268
+ frameRate?: {
3269
+ ideal: number;
3512
3270
  };
3513
3271
  };
3514
- type ParticipantsEvents = {
3515
- ['viewModeChanged']: (payload: {
3516
- viewMode: string;
3517
- currentPage: number;
3518
- pageCount: number;
3519
- }) => void;
3520
- ['activeSpeaker']: (payload: {
3521
- peerId: string;
3522
- volume: number;
3523
- }) => void;
3524
- ['broadcastedMessage']: (payload: {
3525
- type: string;
3526
- payload: BroadcastMessagePayload;
3527
- timestamp: number;
3528
- }) => void;
3529
- ['poorConnection']: (payload: {
3530
- participantId: string;
3531
- score: number;
3532
- kind: string;
3533
- }) => void;
3534
- ['pageChanged']: (payload: {
3535
- viewMode: string;
3536
- currentPage: number;
3537
- pageCount: number;
3538
- }) => void;
3539
- ['mediaScoreUpdate']: (payload: {
3540
- kind: string;
3541
- isScreenshare: boolean;
3542
- score: number;
3543
- participantId: string;
3544
- scoreStats: ConsumerScoreStats;
3545
- }) => void;
3546
- ['media_decode_error']: (payload: {
3547
- reason: string;
3548
- code: '1702' | '1703';
3549
- }) => void;
3550
- ['*']: (event: string, ...args: any[]) => void;
3551
- };
3552
- declare class RTKParticipants$1 extends RTKTypedEventEmitter<ParticipantsEvents> {
3553
- readonly waitlisted: Readonly<RTKParticipantMap$1<Omit<RTKParticipant$1, 'audioTrack' | 'videoTrack' | 'screenShareTracks'>>>;
3554
- readonly joined: Readonly<RTKParticipantMap$1>;
3555
- readonly active: Readonly<RTKParticipantMap$1>;
3556
- readonly videoSubscribed: Readonly<RTKParticipantMap$1>;
3557
- readonly audioSubscribed: Readonly<RTKParticipantMap$1>;
3558
- readonly pinned: Readonly<RTKParticipantMap$1>;
3559
- readonly all: Readonly<RTKBasicParticipantsMap>;
3560
- get pip(): RTKPip;
3561
- rateLimitConfig: {
3562
- maxInvocations: number;
3563
- period: number;
3272
+ type ScreenshareQualityConstraints = {
3273
+ width?: {
3274
+ max: number;
3564
3275
  };
3565
- get rateLimits(): {
3566
- maxInvocations: number;
3567
- period: number;
3276
+ height?: {
3277
+ max: number;
3568
3278
  };
3569
- updateRateLimits(num: number, period: number): void;
3570
- viewMode: ViewMode;
3571
- currentPage: number;
3572
- lastActiveSpeaker: string;
3573
- selectedPeers: RTKSelectedPeers;
3574
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, roomSocketHandler: RoomSocketHandler);
3575
- setupEvents(): void;
3576
- get count(): number;
3577
- get maxActiveParticipantsCount(): number;
3578
- setMaxActiveParticipantsCount(limit: number): void;
3579
- get pageCount(): number;
3580
- acceptWaitingRoomRequest(id: string): void;
3581
- acceptAllWaitingRoomRequest(userIds: string[]): Promise<void>;
3582
- rejectWaitingRoomRequest(id: string): Promise<void>;
3583
- setViewMode(viewMode: ViewMode): Promise<void>;
3584
- subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
3585
- unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
3586
- getPeerIdsForCurrentPage(): string[];
3587
- setPage(page: number): Promise<void>;
3588
- disableAllAudio(allowUnmute: boolean): Promise<void>;
3589
- disableAllVideo(): Promise<void>;
3590
- disableAudio(participantId: string): Promise<void>;
3591
- disableVideo(participantId: string): Promise<void>;
3592
- kick(participantId: string): Promise<void>;
3593
- kickAll(): Promise<void>;
3594
- broadcastMessage(type: Exclude<string, 'spotlight'>, payload: BroadcastMessagePayload, target?: BroadcastMessageTarget): Promise<void>;
3595
- getAllJoinedPeers(searchQuery: string, limit: number, offset: number): Promise<{
3596
- id: string;
3597
- userId: string;
3598
- name: string;
3599
- displayName: string;
3600
- stageType: StageStatus;
3601
- customParticipantId: string;
3602
- presetId: string;
3603
- picture: string;
3604
- waitlisted: boolean;
3605
- stageStatus: StageStatus;
3606
- metadata: {
3607
- preset_name: string;
3608
- };
3609
- recorderType: string;
3610
- flags: {
3611
- hiddenParticipant: boolean;
3612
- hidden_participant: boolean;
3613
- recorder: boolean;
3614
- };
3615
- }[]>;
3616
- updatePermissions(participantIds: string[], permissions: PresetUpdates): Promise<void>;
3617
- getParticipantsInMeetingPreJoin(): Promise<RoomPeersInfoResponse>;
3279
+ frameRate?: {
3280
+ ideal: number;
3281
+ max: number;
3282
+ };
3283
+ displaySurface?: 'window' | 'monitor' | 'browser';
3284
+ selfBrowserSurface?: 'include' | 'exclude';
3285
+ };
3286
+ interface RTKMediaTrackConstraints extends MediaTrackConstraints {
3287
+ optional?: Array<object>;
3288
+ }
3289
+ interface RTKMediaStreamConstraints extends MediaStreamConstraints {
3290
+ audio?: boolean | RTKMediaTrackConstraints;
3618
3291
  }
3619
-
3620
- interface FetchRequestConfig {
3621
- baseURL?: string;
3622
- url?: string;
3623
- method?: string;
3624
- headers?: Record<string, string>;
3625
- timeout?: number;
3626
- retry?: number;
3627
- retryDelay?: number;
3628
- responseType?: string;
3629
- data?: any;
3630
- params?: Record<string, string>;
3631
- }
3632
- interface FetchResponse<T = any> {
3633
- data: T;
3634
- status: number;
3635
- statusText: string;
3636
- headers: Record<string, string>;
3637
- config: FetchRequestConfig;
3638
- }
3639
- declare class FetchClient {
3640
- defaults: {
3641
- baseURL: string;
3642
- headers: {
3643
- common: Record<string, string>;
3644
- };
3645
- timeout: number;
3646
- retry: number;
3647
- retryDelay: number;
3648
- };
3649
- constructor(options: {
3650
- baseURL: string;
3651
- timeout: number;
3652
- retry: number;
3653
- retryDelay: number;
3654
- responseType?: string;
3655
- });
3656
- request<T = any>(config: FetchRequestConfig): Promise<FetchResponse<T>>;
3657
- get<T = any>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3658
- post<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3659
- put<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
3660
- }
3661
-
3662
- interface ResponseStatus {
3663
- success: boolean;
3664
- message: string;
3665
- }
3666
-
3667
- type MediaPermission$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE' | 'CANCELED';
3668
-
3669
- declare class LocalMediaHandler extends RTKEventEmitter<LocalMediaEvents> {
3670
- audioUpdateInProgress: boolean;
3671
- videoUpdateInProgress: boolean;
3672
- constructor(context: Context<RTKContextState>, mediaConstraints: MediaConstraints, isNonPreferredDevice?: (media: MediaDeviceInfo) => boolean, autoSwitchDevice?: boolean);
3673
- repopulateAvailableDevices(): Promise<boolean>;
3674
- setupStreams({ audio, video, }: {
3675
- audio: boolean;
3676
- video: boolean;
3677
- }): Promise<void>;
3678
- getCurrentDevices(): {
3679
- audio: MediaDeviceInfo;
3680
- video: MediaDeviceInfo;
3681
- speaker: MediaDeviceInfo;
3682
- };
3683
- get permissions(): {
3684
- audio?: MediaPermission$1;
3685
- video?: MediaPermission$1;
3686
- screenshare?: MediaPermission$1;
3687
- };
3688
- getAllDevices(): Promise<InputDeviceInfo[]>;
3689
- getDeviceById(deviceId: string, kind?: 'audioinput' | 'audiooutput' | 'videoinput'): Promise<MediaDeviceInfo>;
3690
- get rawAudioTrack(): MediaStreamTrack;
3691
- get audioTrack(): MediaStreamTrack;
3692
- get audioEnabled(): boolean;
3693
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3694
- disableAudio(): void;
3695
- getAudioDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3696
- setAudioDevice(device: MediaDeviceInfo): Promise<void>;
3697
- setupSpeaker(): Promise<void>;
3698
- setSpeakerDevice(device: MediaDeviceInfo): Promise<void>;
3699
- get rawVideoTrack(): MediaStreamTrack;
3700
- get videoTrack(): MediaStreamTrack;
3701
- get videoEnabled(): boolean;
3702
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3703
- disableVideo(): void;
3704
- getVideoDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3705
- setVideoDevice(device: MediaDeviceInfo): Promise<void>;
3706
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3707
- get screenShareTracks(): {
3708
- audio: MediaStreamTrack;
3709
- video: MediaStreamTrack;
3710
- };
3711
- get screenShareEnabled(): boolean;
3712
- enableScreenShare(): Promise<void>;
3713
- disableScreenShare(): Promise<void>;
3714
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3715
- getSpeakerDevices(devices?: MediaDeviceInfo[]): Promise<MediaDeviceInfo[]>;
3716
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3717
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<ResponseStatus>;
3718
- removeAllAudioMiddlewares(): Promise<ResponseStatus>;
3719
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3720
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<ResponseStatus>;
3721
- removeAllVideoMiddlewares(): Promise<ResponseStatus>;
3722
- setVideoMiddlewareGlobalConfig(config: VideoMiddlewareGlobalConfig): Promise<void>;
3723
- destruct(): void;
3724
- onDeviceChange(changedDevices: {
3725
- added: MediaDeviceInfo[];
3726
- removed: MediaDeviceInfo[];
3727
- devices: MediaDeviceInfo[];
3728
- }, skipDeviceChange: boolean): Promise<void>;
3729
- removeAllTracks(): void;
3730
- removeAudioTrack(): void;
3731
- removeVideoTrack(): void;
3732
- removeDocumentEventListeners(): Promise<void>;
3733
- }
3734
-
3735
- declare enum MediaPermission {
3736
- NOT_REQUESTED = 0,
3737
- ACCEPTED = 1,
3738
- DENIED = 2,
3739
- CANCELED = 3,
3740
- SYSTEM_DENIED = 4,
3741
- COULD_NOT_START = 5,
3742
- NO_DEVICES_AVAILABLE = 6
3743
- }
3744
-
3745
- type AudioMiddleware = (audioContext: AudioContext) => Promise<ScriptProcessorNode | AudioWorkletNode>;
3746
-
3747
- type VideoMiddleware = (() => Promise<(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => Promise<void>>) | ((helpers: {
3748
- canvas: HTMLCanvasElement;
3749
- WorkerTimers: typeof WorkerTimers;
3750
- }) => Promise<void>);
3751
- type VideoMiddlewareGlobalConfig = {
3752
- disablePerFrameCanvasRendering: boolean;
3753
- };
3754
-
3755
- type PresetMediaConstraints = PresetV2CamelCased['config']['media'];
3756
- type AudioQualityConstraints = {
3757
- echoCancellation?: boolean;
3758
- noiseSupression?: boolean;
3759
- autoGainControl?: boolean;
3760
- enableStereo?: boolean;
3761
- enableHighBitrate?: boolean;
3762
- };
3763
- type VideoQualityConstraints = {
3764
- width: {
3765
- ideal: number;
3766
- };
3767
- height: {
3768
- ideal: number;
3769
- };
3770
- frameRate?: {
3771
- ideal: number;
3772
- };
3773
- };
3774
- type ScreenshareQualityConstraints = {
3775
- width?: {
3776
- max: number;
3777
- };
3778
- height?: {
3779
- max: number;
3780
- };
3781
- frameRate?: {
3782
- ideal: number;
3783
- max: number;
3784
- };
3785
- displaySurface?: 'window' | 'monitor' | 'browser';
3786
- selfBrowserSurface?: 'include' | 'exclude';
3787
- };
3788
- interface RTKMediaTrackConstraints extends MediaTrackConstraints {
3789
- optional?: Array<object>;
3790
- }
3791
- interface RTKMediaStreamConstraints extends MediaStreamConstraints {
3792
- audio?: boolean | RTKMediaTrackConstraints;
3793
- }
3794
- type MediaConstraints = {
3795
- audio?: AudioQualityConstraints;
3796
- video?: MediaVideoQualityType | VideoQualityConstraints;
3797
- screenshare?: ScreenshareQualityConstraints;
3798
- };
3292
+ type MediaConstraints = {
3293
+ audio?: AudioQualityConstraints;
3294
+ video?: MediaVideoQualityType | VideoQualityConstraints;
3295
+ screenshare?: ScreenshareQualityConstraints;
3296
+ };
3799
3297
 
3800
3298
  type PresetV2CamelCased = {
3801
3299
  config: {
@@ -4056,294 +3554,618 @@ interface UserDetailsResponseV2 {
4056
3554
  }
4057
3555
  type LeaveRoomState = 'kicked' | 'ended' | 'left' | 'rejected' | 'connected-meeting' | 'disconnected' | 'failed' | 'stageLeft';
4058
3556
 
4059
- type LivestreamState = 'IDLE' | 'STARTING' | 'WAITING_ON_MANUAL_INGESTION' | 'LIVESTREAMING' | 'STOPPING';
4060
- type LivestreamEvents = {
4061
- ['livestreamUpdate']: (state: LivestreamState) => void;
4062
- ['viewerCountUpdate']: (count: number) => void;
4063
- ['*']: (eventName: string, ...args: any[]) => void;
4064
- };
4065
- type StartLivestreamConfig = {
4066
- manualIngestion: boolean;
4067
- };
4068
- interface LivestreamIngestionCredentials {
4069
- ingestionServer: string;
4070
- streamKey: string;
4071
- }
4072
- type LivestreamResponse = {
4073
- status: string;
4074
- playbackUrl: string;
4075
- manualIngest: boolean;
4076
- ingestionCredentials?: LivestreamIngestionCredentials;
4077
- };
4078
- declare class RTKLivestream$1 extends RTKTypedEventEmitter<LivestreamEvents> {
4079
- state: LivestreamState;
4080
- playbackUrl: string | undefined;
4081
- ingestionCredentials: LivestreamIngestionCredentials;
4082
- viewerCount: number;
4083
- constructor(self: RTKSelf);
4084
- setLivestreamState(livestreamState: LivestreamState): void;
4085
- start(livestreamConfig?: StartLivestreamConfig): Promise<void>;
4086
- stop(): Promise<void>;
4087
- }
4088
-
4089
- interface RecordingConfig {
4090
- fileNamePrefix?: string;
4091
- videoConfig?: {
4092
- height?: number;
4093
- width?: number;
4094
- codec?: string;
3557
+ declare class RTKSelfMedia$1 extends RTKTypedEventEmitter<SelfEvents> {
3558
+ get peerId(): string;
3559
+ init(options?: {
3560
+ video?: boolean;
3561
+ audio?: boolean;
3562
+ constraints?: MediaConstraints;
3563
+ }, skipAwaits?: boolean, context?: Context<RTKContextState>): Promise<void>;
3564
+ set context(context: Context<RTKContextState>);
3565
+ get audioTrack(): MediaStreamTrack;
3566
+ get rawAudioTrack(): MediaStreamTrack;
3567
+ get mediaPermissions(): {
3568
+ audio?: MediaPermission$1;
3569
+ video?: MediaPermission$1;
3570
+ screenshare?: MediaPermission$1;
4095
3571
  };
4096
- }
4097
- interface ReactNativeFile {
4098
- uri: string;
4099
- name: string;
4100
- type: string;
4101
- }
4102
- declare class APIClient extends API {
4103
- constructor(context: Context<RTKContextState>, options?: APIOptions);
4104
- getIPDetails(): Promise<any>;
4105
- getICEServers(): Promise<any>;
4106
- getPlugins(): Promise<any[]>;
4107
- getPluginDetails(pluginId: string): Promise<RTKPluginResponse>;
4108
- getPluginConfig(pluginBaseUrl: string): Promise<PluginConfig>;
4109
- authorizePlugin(pluginId: string): Promise<string>;
4110
- getPresignedUrls(filename: string, viewType: string): Promise<{
4111
- getLocation: any;
4112
- putLocation: any;
3572
+ addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3573
+ success: boolean;
3574
+ message: string;
4113
3575
  }>;
4114
- uploadFile(file: File | ReactNativeFile, url: string): Promise<void>;
4115
- startLivestreaming({ manualIngestion, }: StartLivestreamConfig): Promise<LivestreamResponse>;
4116
- stopLivestreaming(): Promise<FetchResponse<any>>;
4117
- getActiveLivestream(): Promise<LivestreamResponse>;
4118
- getUserDetails(): Promise<UserDetailsResponseV2>;
4119
- startRecording(config: RecordingConfig, allowMultiple?: boolean): Promise<string>;
4120
- updateRecording(recordingId: string, action: 'stop' | 'pause' | 'resume'): Promise<FetchResponse<any>>;
4121
- getActiveRecording(): Promise<{
4122
- status: string;
4123
- id: string;
3576
+ removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
3577
+ success: boolean;
3578
+ message: string;
4124
3579
  }>;
4125
- getActiveTranscript(): Promise<{
4126
- transcript: string;
3580
+ removeAllAudioMiddlewares(): Promise<{
3581
+ success: boolean;
3582
+ message: string;
4127
3583
  }>;
4128
- getRoomNodeData(): Promise<RoomDetails>;
3584
+ get videoTrack(): MediaStreamTrack;
3585
+ get rawVideoTrack(): MediaStreamTrack;
3586
+ addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3587
+ success: boolean;
3588
+ message: string;
3589
+ }>;
3590
+ setVideoMiddlewareGlobalConfig(config?: VideoMiddlewareGlobalConfig): Promise<void>;
3591
+ removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
3592
+ success: boolean;
3593
+ message: string;
3594
+ }>;
3595
+ removeAllVideoMiddlewares(): Promise<{
3596
+ success: boolean;
3597
+ message: string;
3598
+ }>;
3599
+ get screenShareTracks(): {
3600
+ audio: MediaStreamTrack;
3601
+ video: MediaStreamTrack;
3602
+ };
3603
+ get audioEnabled(): boolean;
3604
+ get videoEnabled(): boolean;
3605
+ get screenShareEnabled(): boolean;
3606
+ enableAudio(): Promise<void>;
3607
+ enableVideo(): Promise<void>;
3608
+ disableAudio(): Promise<void>;
3609
+ enableScreenShare(): Promise<void>;
3610
+ disableScreenShare(): Promise<void>;
3611
+ disableVideo(): Promise<void>;
3612
+ getCurrentDevices(): {
3613
+ audio: MediaDeviceInfo;
3614
+ video: MediaDeviceInfo;
3615
+ speaker: MediaDeviceInfo;
3616
+ };
3617
+ getAudioDevices(): Promise<MediaDeviceInfo[]>;
3618
+ getVideoDevices(): Promise<MediaDeviceInfo[]>;
3619
+ getSpeakerDevices(): Promise<MediaDeviceInfo[]>;
3620
+ getDeviceById(deviceId: string, kind: 'audio' | 'video' | 'speaker'): Promise<MediaDeviceInfo>;
3621
+ setDevice(device: MediaDeviceInfo): Promise<void>;
4129
3622
  }
4130
3623
 
4131
- declare enum MessageType {
4132
- text = "text",
4133
- image = "image",
4134
- file = "file",
4135
- custom = "custom",
4136
- poll = "poll"
4137
- }
4138
- interface BaseMessage<T extends MessageType> {
4139
- type: T;
4140
- userId: string;
4141
- displayName: string;
4142
- time: Date;
4143
- timeMs?: number;
3624
+ interface UserDetailsResponse {
4144
3625
  id: string;
4145
- isEdited?: boolean;
4146
- read?: boolean;
4147
- pluginId?: string;
4148
- pinned?: boolean;
4149
- targetUserIds?: string[];
4150
- channelId?: string;
4151
- channelIndex?: string;
3626
+ name: string;
3627
+ email: string;
3628
+ picture?: string;
3629
+ loggedIn?: boolean;
3630
+ scope?: string[];
3631
+ clientSpecificId?: string;
3632
+ customParticipantId?: string;
3633
+ organizationId?: string;
4152
3634
  }
4153
- interface TextMessage extends BaseMessage<MessageType.text> {
4154
- message: string;
3635
+ declare class RTKSelf$1 extends RTKSelfMedia$1 {
3636
+ name: string;
3637
+ picture: string;
3638
+ customParticipantId: string;
3639
+ waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
3640
+ role: any;
3641
+ userId: string;
3642
+ organizationId: string;
3643
+ supportsRemoteControl: boolean;
3644
+ device: DeviceConfig;
3645
+ get telemetry(): RTKTelemetry;
3646
+ hidden: boolean;
3647
+ get stageStatus(): StageStatus;
3648
+ get id(): string;
3649
+ get peerId(): string;
3650
+ presetName: string;
3651
+ roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
3652
+ private constructor();
3653
+ static __init__(context: Context<RTKContextState>, details: UserDetailsResponse, permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1, presetName: string, skipAwaits?: boolean): Promise<RTKSelf$1>;
3654
+ cleanupEvents(): void;
3655
+ get permissions(): RTKPermissionsPreset$1;
3656
+ get config(): RTKThemePreset$1;
3657
+ get roomJoined(): boolean;
3658
+ setName(name: string): void;
3659
+ setupTracks(options?: {
3660
+ video?: boolean;
3661
+ audio?: boolean;
3662
+ forceReset?: boolean;
3663
+ }): Promise<void>;
3664
+ destructMediaHandler(): Promise<void>;
3665
+ removeDocumentEventListeners(): Promise<void>;
3666
+ enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
3667
+ enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
3668
+ updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
3669
+ enableScreenShare(): Promise<void>;
3670
+ updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
3671
+ disableAudio(): Promise<void>;
3672
+ disableVideo(): Promise<void>;
3673
+ disableScreenShare(): Promise<void>;
3674
+ getAllDevices(): Promise<InputDeviceInfo[]>;
3675
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
3676
+ get isPinned(): boolean;
3677
+ pin(): Promise<void>;
3678
+ unpin(): Promise<void>;
3679
+ hide(): Promise<void>;
3680
+ show(): void;
3681
+ setDevice(device: MediaDeviceInfo): Promise<void>;
3682
+ cleanUpTracks(): void;
3683
+ playAudio(): Promise<void>;
3684
+ registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
3685
+ deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
4155
3686
  }
4156
- interface CustomMessage extends BaseMessage<MessageType.custom> {
4157
- message?: string;
4158
- html?: string;
4159
- files?: {
4160
- link: string;
4161
- type?: string;
4162
- name?: string;
4163
- size?: number;
4164
- }[];
4165
- images?: {
4166
- link: string;
4167
- type?: string;
4168
- name?: string;
4169
- size?: number;
4170
- }[];
4171
- videos?: {
4172
- link: string;
4173
- type?: string;
4174
- name?: string;
4175
- size?: number;
4176
- }[];
3687
+
3688
+ interface RTKBasicParticipant {
3689
+ userId: string;
3690
+ name?: string;
3691
+ picture?: string;
3692
+ customParticipantId: string;
4177
3693
  }
4178
- interface ImageMessage extends BaseMessage<MessageType.image> {
4179
- link: string;
3694
+ declare class RTKBasicParticipantsMap extends RTKEventEmitter<'participantsUpdate'> {
3695
+ constructor(logger: RTKLogger$1);
3696
+ __set(objId: string, obj: RTKBasicParticipant): Map<string, RTKBasicParticipant>;
3697
+ __clear(): void;
3698
+ get(objId: string): RTKBasicParticipant;
3699
+ toArray(): RTKBasicParticipant[];
4180
3700
  }
4181
- interface FileMessage extends BaseMessage<MessageType.file> {
4182
- name: string;
4183
- size: number;
4184
- link: string;
3701
+
3702
+ type ChatChannelSocketMessage = GetChatChannelResponse;
3703
+ interface ChatChannel {
3704
+ id: string;
3705
+ displayName: string;
3706
+ memberIds: string[];
3707
+ displayPictureUrl?: string;
3708
+ visibility?: string;
3709
+ isDirectMessage?: boolean;
3710
+ latestMessage?: Message;
3711
+ unreadCount: number;
4185
3712
  }
4186
- type Message = TextMessage | ImageMessage | FileMessage | CustomMessage;
4187
- interface TextMessagePayload {
4188
- type: 'text';
4189
- message: string;
4190
- replyTo?: TextMessage;
3713
+ interface UpdateChannelRequestPayload {
3714
+ memberIds?: string[];
3715
+ displayName?: string;
3716
+ displayPictureUrl?: string;
3717
+ visibility?: string;
4191
3718
  }
4192
- interface CustomMessagePayload {
4193
- type: 'custom';
4194
- message?: string;
4195
- html?: string;
4196
- files?: (File | string)[];
4197
- images?: (File | string)[];
4198
- videos?: (File | string)[];
4199
- replyTo?: TextMessage;
3719
+ declare class ChatChannelSocketHandler {
3720
+ get telemetry(): RTKTelemetry;
3721
+ get logger(): RTKLogger$1;
3722
+ constructor(context: Context<RTKContextState>, socketService: SocketService);
3723
+ createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise<ChatChannel>;
3724
+ updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
3725
+ static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
3726
+ getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
3727
+ on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
4200
3728
  }
4201
- interface ImageMessagePayload {
4202
- type: 'image';
4203
- image: File;
3729
+
3730
+ declare enum ChatMessageType {
3731
+ TEXT = 0,
3732
+ IMAGE = 1,
3733
+ FILE = 2,
3734
+ CUSTOM = 3
4204
3735
  }
4205
- interface FileMessagePayload {
4206
- type: 'file';
4207
- file: File;
3736
+ type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
3737
+ interface SearchFilters {
3738
+ channelId?: string;
3739
+ timestamp?: number;
3740
+ size?: number;
3741
+ reversed?: boolean;
4208
3742
  }
4209
- type MessagePayload = TextMessagePayload | ImageMessagePayload | FileMessagePayload | CustomMessagePayload;
4210
- interface ChatUpdateParams {
4211
- action: 'add' | 'edit' | 'delete';
4212
- message: Message | {
3743
+ declare class ChatSocketHandler {
3744
+ get telemetry(): RTKTelemetry;
3745
+ get logger(): RTKLogger$1;
3746
+ constructor(context: Context<RTKContextState>, socketService: SocketService);
3747
+ getChatMessages(): Promise<{
4213
3748
  id: string;
4214
- channelId: string;
4215
- };
4216
- messages: Message[];
3749
+ payload: Uint8Array;
3750
+ }>;
3751
+ getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<GetPaginatedChatMessageRoomResponse>;
3752
+ sendMessageToRoom(message: string, messageType: ChatMessageType): void;
3753
+ sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
3754
+ sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
3755
+ sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
3756
+ editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise<ChatMessage>;
3757
+ deleteMessage(chatId: string, channelId?: string): Promise<{
3758
+ channelId?: string;
3759
+ id: string;
3760
+ }>;
3761
+ searchMessages(query: string, filters: SearchFilters): Promise<ChatMessage[]>;
3762
+ getAllChannels(): Promise<ChatChannel[]>;
3763
+ markLastReadMessage(channelId: string, message: Message): Promise<string>;
3764
+ setPinState(message: Message, pin: boolean): Promise<PinChatMessageResponse>;
3765
+ on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
4217
3766
  }
4218
- type ChatEvents = {
4219
- ['chatUpdate']: (payload: ChatUpdateParams) => void;
4220
- ['pinMessage']: (payload: Omit<ChatUpdateParams, 'action'>) => void;
4221
- ['unpinMessage']: (payload: Omit<ChatUpdateParams, 'action'>) => void;
4222
- ['channelCreate']: (channel: ChatChannel) => void;
4223
- ['channelMessageUpdate']: (channel: ChatChannel) => void;
4224
- ['channelUpdate']: (channel?: ChatChannel) => void;
4225
- ['*']: (event: string, ...args: any[]) => void;
4226
- };
4227
- declare class RTKChat$1 extends RTKTypedEventEmitter<ChatEvents> {
4228
- messages: Message[];
4229
- channels: ChatChannel[];
4230
- maxTextLimit: number;
4231
- setMaxTextLimit(limit: number): void;
4232
- constructor(context: Context<RTKContextState>, chatSocketHandler: ChatSocketHandler, chatChannelSocketHandler: ChatChannelSocketHandler, self: RTKSelf$1, participants: RTKParticipants$1);
4233
- get rateLimits(): {
4234
- maxInvocations: number;
4235
- period: number;
4236
- };
4237
- updateRateLimits(num: number, period: number): void;
4238
- sendTextMessage(message: string, peerIds?: string[]): Promise<void>;
4239
- sendCustomMessage(message: CustomMessagePayload, peerIds?: string[]): Promise<void>;
4240
- sendImageMessage(image: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4241
- sendFileMessage(file: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4242
- sendMessage(message: MessagePayload, participantIds?: string[]): Promise<void>;
4243
- editTextMessage(messageId: string, message: string, channelId?: string): Promise<void>;
4244
- editImageMessage(messageId: string, image: File | ReactNativeFile, channelId?: string): Promise<void>;
4245
- editFileMessage(messageId: string, file: File | ReactNativeFile, channelId?: string): Promise<void>;
4246
- editMessage(messageId: string, message: MessagePayload, channelId?: string): Promise<void>;
4247
- deleteMessage(messageId: string, channelId?: string): Promise<void>;
4248
- getMessagesByUser(userId: string): Message[];
4249
- getMessagesByType(type: keyof typeof MessageType): Message[];
4250
- pin(id: string): Promise<void>;
4251
- unpin(id: string): Promise<void>;
4252
- getMessages(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<{
4253
- messages: Message[];
4254
- next: boolean;
4255
- }>;
4256
- createChannel(channelName: string, memberIds: string[], options?: {
4257
- displayPictureUrl?: string;
4258
- visibility?: string;
4259
- isDirectMessage?: boolean;
4260
- }): Promise<ChatChannel>;
4261
- updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
4262
- sendMessageToChannel(message: MessagePayload, channelId: string, options?: {
4263
- replyTo?: Message;
4264
- }): Promise<void>;
4265
- getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
4266
- searchMessages(query: string, filters?: SearchFilters): Promise<Message[]>;
4267
- markLastReadMessage(channelId: string, message: Message): Promise<void>;
4268
- get pinned(): Message[];
3767
+
3768
+ declare class RTKSelectedPeers {
3769
+ constructor();
3770
+ add(peerId: string, priority: number, context: Context<RTKContextState>): number;
3771
+ delete(peerId: string, context: Context<RTKContextState>): void;
3772
+ index(peerId: string): number;
3773
+ get peers(): string[];
3774
+ get compulsoryPeers(): string[];
3775
+ get activeSpeakerPeers(): string[];
4269
3776
  }
4270
3777
 
4271
- declare class PollSocketHandler {
4272
- constructor(socketService: SocketService);
4273
- getPolls(): Promise<{
4274
- id: string;
4275
- payload: Uint8Array;
4276
- }>;
4277
- createPoll(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): boolean;
4278
- votePoll(id: string, index: number): boolean;
4279
- on(event: number, handler: (message: UpdatePollResponse) => void): void;
4280
- removeListeners(event: number): void;
3778
+ type PipEvents = {
3779
+ ['cameraToggled']: () => void;
3780
+ ['micToggled']: () => void;
3781
+ ['hangup']: () => void;
3782
+ ['pipStarted']: () => void;
3783
+ ['pipEnded']: () => void;
3784
+ ['*']: (eventName: string, ...args: any[]) => void;
3785
+ };
3786
+ declare class RTKPip extends RTKTypedEventEmitter<PipEvents> {
3787
+ private constructor();
3788
+ static _init(context: Context<RTKContextState>, self: RTKSelf$1): Promise<RTKPip>;
3789
+ overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise<void>;
3790
+ isSupported(): boolean;
3791
+ get isActive(): boolean;
3792
+ init({ height, width }?: {
3793
+ height?: number;
3794
+ width?: number;
3795
+ }): void;
3796
+ enableSource(source: string): void;
3797
+ disableSource(source: string): void;
3798
+ addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
3799
+ updateSource(id: string, source: any): void;
3800
+ removeSource(id: string): void;
3801
+ removePinnedSource(): void;
3802
+ removeAllSources(): void;
3803
+ enable(): void;
3804
+ disable: (partial?: boolean) => void;
4281
3805
  }
4282
3806
 
4283
- interface PollOption {
4284
- text: string;
4285
- votes: {
4286
- id: string;
4287
- name: string;
4288
- }[];
4289
- count: number;
3807
+ type TranscriptionData = {
3808
+ id: string;
3809
+ name: string;
3810
+ peerId: string;
3811
+ userId: string;
3812
+ customParticipantId: string;
3813
+ transcript: string;
3814
+ isPartialTranscript: boolean;
3815
+ date: Date;
3816
+ };
3817
+ type AiEvents = {
3818
+ ['transcript']: (t: TranscriptionData) => void;
3819
+ ['*']: (event: string, ...args: any[]) => void;
3820
+ };
3821
+ declare class RTKAi extends RTKTypedEventEmitter<AiEvents> {
3822
+ transcripts: TranscriptionData[];
3823
+ get telemetry(): RTKTelemetry;
3824
+ constructor(context: Context<RTKContextState>);
3825
+ static init(context: Context<RTKContextState>, transcriptionEnabled: boolean): Promise<RTKAi>;
3826
+ static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
3827
+ static parseTranscripts(transcriptData: string): TranscriptionData[];
3828
+ getActiveTranscript(): Promise<void>;
3829
+ onTranscript(transcript: TranscriptionData): Promise<void>;
4290
3830
  }
4291
- interface Poll {
3831
+
3832
+ type ActiveTabType = 'screenshare' | 'plugin';
3833
+ interface ActiveTab {
3834
+ type: ActiveTabType;
4292
3835
  id: string;
4293
- question: string;
4294
- options: PollOption[];
4295
- anonymous: boolean;
4296
- hideVotes: boolean;
4297
- createdBy: string;
4298
- createdByUserId: string;
4299
- voted: string[];
4300
3836
  }
4301
- type PollsEvents = {
4302
- ['pollsUpdate']: (payload: {
4303
- polls: Poll[];
4304
- newPoll: boolean;
3837
+ declare enum TabChangeSource {
3838
+ User = 0,
3839
+ Meeting = 1
3840
+ }
3841
+ interface MediaConnectionUpdate {
3842
+ transport: 'consuming' | 'producing';
3843
+ state: `${TransportState}`;
3844
+ reconnected: boolean;
3845
+ }
3846
+ type MetaEvents = {
3847
+ ['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
3848
+ ['socketConnectionUpdate']: (state: SocketConnectionState) => void;
3849
+ ['poorConnection']: (payload: {
3850
+ score: number;
4305
3851
  }) => void;
4306
- ['*']: (eventName: string, ...args: any[]) => void;
3852
+ ['meetingStartTimeUpdate']: (payload: {
3853
+ meetingStartedTimestamp: Date;
3854
+ }) => void;
3855
+ ['transcript']: (t: TranscriptionData) => void;
3856
+ ['activeTabUpdate']: (tab: ActiveTab) => void;
3857
+ ['selfTabUpdate']: (tab: ActiveTab) => void;
3858
+ ['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
3859
+ ['*']: (event: string, ...args: any[]) => void;
4307
3860
  };
4308
- declare class RTKPolls$1 extends RTKTypedEventEmitter<PollsEvents> {
4309
- items: Poll[];
4310
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, pollSocketHandler: PollSocketHandler);
4311
- create(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): Promise<void>;
4312
- vote(id: string, index: number): Promise<void>;
3861
+ declare class RTKMeta$1 extends RTKTypedEventEmitter<MetaEvents> {
3862
+ selfActiveTab: ActiveTab | undefined;
3863
+ get socketState(): SocketConnectionState;
3864
+ get mediaState(): MediaConnectionState;
3865
+ broadcastTabChanges: boolean;
3866
+ viewType: string;
3867
+ meetingStartedTimestamp: Date;
3868
+ meetingTitle: string;
3869
+ sessionId: string;
3870
+ constructor(context: Context<RTKContextState>, self: RTKSelf, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
3871
+ get meetingId(): string;
3872
+ setBroadcastTabChanges(broadcastTabChanges: boolean): void;
3873
+ setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
4313
3874
  }
4314
3875
 
4315
- type PluginMapEvents = {
4316
- ['pluginAdded']: (plugin: RTKPlugin$1) => void;
4317
- ['pluginDeleted']: (plugin: RTKPlugin$1) => void;
3876
+ interface RTKMapEvents<T extends EventMap$1> {
3877
+ onAddEvent?: keyof T;
3878
+ onDeleteEvent?: keyof T;
3879
+ onClearEvent?: keyof T;
3880
+ }
3881
+ type ModifyPrependObject<T extends EventMap$1, U> = {
3882
+ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>;
3883
+ } & {
3884
+ ['*']: (event: String, ...args: any[]) => void;
4318
3885
  };
4319
- type PluginEvents$1 = {
4320
- ['stateUpdate']: (payload: {
4321
- active: boolean;
4322
- pluginId: string;
4323
- bind?: (...args: any[]) => void;
4324
- views: any;
3886
+ declare class RTKMap<T extends (EventMap$1 & WildCardEvent<T>), U extends {
3887
+ id: string;
3888
+ } & RTKTypedEventEmitter<T>, V extends EventMap$1> extends Map<string, U> {
3889
+ readonly onAddEvent: keyof V;
3890
+ readonly onDeleteEvent: keyof V;
3891
+ readonly onClearEvent: keyof V;
3892
+ constructor(options: RTKMapEvents<V>, logger?: RTKLogger$1);
3893
+ emit<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject<T, U>)[E]>): boolean;
3894
+ on<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3895
+ "*": (event: String, ...args: any[]) => void;
3896
+ } & V>;
3897
+ addListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3898
+ "*": (event: String, ...args: any[]) => void;
3899
+ } & V>;
3900
+ off<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3901
+ "*": (event: String, ...args: any[]) => void;
3902
+ } & V>;
3903
+ once<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3904
+ "*": (event: String, ...args: any[]) => void;
3905
+ } & V>;
3906
+ prependListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3907
+ "*": (event: String, ...args: any[]) => void;
3908
+ } & V>;
3909
+ prependOnceListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3910
+ "*": (event: String, ...args: any[]) => void;
3911
+ } & V>;
3912
+ removeListener<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E, callback: (ModifyPrependObject<T, U> & V)[E]): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3913
+ "*": (event: String, ...args: any[]) => void;
3914
+ } & V>;
3915
+ removeAllListeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event?: E): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3916
+ "*": (event: String, ...args: any[]) => void;
3917
+ } & V>;
3918
+ listeners<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): Function[];
3919
+ listenerCount<E extends StringKeyOf<ModifyPrependObject<T, U> & V>>(event: E): number;
3920
+ getMaxListeners(): number;
3921
+ setMaxListeners(n: number): RTKTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters<T[K]>) => ReturnType<T[K]>; } & {
3922
+ "*": (event: String, ...args: any[]) => void;
3923
+ } & V>;
3924
+ eventNames(): (string | symbol)[];
3925
+ add(obj: U, emitEvent?: boolean): this;
3926
+ set(objId: string, obj: U, emitEvent?: boolean): this;
3927
+ delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3928
+ clear(emitEvent?: boolean, removeListeners?: boolean): void;
3929
+ toArray(): U[];
3930
+ }
3931
+
3932
+ type ParticipantMapEvents = {
3933
+ ['participantJoined']: (payload: RTKParticipant$1) => void;
3934
+ ['participantLeft']: (payload: RTKParticipant$1) => void;
3935
+ ['participantsCleared']: () => void;
3936
+ ['participantsUpdate']: () => void;
3937
+ ['kicked']: (payload: {
3938
+ id: string;
4325
3939
  }) => void;
4326
- ['ready']: () => void;
4327
- ['closed']: () => void;
4328
- ['toggleViewMode']: (...args: any[]) => void;
4329
- ['enabled']: () => void;
4330
- ['*']: (eventName: string, ...args: any[]) => void;
4331
3940
  };
4332
- declare class RTKPluginMap$1<T extends RTKPlugin$1 = RTKPlugin$1> extends RTKMap<PluginEvents$1, T, PluginMapEvents> {
4333
- constructor();
4334
- add(plugin: T, emitEvent?: boolean): this;
4335
- delete(pluginId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
3941
+ declare class RTKParticipantMap$1<T extends Pick<RTKParticipant$1, 'id' | keyof RTKTypedEventEmitter<ParticipantEvents>> = RTKParticipant$1> extends RTKMap<ParticipantEvents, T, ParticipantMapEvents> {
3942
+ constructor(logger: RTKLogger, options?: RTKMapEvents<ParticipantMapEvents>);
3943
+ add(participant: T, emitEvent?: boolean): this;
3944
+ clear(emitEvent?: boolean, removeListeners?: boolean): void;
3945
+ delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
4336
3946
  }
4337
3947
 
4338
- declare class RTKPlugins$1 {
4339
- readonly all: RTKPluginMap$1;
4340
- readonly active: RTKPluginMap$1;
4341
- constructor();
4342
- }
3948
+ declare const modes: readonly ["ACTIVE_GRID", "PAGINATED", "MANUAL"];
3949
+ type ViewMode = (typeof modes)[number];
3950
+ interface BroadcastMessagePayload {
3951
+ [key: string]: boolean | number | string | Date | ActiveTab;
3952
+ }
3953
+ interface PeerProducerConfig {
3954
+ audio: boolean;
3955
+ video: boolean;
3956
+ screenshareAudio: boolean;
3957
+ screenshareVideo: boolean;
3958
+ }
3959
+ type BroadcastMessageTarget = {
3960
+ participantIds: string[];
3961
+ } | {
3962
+ presetNames: string[];
3963
+ } | {
3964
+ meetingIds: string[];
3965
+ };
3966
+ type JoinedPeer = {
3967
+ id: string;
3968
+ userId: string;
3969
+ name: string;
3970
+ stageType?: StageStatus;
3971
+ customParticipantId?: string;
3972
+ presetId?: string;
3973
+ picture?: string;
3974
+ waitlisted: boolean;
3975
+ recorderType?: string;
3976
+ stageStatus?: StageStatus;
3977
+ metadata?: {
3978
+ preset_name?: string;
3979
+ };
3980
+ flags?: {
3981
+ hiddenParticipant?: boolean;
3982
+ recorder?: boolean;
3983
+ };
3984
+ };
3985
+ type ParticipantsEvents = {
3986
+ ['viewModeChanged']: (payload: {
3987
+ viewMode: string;
3988
+ currentPage: number;
3989
+ pageCount: number;
3990
+ }) => void;
3991
+ ['activeSpeaker']: (payload: {
3992
+ peerId: string;
3993
+ volume: number;
3994
+ }) => void;
3995
+ ['broadcastedMessage']: (payload: {
3996
+ type: string;
3997
+ payload: BroadcastMessagePayload;
3998
+ timestamp: number;
3999
+ }) => void;
4000
+ ['poorConnection']: (payload: {
4001
+ participantId: string;
4002
+ score: number;
4003
+ kind: string;
4004
+ }) => void;
4005
+ ['pageChanged']: (payload: {
4006
+ viewMode: string;
4007
+ currentPage: number;
4008
+ pageCount: number;
4009
+ }) => void;
4010
+ ['mediaScoreUpdate']: (payload: {
4011
+ kind: string;
4012
+ isScreenshare: boolean;
4013
+ score: number;
4014
+ participantId: string;
4015
+ scoreStats: ConsumerScoreStats;
4016
+ }) => void;
4017
+ ['media_decode_error']: (payload: {
4018
+ reason: string;
4019
+ code: '1702' | '1703';
4020
+ }) => void;
4021
+ ['*']: (event: string, ...args: any[]) => void;
4022
+ };
4023
+ declare class RTKParticipants$1 extends RTKTypedEventEmitter<ParticipantsEvents> {
4024
+ readonly waitlisted: Readonly<RTKParticipantMap$1<Omit<RTKParticipant$1, 'audioTrack' | 'videoTrack' | 'screenShareTracks'>>>;
4025
+ readonly joined: Readonly<RTKParticipantMap$1>;
4026
+ readonly active: Readonly<RTKParticipantMap$1>;
4027
+ readonly videoSubscribed: Readonly<RTKParticipantMap$1>;
4028
+ readonly audioSubscribed: Readonly<RTKParticipantMap$1>;
4029
+ readonly pinned: Readonly<RTKParticipantMap$1>;
4030
+ readonly all: Readonly<RTKBasicParticipantsMap>;
4031
+ get pip(): RTKPip;
4032
+ rateLimitConfig: {
4033
+ maxInvocations: number;
4034
+ period: number;
4035
+ };
4036
+ get rateLimits(): {
4037
+ maxInvocations: number;
4038
+ period: number;
4039
+ };
4040
+ updateRateLimits(num: number, period: number): void;
4041
+ get telemetry(): RTKTelemetry;
4042
+ viewMode: ViewMode;
4043
+ currentPage: number;
4044
+ lastActiveSpeaker: string;
4045
+ selectedPeers: RTKSelectedPeers;
4046
+ constructor(context: Context<RTKContextState>, self: RTKSelf$1, roomSocketHandler: RoomSocketHandler);
4047
+ setupEvents(): void;
4048
+ get count(): number;
4049
+ get maxActiveParticipantsCount(): number;
4050
+ setMaxActiveParticipantsCount(limit: number): void;
4051
+ get pageCount(): number;
4052
+ acceptWaitingRoomRequest(id: string): void;
4053
+ acceptAllWaitingRoomRequest(userIds: string[]): Promise<void>;
4054
+ rejectWaitingRoomRequest(id: string): Promise<void>;
4055
+ setViewMode(viewMode: ViewMode): Promise<void>;
4056
+ subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4057
+ unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise<void>;
4058
+ getPeerIdsForCurrentPage(): string[];
4059
+ setPage(page: number): Promise<void>;
4060
+ disableAllAudio(allowUnmute: boolean): Promise<void>;
4061
+ disableAllVideo(): Promise<void>;
4062
+ disableAudio(participantId: string): Promise<void>;
4063
+ disableVideo(participantId: string): Promise<void>;
4064
+ kick(participantId: string): Promise<void>;
4065
+ kickAll(): Promise<void>;
4066
+ broadcastMessage(type: Exclude<string, 'spotlight'>, payload: BroadcastMessagePayload, target?: BroadcastMessageTarget): Promise<void>;
4067
+ getAllJoinedPeers(searchQuery: string, limit: number, offset: number): Promise<{
4068
+ id: string;
4069
+ userId: string;
4070
+ name: string;
4071
+ displayName: string;
4072
+ stageType: StageStatus;
4073
+ customParticipantId: string;
4074
+ presetId: string;
4075
+ picture: string;
4076
+ waitlisted: boolean;
4077
+ stageStatus: StageStatus;
4078
+ metadata: {
4079
+ preset_name: string;
4080
+ };
4081
+ recorderType: string;
4082
+ flags: {
4083
+ hiddenParticipant: boolean;
4084
+ hidden_participant: boolean;
4085
+ recorder: boolean;
4086
+ };
4087
+ }[]>;
4088
+ updatePermissions(participantIds: string[], permissions: PresetUpdates): Promise<void>;
4089
+ getParticipantsInMeetingPreJoin(): Promise<RoomPeersInfoResponse>;
4090
+ }
4091
+
4092
+ interface FetchRequestConfig {
4093
+ baseURL?: string;
4094
+ url?: string;
4095
+ method?: string;
4096
+ headers?: Record<string, string>;
4097
+ timeout?: number;
4098
+ retry?: number;
4099
+ retryDelay?: number;
4100
+ responseType?: string;
4101
+ data?: any;
4102
+ params?: Record<string, string>;
4103
+ }
4104
+ interface FetchResponse<T = any> {
4105
+ data: T;
4106
+ status: number;
4107
+ statusText: string;
4108
+ headers: Record<string, string>;
4109
+ config: FetchRequestConfig;
4110
+ }
4111
+ declare class FetchClient {
4112
+ defaults: {
4113
+ baseURL: string;
4114
+ headers: {
4115
+ common: Record<string, string>;
4116
+ };
4117
+ timeout: number;
4118
+ retry: number;
4119
+ retryDelay: number;
4120
+ };
4121
+ constructor(options: {
4122
+ baseURL: string;
4123
+ timeout: number;
4124
+ retry: number;
4125
+ retryDelay: number;
4126
+ responseType?: string;
4127
+ });
4128
+ request<T = any>(config: FetchRequestConfig): Promise<FetchResponse<T>>;
4129
+ get<T = any>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4130
+ post<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4131
+ put<T = any>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
4132
+ }
4133
+
4134
+ type LivestreamState = 'IDLE' | 'STARTING' | 'WAITING_ON_MANUAL_INGESTION' | 'LIVESTREAMING' | 'STOPPING';
4135
+ type LivestreamEvents = {
4136
+ ['livestreamUpdate']: (state: LivestreamState) => void;
4137
+ ['viewerCountUpdate']: (count: number) => void;
4138
+ ['*']: (eventName: string, ...args: any[]) => void;
4139
+ };
4140
+ type StartLivestreamConfig = {
4141
+ manualIngestion: boolean;
4142
+ };
4143
+ interface LivestreamIngestionCredentials {
4144
+ ingestionServer: string;
4145
+ streamKey: string;
4146
+ }
4147
+ type LivestreamResponse = {
4148
+ status: string;
4149
+ playbackUrl: string;
4150
+ manualIngest: boolean;
4151
+ ingestionCredentials?: LivestreamIngestionCredentials;
4152
+ };
4153
+ declare class RTKLivestream$1 extends RTKTypedEventEmitter<LivestreamEvents> {
4154
+ state: LivestreamState;
4155
+ playbackUrl: string | undefined;
4156
+ ingestionCredentials: LivestreamIngestionCredentials;
4157
+ viewerCount: number;
4158
+ get telemetry(): RTKTelemetry;
4159
+ constructor(context: Context<RTKContextState>, self: RTKSelf);
4160
+ setLivestreamState(livestreamState: LivestreamState): void;
4161
+ start(livestreamConfig?: StartLivestreamConfig): Promise<void>;
4162
+ stop(): Promise<void>;
4163
+ }
4343
4164
 
4344
4165
  type PluginSocketMessage = DisablePluginResponse | EnablePluginResponse | PluginEventResponse | PluginStoreResponse | SendChatMessageToPeersResponse | SendChatMessageToRoomResponse;
4345
4166
  declare class PluginSocketHandler {
4346
- constructor(socketService: SocketService);
4167
+ constructor(context: Context<RTKContextState>, socketService: SocketService);
4168
+ get logger(): RTKLogger$1;
4347
4169
  addPlugin(pluginId: string, staggered: boolean): void;
4348
4170
  removePlugin(pluginId: string): void;
4349
4171
  getActivePlugins(): Promise<EnablePluginsResponse>;
@@ -4369,484 +4191,474 @@ declare class PluginSocketHandler {
4369
4191
  on(event: number, handler: (socketMessage: PluginSocketMessage, messageId?: string) => void): void;
4370
4192
  }
4371
4193
 
4372
- declare class RTKSelfMedia extends RTKTypedEventEmitter<SelfEvents> {
4373
- init(options?: {
4374
- video?: boolean;
4375
- audio?: boolean;
4376
- constraints?: MediaConstraints;
4377
- }, skipAwaits?: boolean, context?: Context<RTKContextState>): Promise<void>;
4378
- get audioTrack(): MediaStreamTrack;
4379
- get rawAudioTrack(): MediaStreamTrack;
4380
- get mediaPermissions(): {
4381
- audio?: MediaPermission$1;
4382
- video?: MediaPermission$1;
4383
- screenshare?: MediaPermission$1;
4194
+ interface RTKPluginResponse {
4195
+ baseURL: string;
4196
+ createdAt: string;
4197
+ description: string;
4198
+ id: string;
4199
+ name: string;
4200
+ organizationId: string;
4201
+ picture: string;
4202
+ private: boolean;
4203
+ published: boolean;
4204
+ staggered: boolean;
4205
+ tags: string[];
4206
+ type: string;
4207
+ updatedAt: string;
4208
+ }
4209
+ interface PluginViews {
4210
+ [viewId: string]: {
4211
+ url: string;
4212
+ suggestedPosition: string;
4384
4213
  };
4385
- addAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
4386
- success: boolean;
4387
- message: string;
4388
- }>;
4389
- removeAudioMiddleware(audioMiddleware: AudioMiddleware): Promise<{
4390
- success: boolean;
4391
- message: string;
4392
- }>;
4393
- removeAllAudioMiddlewares(): Promise<{
4394
- success: boolean;
4395
- message: string;
4396
- }>;
4397
- get videoTrack(): MediaStreamTrack;
4398
- get rawVideoTrack(): MediaStreamTrack;
4399
- addVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
4400
- success: boolean;
4401
- message: string;
4402
- }>;
4403
- setVideoMiddlewareGlobalConfig(config?: VideoMiddlewareGlobalConfig): Promise<void>;
4404
- removeVideoMiddleware(videoMiddleware: VideoMiddleware): Promise<{
4405
- success: boolean;
4406
- message: string;
4407
- }>;
4408
- removeAllVideoMiddlewares(): Promise<{
4409
- success: boolean;
4410
- message: string;
4411
- }>;
4412
- get screenShareTracks(): {
4413
- audio: MediaStreamTrack;
4414
- video: MediaStreamTrack;
4214
+ }
4215
+ interface PluginConfig {
4216
+ name: string;
4217
+ pluginId: string;
4218
+ version: string;
4219
+ description: string;
4220
+ author?: string;
4221
+ repository?: string;
4222
+ tags?: string[];
4223
+ picture?: string;
4224
+ url?: string;
4225
+ files: {
4226
+ include: string[];
4227
+ exclude?: string[];
4415
4228
  };
4416
- get audioEnabled(): boolean;
4417
- get videoEnabled(): boolean;
4418
- get screenShareEnabled(): boolean;
4419
- enableAudio(): Promise<void>;
4420
- enableVideo(): Promise<void>;
4421
- disableAudio(): Promise<void>;
4422
- enableScreenShare(): Promise<void>;
4423
- disableScreenShare(): Promise<void>;
4424
- disableVideo(): Promise<void>;
4425
- getCurrentDevices(): {
4426
- audio: MediaDeviceInfo;
4427
- video: MediaDeviceInfo;
4428
- speaker: MediaDeviceInfo;
4229
+ views?: PluginViews;
4230
+ contentScript?: string;
4231
+ permissions?: {
4232
+ [key: string]: {
4233
+ default: boolean;
4234
+ description: string;
4235
+ };
4236
+ };
4237
+ config?: {
4238
+ [key: string]: string;
4429
4239
  };
4430
- getAudioDevices(): Promise<MediaDeviceInfo[]>;
4431
- getVideoDevices(): Promise<MediaDeviceInfo[]>;
4432
- getSpeakerDevices(): Promise<MediaDeviceInfo[]>;
4433
- getDeviceById(deviceId: string, kind: 'audio' | 'video' | 'speaker'): Promise<MediaDeviceInfo>;
4434
- setDevice(device: MediaDeviceInfo): Promise<void>;
4435
4240
  }
4436
-
4437
- type RecordingState = 'IDLE' | 'STARTING' | 'RECORDING' | 'PAUSED' | 'STOPPING';
4438
- type RecordingType = 'BROWSER' | 'TRACK' | 'COMPOSITE';
4439
- type RecordingInfo = {
4440
- state: RecordingState;
4441
- id: string;
4442
- type: RecordingType;
4241
+ interface PluginIframeMessage {
4242
+ type: number;
4243
+ uuid: string;
4244
+ payload?: any;
4245
+ }
4246
+ interface SendDataOptions {
4247
+ eventName: string;
4248
+ data: any;
4249
+ }
4250
+ interface ReactNativeWebViewEvent {
4251
+ nativeEvent: {
4252
+ data: string;
4253
+ };
4254
+ }
4255
+ interface ReactNativeWebView {
4256
+ src: string;
4257
+ allow: string;
4258
+ title: string;
4259
+ props: {
4260
+ onMessage: (event: ReactNativeWebViewEvent) => void;
4261
+ };
4262
+ postMessage: (message: string) => void;
4263
+ }
4264
+ declare const PluginEventKeys: {
4265
+ stateUpdate: string;
4266
+ ready: string;
4267
+ closed: string;
4268
+ toggleViewMode: string;
4269
+ enabled: string;
4270
+ '* ': string;
4443
4271
  };
4444
- type RecordingEvents = {
4445
- ['recordingUpdate']: (state: RecordingState) => void;
4446
- ['*']: (eventName: string, ...args: any[]) => void;
4272
+ type _string = string & {
4273
+ _?: any;
4447
4274
  };
4448
- declare class RTKRecording$1 extends RTKTypedEventEmitter<RecordingEvents> {
4449
- recordingPeerIds: string[];
4450
- get recordingState(): RecordingState;
4451
- recordings: RecordingInfo[];
4452
- constructor(context: Context<RTKContextState>, self: RTKSelf);
4453
- updateRecordings(recordings: RecordingInfo[]): void;
4454
- start(opts?: {
4455
- allowMultiple: boolean;
4456
- }): Promise<void>;
4457
- stop(recordingId?: string): Promise<void>;
4458
- pause(recordingId?: string): Promise<void>;
4459
- resume(recordingId?: string): Promise<void>;
4275
+ type PluginEvents$1 = keyof typeof PluginEventKeys | _string;
4276
+ declare class RTKPlugin$1 extends RTKEventEmitter<PluginEvents$1> {
4277
+ readonly baseURL: string;
4278
+ readonly createdAt: Date;
4279
+ readonly description: string;
4280
+ readonly id: string;
4281
+ readonly name: string;
4282
+ readonly organizationId: string;
4283
+ readonly picture: string;
4284
+ readonly private: boolean;
4285
+ readonly published: boolean;
4286
+ readonly staggered: boolean;
4287
+ readonly tags: string[];
4288
+ readonly type: string;
4289
+ readonly updatedAt: Date;
4290
+ config?: PluginConfig;
4291
+ active: boolean;
4292
+ iframes: Map<string, {
4293
+ iframe: HTMLIFrameElement | ReactNativeWebView;
4294
+ listener?: (message: MessageEvent) => void;
4295
+ }>;
4296
+ enabledBy: string;
4297
+ get telemetry(): RTKTelemetry;
4298
+ 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);
4299
+ sendIframeEvent(message: PluginIframeMessage): void;
4300
+ sendData(payload: SendDataOptions): void;
4301
+ removePluginView(viewId?: string): void;
4302
+ addPluginView(iframe: HTMLIFrameElement | ReactNativeWebView, viewId?: string): void;
4303
+ activateForSelf(): Promise<void>;
4304
+ deactivateForSelf(): void;
4305
+ enable(): Promise<void>;
4306
+ disable(): void;
4307
+ activate(): Promise<void>;
4308
+ deactivate(): Promise<void>;
4460
4309
  }
4461
4310
 
4462
- declare class BrowserDetection {
4463
- _bowser: any;
4464
- _name: any;
4465
- _version: any;
4466
- init(browserInfo?: any): void;
4467
- getName(): any;
4468
- isChrome(): boolean;
4469
- isOpera(): boolean;
4470
- isFirefox(): boolean;
4471
- isIExplorer(): boolean;
4472
- isSafari(): boolean;
4473
- isNWJS(): boolean;
4474
- isElectron(): boolean;
4475
- isReactNative(): boolean;
4476
- getVersion(): any;
4477
- isMobile(): boolean;
4478
- getDeviceInfo: () => {
4479
- isMobile: boolean;
4480
- browserName: any;
4481
- osName: any;
4482
- browserVersion: any;
4483
- osVersionName: any;
4484
- engineName: any;
4311
+ interface RecordingConfig {
4312
+ fileNamePrefix?: string;
4313
+ videoConfig?: {
4314
+ height?: number;
4315
+ width?: number;
4316
+ codec?: string;
4485
4317
  };
4486
- _checkCondition(checkTree: any): any;
4487
- isVersionGreaterThan(version: any): any;
4488
- isVersionLessThan(version: any): any;
4489
- isVersionEqualTo(version: any): any;
4490
4318
  }
4491
-
4492
- declare class BrowserCapabilities extends BrowserDetection {
4493
- doesVideoMuteByStreamRemove(): boolean;
4494
- supportsP2P(): boolean;
4495
- isChromiumBased(): boolean;
4496
- isWebKitBased(): boolean;
4497
- isSupported(): boolean;
4498
- isUserInteractionRequiredForUnmute(): any;
4499
- supportsVideoMuteOnConnInterrupted(): boolean;
4500
- supportsBandwidthStatistics(): boolean;
4501
- supportsCodecPreferences(): boolean;
4502
- supportsDeviceChangeEvent(): boolean;
4503
- supportsLocalCandidateRttStatistics(): boolean;
4504
- supportsPerformanceObserver(): boolean;
4505
- supportsReceiverStats(): boolean;
4506
- supportsRTTStatistics(): boolean;
4507
- usesPlanB(): boolean;
4508
- usesSdpMungingForSimulcast(): boolean;
4509
- usesUnifiedPlan(): boolean;
4510
- usesNewGumFlow(): boolean;
4511
- usesAdapter(): boolean;
4512
- usesRidsForSimulcast(): boolean;
4513
- supportsGetDisplayMedia(): boolean;
4514
- supportsInsertableStreams(): boolean;
4515
- supportsAudioRed(): boolean;
4516
- supportsSdpSemantics(): boolean;
4517
- _getChromiumBasedVersion(): number;
4518
- isIOSMobile(): boolean;
4319
+ interface ReactNativeFile {
4320
+ uri: string;
4321
+ name: string;
4322
+ type: string;
4519
4323
  }
4520
-
4521
- declare class RTKFeatures {
4522
- constructor(context: Context<RTKContextState>);
4523
- hasFeature(featureName: string): boolean;
4524
- getFeatureValue(featureName: string): _dyteinternals_utils.RTKFlagValues;
4525
- getAllFeatures(): {
4526
- [x: string]: _dyteinternals_utils.RTKFlagsEntry;
4527
- };
4324
+ declare class APIClient extends API {
4325
+ telemetry: RTKTelemetry;
4326
+ constructor(context: Context<RTKContextState>, options?: APIOptions);
4327
+ getIPDetails(): Promise<any>;
4328
+ getICEServers(): Promise<any>;
4329
+ getPlugins(): Promise<any[]>;
4330
+ getPluginDetails(pluginId: string): Promise<RTKPluginResponse>;
4331
+ getPluginConfig(pluginBaseUrl: string): Promise<PluginConfig>;
4332
+ authorizePlugin(pluginId: string): Promise<string>;
4333
+ getPresignedUrls(filename: string, viewType: string): Promise<{
4334
+ getLocation: any;
4335
+ putLocation: any;
4336
+ }>;
4337
+ uploadFile(file: File | ReactNativeFile, url: string): Promise<void>;
4338
+ startLivestreaming({ manualIngestion, }: StartLivestreamConfig): Promise<LivestreamResponse>;
4339
+ stopLivestreaming(): Promise<FetchResponse<any>>;
4340
+ getActiveLivestream(): Promise<LivestreamResponse>;
4341
+ getUserDetails(): Promise<UserDetailsResponseV2>;
4342
+ startRecording(config: RecordingConfig, allowMultiple?: boolean): Promise<string>;
4343
+ updateRecording(recordingId: string, action: 'stop' | 'pause' | 'resume'): Promise<FetchResponse<any>>;
4344
+ getActiveRecording(): Promise<{
4345
+ status: string;
4346
+ id: string;
4347
+ }>;
4348
+ getActiveTranscript(): Promise<{
4349
+ transcript: string;
4350
+ }>;
4351
+ getRoomNodeData(): Promise<RoomDetails>;
4528
4352
  }
4529
4353
 
4530
- declare function createSafeToLogError(ex: any): {
4531
- stack?: string;
4532
- message?: string;
4533
- name?: string;
4534
- reason?: string;
4535
- code?: number | string;
4536
- };
4537
-
4538
- declare const enum PRODUCERS_TYPE {
4539
- WEBCAM = "webcam",
4540
- WEBCAM_BACKUP = "webcam_backup",
4541
- MIC = "mic",
4542
- SCREENSHARE_VIDEO = "screenshare_video",
4543
- SCREENSHARE_AUDIO = "screenshare_audio"
4354
+ declare enum MessageType {
4355
+ text = "text",
4356
+ image = "image",
4357
+ file = "file",
4358
+ custom = "custom",
4359
+ poll = "poll"
4544
4360
  }
4545
-
4546
- type SupportedEventSeverities = 'info' | 'error' | 'debug' | 'log' | 'warn';
4547
- type LogData$2 = {
4548
- error?: ReturnType<typeof createSafeToLogError>;
4549
- peers?: string;
4550
- flags?: string | {
4551
- [key: string]: {
4552
- enabled: boolean;
4553
- value: string | number | boolean;
4554
- };
4555
- };
4556
- devices?: string | MediaDeviceInfo[];
4557
- debuggingHint?: string;
4558
- constraints?: string | RTKMediaStreamConstraints;
4559
- timeout?: number;
4560
- execTime?: number;
4561
- country?: string;
4562
- media?: {
4563
- audio?: {
4564
- enabled: boolean;
4565
- deviceName?: string;
4566
- deviceId?: string;
4567
- trackId?: string;
4568
- permission?: keyof typeof MediaPermission;
4569
- canProduce?: MediaProductionPermissionType;
4570
- };
4571
- video?: {
4572
- enabled?: boolean;
4573
- deviceName?: string;
4574
- deviceId?: string;
4575
- trackId?: string;
4576
- permission?: keyof typeof MediaPermission;
4577
- canProduce?: MediaProductionPermissionType;
4578
- layer?: number;
4579
- };
4580
- screenshare?: {
4581
- enabled: boolean;
4582
- count?: number;
4583
- maxAllowedCount?: number;
4584
- permission?: keyof typeof MediaPermission;
4585
- deviceName?: string;
4586
- deviceId?: string;
4587
- audio?: {
4588
- enabled: boolean;
4589
- trackId?: string;
4590
- };
4591
- video?: {
4592
- enabled: boolean;
4593
- trackId?: string;
4594
- };
4595
- canProduce?: MediaProductionPermissionType;
4596
- };
4597
- };
4598
- producerInfo?: {
4599
- peerId: string;
4600
- producers: ProducerState[];
4601
- };
4602
- preferredDevice?: {
4603
- kind: 'audio' | 'video';
4604
- preferredDeviceId?: string;
4605
- lastUsedPreferredDeviceId?: string;
4606
- };
4607
- mediaPermissionsErrors?: {
4608
- kind: 'audio' | 'video' | 'screenshare';
4609
- message: string;
4610
- deviceId?: string;
4611
- };
4612
- pip?: {
4613
- id: string;
4614
- handRaised?: boolean;
4615
- source?: any;
4616
- };
4617
- memoize?: {
4618
- doubleInvoked?: {
4619
- property: string;
4620
- };
4621
- };
4622
- dyteClientInitOptions?: RealtimeKitClientOptions;
4623
- plugin?: {
4624
- id?: string;
4361
+ interface BaseMessage<T extends MessageType> {
4362
+ type: T;
4363
+ userId: string;
4364
+ displayName: string;
4365
+ time: Date;
4366
+ timeMs?: number;
4367
+ id: string;
4368
+ isEdited?: boolean;
4369
+ read?: boolean;
4370
+ pluginId?: string;
4371
+ pinned?: boolean;
4372
+ targetUserIds?: string[];
4373
+ channelId?: string;
4374
+ channelIndex?: string;
4375
+ }
4376
+ interface TextMessage extends BaseMessage<MessageType.text> {
4377
+ message: string;
4378
+ }
4379
+ interface CustomMessage extends BaseMessage<MessageType.custom> {
4380
+ message?: string;
4381
+ html?: string;
4382
+ files?: {
4383
+ link: string;
4384
+ type?: string;
4625
4385
  name?: string;
4626
- enabledBy?: string;
4627
- duration?: number;
4628
- storeName?: string;
4629
- data?: any;
4630
- };
4631
- roomJoined?: boolean;
4632
- transport?: {
4633
- id?: string;
4634
- type?: 'send' | 'recv';
4635
- status?: RTCPeerConnectionState | 'reconnecting';
4636
- lastDisconnectedTime?: string;
4637
- lastDisconnectedTimeOffset?: number;
4638
- durationPassed?: number;
4639
- remoteOfferAnswer?: RTCSessionDescriptionInit;
4640
- serverId?: string;
4641
- };
4642
- iceCandidate?: RTCIceCandidate;
4643
- iceRestart?: {
4644
- status?: RTCPeerConnectionState | 'reconnecting';
4645
- isSendTransport?: boolean;
4646
- isRecvTransport?: boolean;
4647
- currentAttempt?: number;
4648
- };
4649
- producer?: {
4650
- id: string;
4651
- peerId?: string;
4652
- kind: 'audio' | 'video' | PRODUCERS_TYPE;
4653
- status?: 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
4654
- appData: {
4655
- screenShare?: boolean;
4656
- supportsRemoteControl?: boolean;
4657
- };
4658
- error?: string;
4659
- closureReason?: string;
4660
- remoteAnswer?: SessionDescription;
4661
- trackId?: string;
4662
- };
4663
- consumer?: {
4386
+ size?: number;
4387
+ }[];
4388
+ images?: {
4389
+ link: string;
4390
+ type?: string;
4391
+ name?: string;
4392
+ size?: number;
4393
+ }[];
4394
+ videos?: {
4395
+ link: string;
4396
+ type?: string;
4397
+ name?: string;
4398
+ size?: number;
4399
+ }[];
4400
+ }
4401
+ interface ImageMessage extends BaseMessage<MessageType.image> {
4402
+ link: string;
4403
+ }
4404
+ interface FileMessage extends BaseMessage<MessageType.file> {
4405
+ name: string;
4406
+ size: number;
4407
+ link: string;
4408
+ }
4409
+ type Message = TextMessage | ImageMessage | FileMessage | CustomMessage;
4410
+ interface TextMessagePayload {
4411
+ type: 'text';
4412
+ message: string;
4413
+ replyTo?: TextMessage;
4414
+ }
4415
+ interface CustomMessagePayload {
4416
+ type: 'custom';
4417
+ message?: string;
4418
+ html?: string;
4419
+ files?: (File | string)[];
4420
+ images?: (File | string)[];
4421
+ videos?: (File | string)[];
4422
+ replyTo?: TextMessage;
4423
+ }
4424
+ interface ImageMessagePayload {
4425
+ type: 'image';
4426
+ image: File;
4427
+ }
4428
+ interface FileMessagePayload {
4429
+ type: 'file';
4430
+ file: File;
4431
+ }
4432
+ type MessagePayload = TextMessagePayload | ImageMessagePayload | FileMessagePayload | CustomMessagePayload;
4433
+ interface ChatUpdateParams {
4434
+ action: 'add' | 'edit' | 'delete';
4435
+ message: Message | {
4664
4436
  id: string;
4665
- peerId?: string;
4666
- kind?: string;
4667
- appData?: {
4668
- screenShare?: boolean;
4669
- supportsRemoteControl?: boolean;
4670
- };
4671
- remotelyPaused?: boolean;
4672
- producerId?: string;
4673
- closureReason?: string;
4674
- sessionDescription?: RTCSessionDescriptionInit;
4675
- };
4676
- consumerIds?: string[];
4677
- consumerState?: ConsumerState;
4678
- consumerStateMap?: {
4679
- [key: string]: ConsumerState;
4680
- };
4681
- rtcChannel?: {
4682
- label?: string;
4683
- message?: DCMessage;
4684
- messageStringified?: string;
4685
- };
4686
- localStorage?: {
4687
- key?: string;
4688
- value?: string;
4689
- };
4690
- spotlight?: {
4691
- spotlighter?: {
4692
- id?: string;
4693
- };
4694
- currentTab?: {
4695
- id?: string;
4696
- type?: ActiveTabType;
4697
- };
4698
- };
4699
- networkCall?: {
4700
- status?: number;
4701
- statusText?: string;
4702
- baseURL?: string;
4703
- url?: string;
4704
- retries?: number;
4705
- method?: string;
4706
- isOnline?: string;
4707
- ip?: any;
4708
- timezone?: string;
4709
- };
4710
- ipInfo?: {
4711
- city: string;
4712
- country: string;
4713
- region: string;
4714
- loc: string;
4715
- timezone: string;
4716
- ip: string;
4717
- postal: string;
4718
- };
4719
- dytePolls?: {
4720
- hasQuestion?: boolean;
4721
- optionsLength?: number;
4437
+ channelId: string;
4722
4438
  };
4723
- dyteChat?: {
4724
- imageType?: string;
4725
- messageType?: string;
4439
+ messages: Message[];
4440
+ }
4441
+ type ChatEvents = {
4442
+ ['chatUpdate']: (payload: ChatUpdateParams) => void;
4443
+ ['pinMessage']: (payload: Omit<ChatUpdateParams, 'action'>) => void;
4444
+ ['unpinMessage']: (payload: Omit<ChatUpdateParams, 'action'>) => void;
4445
+ ['channelCreate']: (channel: ChatChannel) => void;
4446
+ ['channelMessageUpdate']: (channel: ChatChannel) => void;
4447
+ ['channelUpdate']: (channel?: ChatChannel) => void;
4448
+ ['*']: (event: string, ...args: any[]) => void;
4449
+ };
4450
+ declare class RTKChat$1 extends RTKTypedEventEmitter<ChatEvents> {
4451
+ messages: Message[];
4452
+ channels: ChatChannel[];
4453
+ maxTextLimit: number;
4454
+ get telemetry(): RTKTelemetry;
4455
+ setMaxTextLimit(limit: number): void;
4456
+ constructor(context: Context<RTKContextState>, chatSocketHandler: ChatSocketHandler, chatChannelSocketHandler: ChatChannelSocketHandler, self: RTKSelf$1, participants: RTKParticipants$1);
4457
+ get rateLimits(): {
4458
+ maxInvocations: number;
4459
+ period: number;
4726
4460
  };
4727
- dyteParticipant?: {
4461
+ updateRateLimits(num: number, period: number): void;
4462
+ sendTextMessage(message: string, peerIds?: string[]): Promise<void>;
4463
+ sendCustomMessage(message: CustomMessagePayload, peerIds?: string[]): Promise<void>;
4464
+ sendImageMessage(image: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4465
+ sendFileMessage(file: File | ReactNativeFile, peerIds?: string[]): Promise<void>;
4466
+ sendMessage(message: MessagePayload, participantIds?: string[]): Promise<void>;
4467
+ editTextMessage(messageId: string, message: string, channelId?: string): Promise<void>;
4468
+ editImageMessage(messageId: string, image: File | ReactNativeFile, channelId?: string): Promise<void>;
4469
+ editFileMessage(messageId: string, file: File | ReactNativeFile, channelId?: string): Promise<void>;
4470
+ editMessage(messageId: string, message: MessagePayload, channelId?: string): Promise<void>;
4471
+ deleteMessage(messageId: string, channelId?: string): Promise<void>;
4472
+ getMessagesByUser(userId: string): Message[];
4473
+ getMessagesByType(type: keyof typeof MessageType): Message[];
4474
+ pin(id: string): Promise<void>;
4475
+ unpin(id: string): Promise<void>;
4476
+ getMessages(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise<{
4477
+ messages: Message[];
4478
+ next: boolean;
4479
+ }>;
4480
+ createChannel(channelName: string, memberIds: string[], options?: {
4481
+ displayPictureUrl?: string;
4482
+ visibility?: string;
4483
+ isDirectMessage?: boolean;
4484
+ }): Promise<ChatChannel>;
4485
+ updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise<ChatChannel>;
4486
+ sendMessageToChannel(message: MessagePayload, channelId: string, options?: {
4487
+ replyTo?: Message;
4488
+ }): Promise<void>;
4489
+ getChannelMembers(channelId: string): Promise<RTKBasicParticipant[]>;
4490
+ searchMessages(query: string, filters?: SearchFilters): Promise<Message[]>;
4491
+ markLastReadMessage(channelId: string, message: Message): Promise<void>;
4492
+ get pinned(): Message[];
4493
+ }
4494
+
4495
+ declare class PollSocketHandler {
4496
+ get logger(): RTKLogger$1;
4497
+ get telemetry(): RTKTelemetry;
4498
+ constructor(context: Context<RTKContextState>, socketService: SocketService);
4499
+ getPolls(): Promise<{
4728
4500
  id: string;
4729
- };
4730
- actions?: {
4731
- disableAllAudio?: {
4732
- allowUnmute?: boolean;
4733
- };
4734
- trackRobustness?: {
4735
- reacquireTrack?: boolean;
4736
- eventType?: string;
4737
- };
4738
- };
4739
- recording?: {
4740
- id?: string;
4741
- state?: RecordingState;
4742
- };
4743
- selectedPeer?: {
4744
- oldIndex?: number;
4745
- newIndex?: number;
4746
- peerId?: string;
4747
- };
4748
- pageNavigation?: {
4749
- viewMode: ViewMode;
4750
- currentPage: number;
4751
- pageCount: number;
4752
- maxActiveParticipantsCount: number;
4753
- settingPage?: number;
4754
- };
4755
- connectedMeetings?: {
4756
- movement?: {
4757
- sourceMeetingId?: string;
4758
- destinationMeetingId?: string;
4759
- totalParticipantsToMove?: number;
4760
- };
4761
- };
4762
- webinar?: {
4763
- stageStatus?: StageStatus;
4764
- };
4765
- livestream?: {
4766
- stageStatus?: StageStatus;
4767
- latency?: number;
4768
- };
4769
- moduleExists?: {
4770
- self?: boolean;
4771
- };
4772
- performanceObserver?: {
4773
- api: PerformanceEntry;
4774
- };
4775
- dyteLocker?: {
4776
- methodName: string;
4777
- lockName: string;
4778
- };
4779
- socket?: {
4780
- retryAttempt: number;
4781
- };
4782
- connectionState?: {
4783
- joinAttempted: boolean;
4784
- };
4785
- source?: string;
4786
- eventListener?: {
4787
- eventName: string;
4788
- listenerCount: number;
4789
- };
4790
- dataChannelMessageChunk?: {
4501
+ payload: Uint8Array;
4502
+ }>;
4503
+ createPoll(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): boolean;
4504
+ votePoll(id: string, index: number): boolean;
4505
+ on(event: number, handler: (message: UpdatePollResponse) => void): void;
4506
+ removeListeners(event: number): void;
4507
+ }
4508
+
4509
+ interface PollOption {
4510
+ text: string;
4511
+ votes: {
4791
4512
  id: string;
4792
- count: number;
4793
- chunkIndex: number;
4794
- chunk: string;
4795
- transprtId: string;
4796
- };
4797
- peerIds?: string[];
4798
- producers?: ProducerState[];
4799
- sdp?: RTCSessionDescription['sdp'];
4800
- awaitQueueTask?: {
4801
- id?: string | number;
4802
- metadata?: Record<string, unknown>;
4803
- queueSizeAtStart?: number;
4804
- taskStartTime?: number;
4805
- execTime?: number;
4806
- };
4513
+ name: string;
4514
+ }[];
4515
+ count: number;
4516
+ }
4517
+ interface Poll {
4518
+ id: string;
4519
+ question: string;
4520
+ options: PollOption[];
4521
+ anonymous: boolean;
4522
+ hideVotes: boolean;
4523
+ createdBy: string;
4524
+ createdByUserId: string;
4525
+ voted: string[];
4526
+ }
4527
+ type PollsEvents = {
4528
+ ['pollsUpdate']: (payload: {
4529
+ polls: Poll[];
4530
+ newPoll: boolean;
4531
+ }) => void;
4532
+ ['*']: (eventName: string, ...args: any[]) => void;
4807
4533
  };
4534
+ declare class RTKPolls$1 extends RTKTypedEventEmitter<PollsEvents> {
4535
+ items: Poll[];
4536
+ constructor(context: Context<RTKContextState>, self: RTKSelf$1, pollSocketHandler: PollSocketHandler);
4537
+ create(question: string, options: string[], anonymous?: boolean, hideVotes?: boolean): Promise<void>;
4538
+ vote(id: string, index: number): Promise<void>;
4539
+ }
4808
4540
 
4809
- type EventSeverities = SupportedEventSeverities;
4810
- type LogData$1 = LogData$2;
4811
- declare class RTKTelemetry {
4812
- static logsCache: {
4813
- [key: string]: any;
4814
- }[];
4815
- static logsProcessorTimer: NodeJS.Timer;
4816
- static location: {
4817
- country: string;
4818
- };
4819
- static get logsEndpoint(): string;
4820
- static tracingEnabled: boolean;
4821
- static initialized: boolean;
4822
- static readonly logsProcessingInterval = 7000;
4823
- static logExclusionList: string[];
4824
- static meetingMetadata: {
4825
- peerId?: string;
4826
- roomName?: string;
4827
- organizationId?: string;
4828
- sdkVersion?: string;
4829
- deviceInfo?: object;
4830
- visitedUrl?: string;
4831
- userId?: string;
4541
+ type PluginMapEvents = {
4542
+ ['pluginAdded']: (plugin: RTKPlugin$1) => void;
4543
+ ['pluginDeleted']: (plugin: RTKPlugin$1) => void;
4544
+ };
4545
+ type PluginEvents = {
4546
+ ['stateUpdate']: (payload: {
4547
+ active: boolean;
4548
+ pluginId: string;
4549
+ bind?: (...args: any[]) => void;
4550
+ views: any;
4551
+ }) => void;
4552
+ ['ready']: () => void;
4553
+ ['closed']: () => void;
4554
+ ['toggleViewMode']: (...args: any[]) => void;
4555
+ ['enabled']: () => void;
4556
+ ['*']: (eventName: string, ...args: any[]) => void;
4557
+ };
4558
+ declare class RTKPluginMap$1<T extends RTKPlugin$1 = RTKPlugin$1> extends RTKMap<PluginEvents, T, PluginMapEvents> {
4559
+ constructor(logger: RTKLogger$1);
4560
+ add(plugin: T, emitEvent?: boolean): this;
4561
+ delete(pluginId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
4562
+ }
4563
+
4564
+ declare class RTKPlugins$1 {
4565
+ readonly all: RTKPluginMap$1;
4566
+ readonly active: RTKPluginMap$1;
4567
+ constructor(logger: RTKLogger);
4568
+ }
4569
+
4570
+ type RecordingState = 'IDLE' | 'STARTING' | 'RECORDING' | 'PAUSED' | 'STOPPING';
4571
+ type RecordingType = 'BROWSER' | 'TRACK' | 'COMPOSITE';
4572
+ type RecordingInfo = {
4573
+ state: RecordingState;
4574
+ id: string;
4575
+ type: RecordingType;
4576
+ };
4577
+ type RecordingEvents = {
4578
+ ['recordingUpdate']: (state: RecordingState) => void;
4579
+ ['*']: (eventName: string, ...args: any[]) => void;
4580
+ };
4581
+ declare class RTKRecording$1 extends RTKTypedEventEmitter<RecordingEvents> {
4582
+ recordingPeerIds: string[];
4583
+ get recordingState(): RecordingState;
4584
+ recordings: RecordingInfo[];
4585
+ constructor(context: Context<RTKContextState>, self: RTKSelf);
4586
+ get telemetry(): RTKTelemetry;
4587
+ updateRecordings(recordings: RecordingInfo[]): void;
4588
+ start(opts?: {
4589
+ allowMultiple: boolean;
4590
+ }): Promise<void>;
4591
+ stop(recordingId?: string): Promise<void>;
4592
+ pause(recordingId?: string): Promise<void>;
4593
+ resume(recordingId?: string): Promise<void>;
4594
+ }
4595
+
4596
+ declare class BrowserDetection {
4597
+ _bowser: any;
4598
+ _name: any;
4599
+ _version: any;
4600
+ init(browserInfo?: any): void;
4601
+ getName(): any;
4602
+ isChrome(): boolean;
4603
+ isOpera(): boolean;
4604
+ isFirefox(): boolean;
4605
+ isIExplorer(): boolean;
4606
+ isSafari(): boolean;
4607
+ isNWJS(): boolean;
4608
+ isElectron(): boolean;
4609
+ isReactNative(): boolean;
4610
+ getVersion(): any;
4611
+ isMobile(): boolean;
4612
+ getDeviceInfo: () => {
4613
+ isMobile: boolean;
4614
+ browserName: any;
4615
+ osName: any;
4616
+ browserVersion: any;
4617
+ osVersionName: any;
4618
+ engineName: any;
4832
4619
  };
4833
- static resetPeerId(peerId: string): void;
4834
- static init(context: Context<RTKContextState>, enableTracing: boolean): void;
4835
- static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
4836
- static injectContext(injectionReceiver: any): void;
4837
- static addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
4838
- static sendOtelLogsToNewRelic(logs: object[]): void;
4839
- static processCachedLogs(): void;
4840
- static destruct(): void;
4620
+ _checkCondition(checkTree: any): any;
4621
+ isVersionGreaterThan(version: any): any;
4622
+ isVersionLessThan(version: any): any;
4623
+ isVersionEqualTo(version: any): any;
4841
4624
  }
4842
4625
 
4843
- type LogData = LogData$1;
4844
- declare class RTKLogger$1 {
4845
- static info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
4846
- static error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
4847
- static debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
4848
- static log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
4849
- static warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
4626
+ declare class BrowserCapabilities extends BrowserDetection {
4627
+ doesVideoMuteByStreamRemove(): boolean;
4628
+ supportsP2P(): boolean;
4629
+ isChromiumBased(): boolean;
4630
+ isWebKitBased(): boolean;
4631
+ isSupported(): boolean;
4632
+ isUserInteractionRequiredForUnmute(): any;
4633
+ supportsVideoMuteOnConnInterrupted(): boolean;
4634
+ supportsBandwidthStatistics(): boolean;
4635
+ supportsCodecPreferences(): boolean;
4636
+ supportsDeviceChangeEvent(): boolean;
4637
+ supportsLocalCandidateRttStatistics(): boolean;
4638
+ supportsPerformanceObserver(): boolean;
4639
+ supportsReceiverStats(): boolean;
4640
+ supportsRTTStatistics(): boolean;
4641
+ usesPlanB(): boolean;
4642
+ usesSdpMungingForSimulcast(): boolean;
4643
+ usesUnifiedPlan(): boolean;
4644
+ usesNewGumFlow(): boolean;
4645
+ usesAdapter(): boolean;
4646
+ usesRidsForSimulcast(): boolean;
4647
+ supportsGetDisplayMedia(): boolean;
4648
+ supportsInsertableStreams(): boolean;
4649
+ supportsAudioRed(): boolean;
4650
+ supportsSdpSemantics(): boolean;
4651
+ _getChromiumBasedVersion(): number;
4652
+ isIOSMobile(): boolean;
4653
+ }
4654
+
4655
+ declare class RTKFeatures {
4656
+ constructor(context: Context<RTKContextState>);
4657
+ hasFeature(featureName: string): boolean;
4658
+ getFeatureValue(featureName: string): _dyteinternals_utils.RTKFlagValues;
4659
+ getAllFeatures(): {
4660
+ [x: string]: _dyteinternals_utils.RTKFlagsEntry;
4661
+ };
4850
4662
  }
4851
4663
 
4852
4664
  declare class RTKInternals {
@@ -4909,6 +4721,14 @@ declare class RTKStoreManager {
4909
4721
  create(name: string): Promise<RTKStore$1>;
4910
4722
  }
4911
4723
 
4724
+ declare const enum PRODUCERS_TYPE {
4725
+ WEBCAM = "webcam",
4726
+ WEBCAM_BACKUP = "webcam_backup",
4727
+ MIC = "mic",
4728
+ SCREENSHARE_VIDEO = "screenshare_video",
4729
+ SCREENSHARE_AUDIO = "screenshare_audio"
4730
+ }
4731
+
4912
4732
  interface MediaPermissions {
4913
4733
  canProduceAudio?: MediaProductionPermissionType;
4914
4734
  canProduceVideo?: MediaProductionPermissionType;
@@ -4925,6 +4745,8 @@ declare class MediaNodeClient {
4925
4745
  readonly authToken: string;
4926
4746
  readonly e2ee: boolean;
4927
4747
  get peerId(): string;
4748
+ get telemetry(): RTKTelemetry;
4749
+ get logger(): RTKLogger$1;
4928
4750
  constructor(context: Context<RTKContextState>, nodeType: MediaNodeType, options: MediaNodeClientOptions);
4929
4751
  get mediaJoined(): boolean;
4930
4752
  set mediaJoined(joined: boolean);
@@ -5124,7 +4946,7 @@ interface DefaultOptions {
5124
4946
  video?: boolean;
5125
4947
  audio?: boolean;
5126
4948
  recording?: RecordingConfig;
5127
- mediaHandler?: RTKSelfMedia;
4949
+ mediaHandler?: RTKSelfMedia$1;
5128
4950
  autoSwitchAudioDevice?: boolean;
5129
4951
  mediaConfiguration?: {
5130
4952
  video?: VideoQualityConstraints;
@@ -5244,7 +5066,7 @@ declare const ERROR_CODES: {
5244
5066
  };
5245
5067
  declare class RTKError extends Error {
5246
5068
  code: keyof typeof ERROR_CODES;
5247
- constructor(message: string, code?: keyof typeof ERROR_CODES, log?: boolean);
5069
+ constructor(message: string, code?: keyof typeof ERROR_CODES, logger?: RTKLogger$1 | undefined, log?: boolean);
5248
5070
  }
5249
5071
 
5250
5072
  type EventMap = {
@@ -5382,7 +5204,7 @@ declare class AudioPlaybackManager extends AudioPlayback {
5382
5204
  }
5383
5205
 
5384
5206
  type RTKContextState = {
5385
- authToken: string;
5207
+ authToken?: string;
5386
5208
  peerId?: string;
5387
5209
  apiBase?: string;
5388
5210
  baseURI?: string;
@@ -5418,6 +5240,8 @@ type RTKContextState = {
5418
5240
  audioPlayback?: AudioPlaybackManager;
5419
5241
  options?: RealtimeKitClientOptions;
5420
5242
  self?: RTKSelf;
5243
+ telemetry?: RTKTelemetry;
5244
+ logger?: RTKLogger$1;
5421
5245
  meeting?: RealtimeKitClient;
5422
5246
  };
5423
5247
  interface Context<T extends Record<string, any>> {
@@ -5443,13 +5267,15 @@ declare class SocketService {
5443
5267
  readonly capabilities: SocketServiceCapabilities;
5444
5268
  get joinAttempted(): boolean;
5445
5269
  set joinAttempted(value: boolean);
5270
+ get telemetry(): RTKTelemetry;
5271
+ get logger(): RTKLogger$1;
5446
5272
  get peerId(): string;
5447
5273
  constructor(context: Context<RTKContextState>, { peerId, meetingId, authToken, capabilities, }: {
5448
- peerId: string;
5449
- meetingId: string;
5450
- authToken: string;
5451
- capabilities: SocketServiceCapabilities;
5452
- });
5274
+ peerId: string;
5275
+ meetingId: string;
5276
+ authToken: string;
5277
+ capabilities: SocketServiceCapabilities;
5278
+ });
5453
5279
  updateURL(peerID: string): void;
5454
5280
  get url(): string;
5455
5281
  connect(): Promise<void>;
@@ -5484,240 +5310,450 @@ declare class SocketService {
5484
5310
  handleSocketConnectionEvents(): void;
5485
5311
  }
5486
5312
 
5487
- type StageSocketMessage = GetStageRequestsResponse | GetStagePeersResponse | DenyStageAccessRequest | PeerStatusUpdate;
5488
- declare class StageSocketHandler {
5489
- constructor(socketService: SocketService);
5490
- getStageRequests(): Promise<GetStageRequestsResponse>;
5491
- requestAccess(): void;
5492
- cancelRequestAccess(): void;
5493
- grantAccess(userIds: string[]): Promise<void>;
5494
- denyAccess(userIds: string[]): Promise<void>;
5495
- joinStage(): Promise<{
5313
+ type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
5314
+ declare class RoomSocketHandler {
5315
+ socket: SocketService;
5316
+ get telemetry(): RTKTelemetry;
5317
+ get logger(): RTKLogger$1;
5318
+ cleanup(): Promise<void>;
5319
+ constructor(context: Context<RTKContextState>, socketService: SocketService);
5320
+ joinRoom(opts: {
5321
+ name: string;
5496
5322
  id: string;
5497
- payload: Uint8Array;
5323
+ userId: string;
5324
+ customParticipantId: string;
5325
+ picture?: string;
5326
+ }): Promise<{
5327
+ peer: Peer;
5498
5328
  }>;
5499
- leaveStage(userId: string): Promise<{
5329
+ getAllAddedParticipants(): Promise<RTKBasicParticipant[]>;
5330
+ getRoomPeers(searchQuery: string, limit: number, offset: number): Promise<RoomPeersInfoResponse>;
5331
+ getRoomPeersNonPaginated(): Promise<RoomPeersInfoResponse>;
5332
+ getStagePeers(): Promise<RoomPeersInfoResponse>;
5333
+ getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
5334
+ getRoomState(): Promise<RoomInfoResponse>;
5335
+ getRoomStageState(): Promise<GetRoomStageStateResponse>;
5336
+ broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
5500
5337
  id: string;
5501
5338
  payload: Uint8Array;
5502
5339
  }>;
5503
- kick(userIds: string[]): Promise<{
5340
+ broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
5504
5341
  id: string;
5505
5342
  payload: Uint8Array;
5506
5343
  }>;
5507
- on(event: number, handler: (socketMessage: StageSocketMessage, messageId?: string) => void): void;
5508
- getPeerInfo(peerId: string): Promise<PeerInfoResponse>;
5509
- }
5510
-
5511
- type StageStatus = 'OFF_STAGE' | 'REQUESTED_TO_JOIN_STAGE' | 'ACCEPTED_TO_JOIN_STAGE' | 'ON_STAGE';
5512
- interface StageRequestPayload {
5513
- displayName: string;
5514
- userId: string;
5515
- peerId: string;
5516
- }
5517
- type StageEvents = {
5518
- ['stageAccessRequestUpdate']: (requests?: StageRequestPayload[]) => void;
5519
- ['stageStatusUpdate']: (status: StageStatus) => void;
5520
- ['newStageRequest']: (payload: {
5521
- count: number;
5522
- }) => void;
5523
- ['stageRequestApproved']: () => void;
5524
- ['stageRequestRejected']: () => void;
5525
- ['*']: (eventName: string, ...args: any[]) => void;
5526
- };
5527
- declare class RTKStage extends RTKTypedEventEmitter<StageEvents> {
5528
- constructor(context: Context<RTKContextState>, self: RTKSelf$1, participants: RTKParticipants, stageSocketHandler: StageSocketHandler, roomSocketHandler: RoomSocketHandler);
5529
- get status(): StageStatus;
5530
- getAccessRequests(): {
5531
- stageRequests: StageRequestPayload[];
5532
- };
5533
- requestAccess(): Promise<void>;
5534
- cancelRequestAccess(): Promise<void>;
5535
- grantAccess(userIds: string[]): Promise<void>;
5536
- denyAccess(userIds: string[]): Promise<void>;
5537
- join(): Promise<void>;
5538
- leave(): Promise<void>;
5539
- kick(userIds: string[]): Promise<{
5344
+ broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise<boolean>;
5345
+ leaveRoom(): Promise<void>;
5346
+ kick(peerId: string): Promise<void>;
5347
+ kickAll(propagateKickAll?: boolean): Promise<void>;
5348
+ getWaitingRoomRequests(): void;
5349
+ acceptWaitingRoomRequest(userIds: string[]): void;
5350
+ rejectWaitingRoomRequest(userIds: string[]): void;
5351
+ updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
5540
5352
  id: string;
5541
5353
  payload: Uint8Array;
5542
5354
  }>;
5355
+ on(event: number, handler: (message: EventHandlerTypes) => void): void;
5356
+ getUserPermissions(userId: string): Promise<Pick<PresetTypeV2['permissions'], 'chat' | 'polls' | 'plugins'>>;
5543
5357
  }
5544
5358
 
5545
- interface UserDetailsResponse {
5359
+ interface DeviceConfig {
5360
+ browserName: string;
5361
+ browserVersion: string;
5362
+ isMobile: boolean;
5363
+ engineName: string;
5364
+ osName: string;
5365
+ }
5366
+ interface ProducerState {
5367
+ producerId: string;
5368
+ kind: 'audio' | 'video';
5369
+ pause: boolean;
5370
+ screenShare: boolean;
5371
+ producingTransportId: string;
5372
+ producingPeerId: string;
5373
+ mimeType?: string;
5374
+ }
5375
+ interface Participant {
5546
5376
  id: string;
5547
- name: string;
5548
- email: string;
5377
+ userId: string;
5378
+ displayName: string;
5379
+ device?: DeviceConfig;
5549
5380
  picture?: string;
5550
- loggedIn?: boolean;
5551
- scope?: string[];
5381
+ isHost: boolean;
5382
+ flags: {
5383
+ [key: string]: string | boolean;
5384
+ };
5552
5385
  clientSpecificId?: string;
5553
5386
  customParticipantId?: string;
5554
- organizationId?: string;
5387
+ stageStatus?: StageStatus;
5388
+ audioMuted: boolean;
5389
+ audioTrack: MediaStreamTrack;
5390
+ videoTrack: MediaStreamTrack;
5391
+ videoEnabled: boolean;
5392
+ producers?: ProducerState[];
5393
+ metadata?: {
5394
+ preset_name?: string;
5395
+ };
5396
+ recorderType?: string;
5555
5397
  }
5556
- declare class RTKSelf$1 extends RTKSelfMedia {
5398
+ declare class RTKParticipant$1 extends RTKTypedEventEmitter<ParticipantEvents> {
5399
+ id: string;
5400
+ userId: string;
5557
5401
  name: string;
5558
5402
  picture: string;
5559
- customParticipantId: string;
5560
- waitlistStatus: 'accepted' | 'waiting' | 'rejected' | 'none';
5561
- role: any;
5562
- userId: string;
5563
- organizationId: string;
5564
- supportsRemoteControl: boolean;
5403
+ isHost: boolean;
5404
+ customParticipantId?: string;
5405
+ get clientSpecificId(): string;
5406
+ flags: {
5407
+ [key: string]: string | boolean;
5408
+ };
5565
5409
  device: DeviceConfig;
5566
- hidden: boolean;
5410
+ videoTrack: MediaStreamTrack;
5411
+ audioTrack: MediaStreamTrack;
5412
+ screenShareTracks: {
5413
+ audio: MediaStreamTrack;
5414
+ video: MediaStreamTrack;
5415
+ };
5416
+ videoEnabled: boolean;
5417
+ audioEnabled: boolean;
5418
+ screenShareEnabled: boolean;
5419
+ producers: ProducerState[];
5420
+ manualProducerConfig: PeerProducerConfig;
5421
+ supportsRemoteControl: boolean;
5422
+ presetName?: string;
5567
5423
  get stageStatus(): StageStatus;
5568
- get id(): string;
5569
- presetName: string;
5570
- roomState: 'init' | 'joined' | 'waitlisted' | LeaveRoomState;
5571
- private constructor();
5572
- static __init__(context: Context<RTKContextState>, details: UserDetailsResponse, permissions: RTKPermissionsPreset$1, theme: RTKThemePreset$1, presetName: string, skipAwaits?: boolean): Promise<RTKSelf$1>;
5573
- cleanupEvents(): void;
5574
- get permissions(): RTKPermissionsPreset$1;
5575
- get config(): RTKThemePreset$1;
5576
- get roomJoined(): boolean;
5577
- setName(name: string): void;
5578
- setupTracks(options?: {
5579
- video?: boolean;
5580
- audio?: boolean;
5581
- forceReset?: boolean;
5582
- }): Promise<void>;
5583
- destructMediaHandler(): Promise<void>;
5584
- removeDocumentEventListeners(): Promise<void>;
5585
- enableAudio(customTrack?: MediaStreamTrack): Promise<void>;
5586
- enableVideo(customTrack?: MediaStreamTrack): Promise<void>;
5587
- updateVideoConstraints(resolution: VideoQualityConstraints): Promise<void>;
5588
- enableScreenShare(): Promise<void>;
5589
- updateScreenshareConstraints(resolution: VideoQualityConstraints): Promise<void>;
5424
+ get telemetry(): RTKTelemetry;
5425
+ constructor(context: Context<RTKContextState>, participant: Participant, self: RTKSelf, roomSocket: RoomSocketHandler);
5426
+ setVideoEnabled(videoEnabled: boolean, emitEvent?: boolean): void;
5427
+ setAudioEnabled(audioEnabled: boolean, emitEvent?: boolean): void;
5428
+ setScreenShareEnabled(screenShareEnabled: boolean, emitEvent?: boolean): void;
5429
+ pin(): Promise<void>;
5430
+ unpin(): Promise<void>;
5431
+ setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5590
5432
  disableAudio(): Promise<void>;
5433
+ kick(): Promise<void>;
5591
5434
  disableVideo(): Promise<void>;
5592
- disableScreenShare(): Promise<void>;
5593
- getAllDevices(): Promise<InputDeviceInfo[]>;
5594
- setIsPinned(isPinned: boolean, emitEvent?: boolean): void;
5435
+ getPermissions(): Promise<Pick<_dyteinternals_utils.Permissions, "plugins" | "polls" | "chat">>;
5436
+ setStageStatus(stageStatus: StageStatus): void;
5595
5437
  get isPinned(): boolean;
5596
- pin(): Promise<void>;
5597
- unpin(): Promise<void>;
5598
- hide(): Promise<void>;
5599
- show(): void;
5600
- setDevice(device: MediaDeviceInfo): Promise<void>;
5601
- cleanUpTracks(): void;
5602
- playAudio(): Promise<void>;
5603
- registerVideoElement(videoElem: HTMLVideoElement, isPreview?: boolean): void;
5604
- deregisterVideoElement(videoElem?: HTMLVideoElement, isPreview?: boolean): void;
5438
+ registerVideoElement(videoElem: HTMLVideoElement): void;
5439
+ deregisterVideoElement(videoElem?: HTMLVideoElement): void;
5605
5440
  }
5606
5441
 
5607
- interface RTKPluginResponse {
5608
- baseURL: string;
5609
- createdAt: string;
5610
- description: string;
5611
- id: string;
5612
- name: string;
5613
- organizationId: string;
5614
- picture: string;
5615
- private: boolean;
5616
- published: boolean;
5617
- staggered: boolean;
5618
- tags: string[];
5619
- type: string;
5620
- updatedAt: string;
5621
- }
5622
- interface PluginViews {
5623
- [viewId: string]: {
5624
- url: string;
5625
- suggestedPosition: string;
5442
+ declare function createSafeToLogError(ex: any): {
5443
+ stack?: string;
5444
+ message?: string;
5445
+ name?: string;
5446
+ reason?: string;
5447
+ code?: number | string;
5448
+ };
5449
+
5450
+ type SupportedEventSeverities = 'info' | 'error' | 'debug' | 'log' | 'warn';
5451
+ type LogData$2 = {
5452
+ error?: ReturnType<typeof createSafeToLogError>;
5453
+ peers?: string;
5454
+ flags?: string | {
5455
+ [key: string]: {
5456
+ enabled: boolean;
5457
+ value: string | number | boolean;
5458
+ };
5459
+ };
5460
+ devices?: string | MediaDeviceInfo[];
5461
+ debuggingHint?: string;
5462
+ constraints?: string | RTKMediaStreamConstraints;
5463
+ timeout?: number;
5464
+ execTime?: number;
5465
+ country?: string;
5466
+ media?: {
5467
+ audio?: {
5468
+ enabled: boolean;
5469
+ deviceName?: string;
5470
+ deviceId?: string;
5471
+ trackId?: string;
5472
+ permission?: keyof typeof MediaPermission;
5473
+ canProduce?: MediaProductionPermissionType;
5474
+ };
5475
+ video?: {
5476
+ enabled?: boolean;
5477
+ deviceName?: string;
5478
+ deviceId?: string;
5479
+ trackId?: string;
5480
+ permission?: keyof typeof MediaPermission;
5481
+ canProduce?: MediaProductionPermissionType;
5482
+ layer?: number;
5483
+ };
5484
+ screenshare?: {
5485
+ enabled: boolean;
5486
+ count?: number;
5487
+ maxAllowedCount?: number;
5488
+ permission?: keyof typeof MediaPermission;
5489
+ deviceName?: string;
5490
+ deviceId?: string;
5491
+ audio?: {
5492
+ enabled: boolean;
5493
+ trackId?: string;
5494
+ };
5495
+ video?: {
5496
+ enabled: boolean;
5497
+ trackId?: string;
5498
+ };
5499
+ canProduce?: MediaProductionPermissionType;
5500
+ };
5501
+ };
5502
+ producerInfo?: {
5503
+ peerId: string;
5504
+ producers: ProducerState[];
5505
+ };
5506
+ preferredDevice?: {
5507
+ kind: 'audio' | 'video';
5508
+ preferredDeviceId?: string;
5509
+ lastUsedPreferredDeviceId?: string;
5510
+ };
5511
+ mediaPermissionsErrors?: {
5512
+ kind: 'audio' | 'video' | 'screenshare';
5513
+ message: string;
5514
+ deviceId?: string;
5515
+ };
5516
+ pip?: {
5517
+ id: string;
5518
+ handRaised?: boolean;
5519
+ source?: any;
5520
+ };
5521
+ memoize?: {
5522
+ doubleInvoked?: {
5523
+ property: string;
5524
+ };
5525
+ };
5526
+ dyteClientInitOptions?: RealtimeKitClientOptions;
5527
+ plugin?: {
5528
+ id?: string;
5529
+ name?: string;
5530
+ enabledBy?: string;
5531
+ duration?: number;
5532
+ storeName?: string;
5533
+ data?: any;
5534
+ };
5535
+ roomJoined?: boolean;
5536
+ transport?: {
5537
+ id?: string;
5538
+ type?: 'send' | 'recv';
5539
+ status?: RTCPeerConnectionState | 'reconnecting';
5540
+ lastDisconnectedTime?: string;
5541
+ lastDisconnectedTimeOffset?: number;
5542
+ durationPassed?: number;
5543
+ remoteOfferAnswer?: RTCSessionDescriptionInit;
5544
+ serverId?: string;
5545
+ };
5546
+ iceCandidate?: RTCIceCandidate;
5547
+ iceRestart?: {
5548
+ status?: RTCPeerConnectionState | 'reconnecting';
5549
+ isSendTransport?: boolean;
5550
+ isRecvTransport?: boolean;
5551
+ currentAttempt?: number;
5552
+ };
5553
+ producer?: {
5554
+ id: string;
5555
+ peerId?: string;
5556
+ kind: 'audio' | 'video' | PRODUCERS_TYPE;
5557
+ status?: 'initializing' | 'producing' | 'paused' | 'failed' | 'closing' | 'closed' | 'UNKNOWN';
5558
+ appData: {
5559
+ screenShare?: boolean;
5560
+ supportsRemoteControl?: boolean;
5561
+ };
5562
+ error?: string;
5563
+ closureReason?: string;
5564
+ remoteAnswer?: SessionDescription;
5565
+ trackId?: string;
5626
5566
  };
5627
- }
5628
- interface PluginConfig {
5629
- name: string;
5630
- pluginId: string;
5631
- version: string;
5632
- description: string;
5633
- author?: string;
5634
- repository?: string;
5635
- tags?: string[];
5636
- picture?: string;
5637
- url?: string;
5638
- files: {
5639
- include: string[];
5640
- exclude?: string[];
5567
+ consumer?: {
5568
+ id: string;
5569
+ peerId?: string;
5570
+ kind?: string;
5571
+ appData?: {
5572
+ screenShare?: boolean;
5573
+ supportsRemoteControl?: boolean;
5574
+ };
5575
+ remotelyPaused?: boolean;
5576
+ producerId?: string;
5577
+ closureReason?: string;
5578
+ sessionDescription?: RTCSessionDescriptionInit;
5641
5579
  };
5642
- views?: PluginViews;
5643
- contentScript?: string;
5644
- permissions?: {
5645
- [key: string]: {
5646
- default: boolean;
5647
- description: string;
5580
+ consumerIds?: string[];
5581
+ consumerState?: ConsumerState;
5582
+ consumerStateMap?: {
5583
+ [key: string]: ConsumerState;
5584
+ };
5585
+ rtcChannel?: {
5586
+ label?: string;
5587
+ message?: DCMessage;
5588
+ messageStringified?: string;
5589
+ };
5590
+ localStorage?: {
5591
+ key?: string;
5592
+ value?: string;
5593
+ };
5594
+ spotlight?: {
5595
+ spotlighter?: {
5596
+ id?: string;
5597
+ };
5598
+ currentTab?: {
5599
+ id?: string;
5600
+ type?: ActiveTabType;
5648
5601
  };
5649
5602
  };
5650
- config?: {
5651
- [key: string]: string;
5603
+ networkCall?: {
5604
+ status?: number;
5605
+ statusText?: string;
5606
+ baseURL?: string;
5607
+ url?: string;
5608
+ retries?: number;
5609
+ method?: string;
5610
+ isOnline?: string;
5611
+ ip?: any;
5612
+ timezone?: string;
5652
5613
  };
5653
- }
5654
- interface PluginIframeMessage {
5655
- type: number;
5656
- uuid: string;
5657
- payload?: any;
5658
- }
5659
- interface SendDataOptions {
5660
- eventName: string;
5661
- data: any;
5662
- }
5663
- interface ReactNativeWebViewEvent {
5664
- nativeEvent: {
5665
- data: string;
5614
+ ipInfo?: {
5615
+ city: string;
5616
+ country: string;
5617
+ region: string;
5618
+ loc: string;
5619
+ timezone: string;
5620
+ ip: string;
5621
+ postal: string;
5622
+ };
5623
+ dytePolls?: {
5624
+ hasQuestion?: boolean;
5625
+ optionsLength?: number;
5626
+ };
5627
+ dyteChat?: {
5628
+ imageType?: string;
5629
+ messageType?: string;
5630
+ };
5631
+ dyteParticipant?: {
5632
+ id: string;
5633
+ };
5634
+ actions?: {
5635
+ disableAllAudio?: {
5636
+ allowUnmute?: boolean;
5637
+ };
5638
+ trackRobustness?: {
5639
+ reacquireTrack?: boolean;
5640
+ eventType?: string;
5641
+ };
5642
+ };
5643
+ recording?: {
5644
+ id?: string;
5645
+ state?: RecordingState;
5646
+ };
5647
+ selectedPeer?: {
5648
+ oldIndex?: number;
5649
+ newIndex?: number;
5650
+ peerId?: string;
5651
+ };
5652
+ pageNavigation?: {
5653
+ viewMode: ViewMode;
5654
+ currentPage: number;
5655
+ pageCount: number;
5656
+ maxActiveParticipantsCount: number;
5657
+ settingPage?: number;
5658
+ };
5659
+ connectedMeetings?: {
5660
+ movement?: {
5661
+ sourceMeetingId?: string;
5662
+ destinationMeetingId?: string;
5663
+ totalParticipantsToMove?: number;
5664
+ };
5665
+ };
5666
+ webinar?: {
5667
+ stageStatus?: StageStatus;
5668
+ };
5669
+ livestream?: {
5670
+ stageStatus?: StageStatus;
5671
+ latency?: number;
5672
+ };
5673
+ moduleExists?: {
5674
+ self?: boolean;
5675
+ };
5676
+ performanceObserver?: {
5677
+ api: PerformanceEntry;
5678
+ };
5679
+ dyteLocker?: {
5680
+ methodName: string;
5681
+ lockName: string;
5682
+ };
5683
+ socket?: {
5684
+ retryAttempt: number;
5685
+ };
5686
+ connectionState?: {
5687
+ joinAttempted: boolean;
5666
5688
  };
5689
+ source?: string;
5690
+ eventListener?: {
5691
+ eventName: string;
5692
+ listenerCount: number;
5693
+ };
5694
+ dataChannelMessageChunk?: {
5695
+ id: string;
5696
+ count: number;
5697
+ chunkIndex: number;
5698
+ chunk: string;
5699
+ transprtId: string;
5700
+ };
5701
+ peerIds?: string[];
5702
+ producers?: ProducerState[];
5703
+ sdp?: RTCSessionDescription['sdp'];
5704
+ awaitQueueTask?: {
5705
+ id?: string | number;
5706
+ metadata?: Record<string, unknown>;
5707
+ queueSizeAtStart?: number;
5708
+ taskStartTime?: number;
5709
+ execTime?: number;
5710
+ };
5711
+ };
5712
+
5713
+ type EventSeverities = SupportedEventSeverities;
5714
+ type LogData$1 = LogData$2;
5715
+ interface MeetingMetadata {
5716
+ peerId?: string;
5717
+ roomName?: string;
5718
+ organizationId?: string;
5719
+ sdkVersion?: string;
5720
+ deviceInfo?: object;
5721
+ visitedUrl?: string;
5722
+ userId?: string;
5667
5723
  }
5668
- interface ReactNativeWebView {
5669
- src: string;
5670
- allow: string;
5671
- title: string;
5672
- props: {
5673
- onMessage: (event: ReactNativeWebViewEvent) => void;
5724
+ declare class RTKTelemetry {
5725
+ logsCache: {
5726
+ [key: string]: any;
5727
+ }[];
5728
+ logsProcessorTimer: NodeJS.Timer;
5729
+ static location: {
5730
+ country: string;
5674
5731
  };
5675
- postMessage: (message: string) => void;
5732
+ get logsEndpoint(): string;
5733
+ tracingEnabled: boolean;
5734
+ initialized: boolean;
5735
+ readonly logsProcessingInterval = 7000;
5736
+ logExclusionList: string[];
5737
+ meetingMetadata: MeetingMetadata;
5738
+ resetPeerId(peerId: string): void;
5739
+ init(context: Context<RTKContextState>, options: MeetingMetadata, enableTracing: boolean): void;
5740
+ static trace(spanName: string, metadata?: LogData$1 | undefined): (_target: Object, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
5741
+ injectContext(injectionReceiver: any): void;
5742
+ addLogInCurrentSpan(eventSeverity: EventSeverities, eventName: string, metadata?: LogData$1, noCache?: boolean): void;
5743
+ sendOtelLogsToNewRelic(logs: object[]): void;
5744
+ processCachedLogs(): void;
5745
+ destruct(): void;
5676
5746
  }
5677
- declare const PluginEventKeys: {
5678
- stateUpdate: string;
5679
- ready: string;
5680
- closed: string;
5681
- toggleViewMode: string;
5682
- enabled: string;
5683
- '* ': string;
5684
- };
5685
- type _string = string & {
5686
- _?: any;
5687
- };
5688
- type PluginEvents = keyof typeof PluginEventKeys | _string;
5689
- declare class RTKPlugin$1 extends RTKEventEmitter<PluginEvents> {
5690
- readonly baseURL: string;
5691
- readonly createdAt: Date;
5692
- readonly description: string;
5693
- readonly id: string;
5694
- readonly name: string;
5695
- readonly organizationId: string;
5696
- readonly picture: string;
5697
- readonly private: boolean;
5698
- readonly published: boolean;
5699
- readonly staggered: boolean;
5700
- readonly tags: string[];
5701
- readonly type: string;
5702
- readonly updatedAt: Date;
5703
- config?: PluginConfig;
5704
- active: boolean;
5705
- iframes: Map<string, {
5706
- iframe: HTMLIFrameElement | ReactNativeWebView;
5707
- listener?: (message: MessageEvent) => void;
5708
- }>;
5709
- enabledBy: string;
5710
- 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);
5711
- sendIframeEvent(message: PluginIframeMessage): void;
5712
- sendData(payload: SendDataOptions): void;
5713
- removePluginView(viewId?: string): void;
5714
- addPluginView(iframe: HTMLIFrameElement | ReactNativeWebView, viewId?: string): void;
5715
- activateForSelf(): Promise<void>;
5716
- deactivateForSelf(): void;
5717
- enable(): Promise<void>;
5718
- disable(): void;
5719
- activate(): Promise<void>;
5720
- deactivate(): Promise<void>;
5747
+
5748
+ type LogData = LogData$1;
5749
+ declare class RTKLogger$1 {
5750
+ get telemetry(): RTKTelemetry;
5751
+ init(context: Context<RTKContextState>): void;
5752
+ info(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5753
+ error(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5754
+ debug(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5755
+ log(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5756
+ warn(humanReadableLogIdentifier: string, logData?: LogData, isCrucial?: boolean): void;
5721
5757
  }
5722
5758
 
5723
5759
  interface IceServerInformation {
@@ -5745,6 +5781,7 @@ declare class API {
5745
5781
  ipInfo: any;
5746
5782
  get peerId(): string;
5747
5783
  context: Context<RTKContextState>;
5784
+ get logger(): RTKLogger$1;
5748
5785
  constructor(context: Context<RTKContextState>, options?: APIOptions);
5749
5786
  setAuthToken(token: string, options?: {
5750
5787
  bearer?: boolean;
@@ -5771,6 +5808,12 @@ interface RealtimeKitClientOptions {
5771
5808
  }
5772
5809
  declare class RealtimeKitClient {
5773
5810
  private constructor();
5811
+ get peerId(): string;
5812
+ static initMedia(options?: {
5813
+ video?: boolean;
5814
+ audio?: boolean;
5815
+ constraints?: MediaConstraints;
5816
+ }, skipAwaits?: boolean, cachedUserDetails?: CachedUserDetails): RTKSelfMedia$1;
5774
5817
  static init(options: RealtimeKitClientOptions): Promise<RealtimeKitClient>;
5775
5818
  join(): Promise<void>;
5776
5819
  leave(state?: LeaveRoomState): Promise<void>;
@@ -5806,6 +5849,7 @@ type RTKPlugins = Readonly<RTKPlugins$1>;
5806
5849
  type RTKPluginMap = Readonly<RTKPluginMap$1>;
5807
5850
  type RTKMeta = Readonly<RTKMeta$1>;
5808
5851
  type RTKSelf = Readonly<RTKSelf$1>;
5852
+ type RTKSelfMedia = Readonly<RTKSelfMedia$1>;
5809
5853
  type RTKChat = Readonly<RTKChat$1>;
5810
5854
  type RTKPolls = Readonly<RTKPolls$1>;
5811
5855
  type RTKRecording = Readonly<RTKRecording$1>;
@@ -5819,6 +5863,8 @@ type RTKConnectedMeetings = Readonly<RTKConnectedMeetings$1>;
5819
5863
  type RTKPermissionsPreset = Readonly<RTKPermissionsPreset$1>;
5820
5864
  type RTKThemePreset = Readonly<RTKThemePreset$1>;
5821
5865
 
5866
+ type RTKLogger = RTKLogger$1;
5867
+
5822
5868
  type RTKType = {
5823
5869
  callStats?: unknown;
5824
5870
  RTKTelemetry?: typeof RTKTelemetry;
@@ -5837,4 +5883,4 @@ declare global {
5837
5883
  }
5838
5884
  }
5839
5885
 
5840
- 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, RTKStore, RTKThemePreset, FileMessage, ImageMessage, JoinedPeer, LeaveRoomState, LivestreamIngestionCredentials, LivestreamState, LogData, MediaConnectionState, MediaConnectionUpdate, MediaKind$1 as MediaKind, MediaPermission, Message, ProducerScoreStats, RTKSelfMedia as RTKSelfMedia, RecordingState, RequestToJoinType, SocketConnectionState, StageStatus, StartLivestreamConfig, TextMessage, VideoConsumerScoreStats, VideoMiddleware, VideoProducerScoreStats, VideoQualityConstraints, RealtimeKitClient as default, LeaveRoomState as leaveRoomState };
5886
+ 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 };