///
import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
import * as _dyteinternals_utils from '@dyteinternals/utils';
import { PresetTypeV2, MediaVideoQualityType, ViewType, MediaScreenShareQualityType, LivestreamViewerMediaQualityType, PluginAccessControls, WaitingRoomTypes, MediaProductionPermissionType, RecorderType as RecorderType$1, BorderRadius, BorderWidth, Theme, createNewFlagsmithInstance } from '@dyteinternals/utils';
import { MessageType as MessageType$1 } from '@protobuf-ts/runtime';
import * as WorkerTimers from 'worker-timers';
declare global {
interface SymbolConstructor {
readonly observable: symbol;
}
}
/**
Get keys of the given type as strings.
Number keys are converted to strings.
Use-cases:
- Get string keys from a type which may have number keys.
- Makes it possible to index using strings retrieved from template types.
@example
```
import type {StringKeyOf} from 'type-fest';
type Foo = {
1: number,
stringKey: string,
};
type StringKeysOfFoo = StringKeyOf;
//=> '1' | 'stringKey'
```
@category Object
*/
type StringKeyOf = `${Extract}`;
/**
* protolint:disable ENUM_FIELD_NAMES_PREFIX
*
* @generated from protobuf enum media.Target
*/
declare enum Target {
/**
* @generated from protobuf enum value: PUBLISHER = 0;
*/
PUBLISHER = 0,
/**
* @generated from protobuf enum value: SUBSCRIBER = 1;
*/
SUBSCRIBER = 1
}
/**
* protolint:disable ENUM_FIELD_NAMES_PREFIX
*
* @generated from protobuf enum media.ProducerKind
*/
declare enum ProducerKind {
/**
* @generated from protobuf enum value: AUDIO = 0;
*/
AUDIO = 0,
/**
* @generated from protobuf enum value: VIDEO = 1;
*/
VIDEO = 1
}
declare class Codec$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.Codec
*/
interface Codec {
/**
* @generated from protobuf field: optional int32 channels = 1;
*/
channels?: number;
/**
* @generated from protobuf field: int32 clock_rate = 2;
*/
clockRate: number;
/**
* @generated from protobuf field: string mime_type = 3;
*/
mimeType: string;
/**
* @generated from protobuf field: optional string sdp_fmtp_line = 4;
*/
sdpFmtpLine?: string;
/**
* @generated from protobuf field: optional uint32 payload_type = 5;
*/
payloadType?: number;
}
/**
* @generated MessageType for protobuf message media.Codec
*/
declare const Codec: Codec$Type;
declare class HeaderExtension$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.HeaderExtension
*/
interface HeaderExtension {
/**
* @generated from protobuf field: optional string direction = 1;
*/
direction?: string;
/**
* @generated from protobuf field: string uri = 2;
*/
uri: string;
}
/**
* @generated MessageType for protobuf message media.HeaderExtension
*/
declare const HeaderExtension: HeaderExtension$Type;
declare class SessionDescription$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.SessionDescription
*/
interface SessionDescription {
/**
* @generated from protobuf field: media.Target target = 1;
*/
target: Target;
/**
* 'offer' | 'answer'
*
* @generated from protobuf field: string type = 2;
*/
type: string;
/**
* sdp contents
*
* @generated from protobuf field: string sdp = 3;
*/
sdp: string;
}
/**
* @generated MessageType for protobuf message media.SessionDescription
*/
declare const SessionDescription: SessionDescription$Type;
declare class ProducerTrack$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.ProducerTrack
*/
interface ProducerTrack {
/**
* @generated from protobuf field: string track_id = 1;
*/
trackId: string;
/**
* @generated from protobuf field: string producer_id = 2;
*/
producerId: string;
/**
* @generated from protobuf field: string stream_id = 3;
*/
streamId: string;
}
/**
* @generated MessageType for protobuf message media.ProducerTrack
*/
declare const ProducerTrack: ProducerTrack$Type;
declare class ProducerState$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.ProducerState
*/
interface ProducerState$1 {
/**
* @generated from protobuf field: string producer_id = 1;
*/
producerId: string;
/**
* @generated from protobuf field: media.ProducerKind kind = 2;
*/
kind: ProducerKind;
/**
* @generated from protobuf field: bool pause = 3;
*/
pause: boolean;
/**
* @generated from protobuf field: bool screen_share = 4;
*/
screenShare: boolean;
/**
* @generated from protobuf field: optional string app_data = 5;
*/
appData?: string;
/**
* @generated from protobuf field: optional string producing_transport_id = 6;
*/
producingTransportId?: string;
/**
* @generated from protobuf field: optional string mime_type = 7;
*/
mimeType?: string;
/**
* @generated from protobuf field: optional media.Codec codec = 8;
*/
codec?: Codec;
}
/**
* @generated MessageType for protobuf message media.ProducerState
*/
declare const ProducerState$1: ProducerState$Type;
declare class ConsumerState$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.ConsumerState
*/
interface ConsumerState {
/**
* @generated from protobuf field: string consumer_id = 1;
*/
consumerId: string;
/**
* @generated from protobuf field: media.ProducerState producer_state = 2;
*/
producerState?: ProducerState$1;
/**
* @generated from protobuf field: media.ProducerTrack producer_track = 3;
*/
producerTrack?: ProducerTrack;
/**
* @generated from protobuf field: optional string error_code = 4;
*/
errorCode?: string;
}
/**
* @generated MessageType for protobuf message media.ConsumerState
*/
declare const ConsumerState: ConsumerState$Type;
declare class PeerRtpCapabilitites$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.PeerRtpCapabilitites
*/
interface PeerRtpCapabilitites {
/**
* @generated from protobuf field: media.RtpCapabilitites sender = 1;
*/
sender?: RtpCapabilitites;
/**
* @generated from protobuf field: media.RtpCapabilitites receiver = 2;
*/
receiver?: RtpCapabilitites;
}
/**
* @generated MessageType for protobuf message media.PeerRtpCapabilitites
*/
declare const PeerRtpCapabilitites: PeerRtpCapabilitites$Type;
declare class RtpCapability$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.RtpCapability
*/
interface RtpCapability {
/**
* @generated from protobuf field: repeated media.Codec codecs = 1;
*/
codecs: Codec[];
/**
* @generated from protobuf field: repeated media.HeaderExtension header_extensions = 2;
*/
headerExtensions: HeaderExtension[];
}
/**
* @generated MessageType for protobuf message media.RtpCapability
*/
declare const RtpCapability: RtpCapability$Type;
declare class RtpCapabilitites$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.RtpCapabilitites
*/
interface RtpCapabilitites {
/**
* @generated from protobuf field: media.RtpCapability audio = 1;
*/
audio?: RtpCapability;
/**
* @generated from protobuf field: media.RtpCapability video = 2;
*/
video?: RtpCapability;
}
/**
* @generated MessageType for protobuf message media.RtpCapabilitites
*/
declare const RtpCapabilitites: RtpCapabilitites$Type;
declare class GetRoomStateResponse$Type extends MessageType$1 {
constructor();
}
/**
* GetRoomStateResponse contains the room state sent by the hub
*
* @generated from protobuf message media.edge.GetRoomStateResponse
*/
interface GetRoomStateResponse {
/**
* @generated from protobuf field: string display_title = 1;
*/
displayTitle: string;
/**
* @generated from protobuf field: bool locked_mode = 2;
*/
lockedMode: boolean;
/**
* @generated from protobuf field: string room_uuid = 3;
*/
roomUuid: string;
/**
* @generated from protobuf field: string room_name = 4;
*/
roomName: string;
/**
* @generated from protobuf field: string current_peer_id = 5;
*/
currentPeerId: string;
/**
* @generated from protobuf field: optional bool is_recording = 6;
*/
isRecording?: boolean;
/**
* @generated from protobuf field: optional string recorder_participant_id = 7;
*/
recorderParticipantId?: string;
/**
* @generated from protobuf field: repeated string pinned_peer_ids = 8;
*/
pinnedPeerIds: string[];
}
/**
* @generated MessageType for protobuf message media.edge.GetRoomStateResponse
*/
declare const GetRoomStateResponse: GetRoomStateResponse$Type;
declare class RoomParticipants$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.RoomParticipants
*/
interface RoomParticipants {
/**
* @generated from protobuf field: string peer_id = 1;
*/
peerId: string;
/**
* @generated from protobuf field: repeated media.ProducerState producer_states = 2;
*/
producerStates: ProducerState$1[];
/**
* @generated from protobuf field: string display_name = 3;
*/
displayName: string;
/**
* @generated from protobuf field: optional string user_id = 4;
*/
userId?: string;
/**
* @generated from protobuf field: optional media.PeerRtpCapabilitites capabilities = 5;
*/
capabilities?: PeerRtpCapabilitites;
}
/**
* @generated MessageType for protobuf message media.edge.RoomParticipants
*/
declare const RoomParticipants: RoomParticipants$Type;
declare class SelectedPeersResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.SelectedPeersResponse
*/
interface SelectedPeersResponse {
/**
* @generated from protobuf field: repeated string audio_peers = 1;
*/
audioPeers: string[];
/**
* @generated from protobuf field: repeated string compulsory_peers = 2;
*/
compulsoryPeers: string[];
}
/**
* @generated MessageType for protobuf message media.edge.SelectedPeersResponse
*/
declare const SelectedPeersResponse: SelectedPeersResponse$Type;
declare class SelectedPeersDiffEntry$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.SelectedPeersDiffEntry
*/
interface SelectedPeersDiffEntry {
/**
* @generated from protobuf field: string peer_id = 1;
*/
peerId: string;
/**
* @generated from protobuf field: int32 priority = 2;
*/
priority: number;
}
/**
* @generated MessageType for protobuf message media.edge.SelectedPeersDiffEntry
*/
declare const SelectedPeersDiffEntry: SelectedPeersDiffEntry$Type;
declare class SelectedPeersDiffResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.SelectedPeersDiffResponse
*/
interface SelectedPeersDiffResponse {
/**
* @generated from protobuf field: repeated media.edge.SelectedPeersDiffEntry entries = 1;
*/
entries: SelectedPeersDiffEntry[];
}
/**
* @generated MessageType for protobuf message media.edge.SelectedPeersDiffResponse
*/
declare const SelectedPeersDiffResponse: SelectedPeersDiffResponse$Type;
declare class PeerJoinCompleteResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.PeerJoinCompleteResponse
*/
interface PeerJoinCompleteResponse {
/**
* @generated from protobuf field: optional media.edge.GetRoomStateResponse room_state = 1;
*/
roomState?: GetRoomStateResponse;
/**
* @generated from protobuf field: repeated media.edge.RoomParticipants participants = 2;
*/
participants: RoomParticipants[];
/**
* @generated from protobuf field: media.edge.SelectedPeersResponse selected_peers = 3;
*/
selectedPeers?: SelectedPeersResponse;
/**
* @generated from protobuf field: int32 max_preferred_streams = 4;
*/
maxPreferredStreams: number;
}
/**
* @generated MessageType for protobuf message media.edge.PeerJoinCompleteResponse
*/
declare const PeerJoinCompleteResponse: PeerJoinCompleteResponse$Type;
declare class PeerLeaveResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.PeerLeaveResponse
*/
interface PeerLeaveResponse {
/**
* @generated from protobuf field: bool closed = 1;
*/
closed: boolean;
}
/**
* @generated MessageType for protobuf message media.edge.PeerLeaveResponse
*/
declare const PeerLeaveResponse: PeerLeaveResponse$Type;
declare class PeerJoinBroadcastResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.PeerJoinBroadcastResponse
*/
interface PeerJoinBroadcastResponse {
/**
* @generated from protobuf field: media.edge.RoomParticipants participant = 1;
*/
participant?: RoomParticipants;
}
/**
* @generated MessageType for protobuf message media.edge.PeerJoinBroadcastResponse
*/
declare const PeerJoinBroadcastResponse: PeerJoinBroadcastResponse$Type;
declare class GlobalPeerPinningBroadcastResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message media.edge.GlobalPeerPinningBroadcastResponse
*/
interface GlobalPeerPinningBroadcastResponse {
/**
* @generated from protobuf field: string participant_id = 1;
*/
participantId: string;
}
/**
* @generated MessageType for protobuf message media.edge.GlobalPeerPinningBroadcastResponse
*/
declare const GlobalPeerPinningBroadcastResponse: GlobalPeerPinningBroadcastResponse$Type;
/**
* protolint:disable ENUM_FIELD_NAMES_PREFIX
*
* @generated from protobuf enum common.RecordingType
*/
declare enum RecordingType$1 {
/**
* @generated from protobuf enum value: BROWSER = 0;
*/
BROWSER = 0,
/**
* @generated from protobuf enum value: TRACK = 1;
*/
TRACK = 1,
/**
* @generated from protobuf enum value: COMPOSITE = 2;
*/
COMPOSITE = 2
}
/**
* @generated from protobuf enum socket.room.StageType
*/
declare enum StageType {
/**
* @generated from protobuf enum value: STAGE_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from protobuf enum value: STAGE_TYPE_ON_STAGE = 1;
*/
ON_STAGE = 1,
/**
* @generated from protobuf enum value: STAGE_TYPE_APPROVED_STAGE = 2;
*/
APPROVED_STAGE = 2,
/**
* @generated from protobuf enum value: STAGE_TYPE_REQUESTED_STAGE = 3;
*/
REQUESTED_STAGE = 3,
/**
* @generated from protobuf enum value: STAGE_TYPE_OFF_STAGE = 4;
*/
OFF_STAGE = 4
}
/**
* @generated from protobuf enum socket.room.RecorderType
*/
declare enum RecorderType {
/**
* @generated from protobuf enum value: RECORDER_TYPE_NONE = 0;
*/
NONE = 0,
/**
* @generated from protobuf enum value: RECORDER_TYPE_RECORDER = 1;
*/
RECORDER = 1,
/**
* @generated from protobuf enum value: RECORDER_TYPE_LIVESTREAMER = 2;
*/
LIVESTREAMER = 2
}
/**
* @generated from protobuf enum socket.room.Capabilities
*/
declare enum Capabilities {
/**
* @generated from protobuf enum value: CAPABILITIES_HIVE = 0;
*/
HIVE = 0,
/**
* @generated from protobuf enum value: CAPABILITIES_CHAT = 1;
*/
CHAT = 1,
/**
* @generated from protobuf enum value: CAPABILITIES_PING = 2;
*/
PING = 2
}
declare class PeerFlags$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.PeerFlags
*/
interface PeerFlags {
/**
* @generated from protobuf field: string preset_name = 1;
*/
presetName: string;
/**
* @generated from protobuf field: string recorder_type = 2;
*/
recorderType: string;
/**
* @generated from protobuf field: bool hidden_participant = 3;
*/
hiddenParticipant: boolean;
}
/**
* @generated MessageType for protobuf message socket.room.PeerFlags
*/
declare const PeerFlags: PeerFlags$Type;
declare class Peer$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.Peer
*/
interface Peer {
/**
* @generated from protobuf field: string peer_id = 1;
*/
peerId: string;
/**
* @generated from protobuf field: string user_id = 2;
*/
userId: string;
/**
* @generated from protobuf field: string display_name = 3;
*/
displayName: string;
/**
* @generated from protobuf field: optional socket.room.StageType stage_type = 4;
*/
stageType?: StageType;
/**
* @generated from protobuf field: optional string custom_participant_id = 5;
*/
customParticipantId?: string;
/**
* @generated from protobuf field: optional string preset_id = 6;
*/
presetId?: string;
/**
* @generated from protobuf field: optional string display_picture_url = 7;
*/
displayPictureUrl?: string;
/**
* @generated from protobuf field: bool waitlisted = 8;
*/
waitlisted: boolean;
/**
* @generated from protobuf field: socket.room.PeerFlags flags = 9;
*/
flags?: PeerFlags;
}
/**
* @generated MessageType for protobuf message socket.room.Peer
*/
declare const Peer: Peer$Type;
declare class PeerInfoResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.PeerInfoResponse
*/
interface PeerInfoResponse {
/**
* @generated from protobuf field: socket.room.Peer peer = 1;
*/
peer?: Peer;
}
/**
* @generated MessageType for protobuf message socket.room.PeerInfoResponse
*/
declare const PeerInfoResponse: PeerInfoResponse$Type;
declare class PeerStatusUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.PeerStatusUpdate
*/
interface PeerStatusUpdate {
/**
* @generated from protobuf field: string peer_id = 1;
*/
peerId: string;
/**
* @generated from protobuf field: string user_id = 2;
*/
userId: string;
/**
* @generated from protobuf field: optional socket.room.StageType stage_type = 3;
*/
stageType?: StageType;
}
/**
* @generated MessageType for protobuf message socket.room.PeerStatusUpdate
*/
declare const PeerStatusUpdate: PeerStatusUpdate$Type;
declare class RoomPeersInfoResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.RoomPeersInfoResponse
*/
interface RoomPeersInfoResponse {
/**
* @generated from protobuf field: repeated socket.room.Peer peers = 1;
*/
peers: Peer[];
}
/**
* @generated MessageType for protobuf message socket.room.RoomPeersInfoResponse
*/
declare const RoomPeersInfoResponse: RoomPeersInfoResponse$Type;
declare class Room$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.Room
*/
interface Room {
/**
* @generated from protobuf field: string room_id = 1;
*/
roomId: string;
/**
* @generated from protobuf field: string title = 2;
*/
title: string;
/**
* @generated from protobuf field: uint64 created_at = 4 [jstype = JS_NUMBER];
*/
createdAt: number;
/**
* @generated from protobuf field: repeated socket.room.ActiveRecording active_recordings = 5;
*/
activeRecordings: ActiveRecording[];
/**
* @generated from protobuf field: optional string room_uuid = 6;
*/
roomUuid?: string;
}
/**
* @generated MessageType for protobuf message socket.room.Room
*/
declare const Room: Room$Type;
declare class ActiveRecording$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.ActiveRecording
*/
interface ActiveRecording {
/**
* @generated from protobuf field: string recording_id = 1;
*/
recordingId: string;
/**
* @generated from protobuf field: common.RecordingType recording_type = 2;
*/
recordingType: RecordingType$1;
/**
* @generated from protobuf field: string recording_status = 3;
*/
recordingStatus: string;
}
/**
* @generated MessageType for protobuf message socket.room.ActiveRecording
*/
declare const ActiveRecording: ActiveRecording$Type;
declare class RoomInfoResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.RoomInfoResponse
*/
interface RoomInfoResponse {
/**
* @generated from protobuf field: socket.room.Room room = 1;
*/
room?: Room;
}
/**
* @generated MessageType for protobuf message socket.room.RoomInfoResponse
*/
declare const RoomInfoResponse: RoomInfoResponse$Type;
declare class CreateRoomRequestPayload$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.CreateRoomRequestPayload
*/
interface CreateRoomRequestPayload {
/**
* @generated from protobuf field: optional string title = 1;
*/
title?: string;
}
/**
* @generated MessageType for protobuf message socket.room.CreateRoomRequestPayload
*/
declare const CreateRoomRequestPayload: CreateRoomRequestPayload$Type;
declare class UpdateRoomRequestPayload$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.UpdateRoomRequestPayload
*/
interface UpdateRoomRequestPayload {
/**
* @generated from protobuf field: optional string meeting_id = 1;
*/
meetingId?: string;
/**
* @generated from protobuf field: optional string title = 2;
*/
title?: string;
}
/**
* @generated MessageType for protobuf message socket.room.UpdateRoomRequestPayload
*/
declare const UpdateRoomRequestPayload: UpdateRoomRequestPayload$Type;
declare class MovePeerPayload$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.MovePeerPayload
*/
interface MovePeerPayload {
/**
* @generated from protobuf field: optional string id = 1;
*/
id?: string;
/**
* @generated from protobuf field: optional string preset_id = 2;
*/
presetId?: string;
}
/**
* @generated MessageType for protobuf message socket.room.MovePeerPayload
*/
declare const MovePeerPayload: MovePeerPayload$Type;
declare class MovePeersBetweenRoomsRequest$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.MovePeersBetweenRoomsRequest
*/
interface MovePeersBetweenRoomsRequest {
/**
* @generated from protobuf field: optional string source_meeting_id = 1;
*/
sourceMeetingId?: string;
/**
* @generated from protobuf field: optional string destination_meeting_id = 2;
*/
destinationMeetingId?: string;
/**
* @generated from protobuf field: repeated socket.room.MovePeerPayload participants = 3;
*/
participants: MovePeerPayload[];
}
/**
* @generated MessageType for protobuf message socket.room.MovePeersBetweenRoomsRequest
*/
declare const MovePeersBetweenRoomsRequest: MovePeersBetweenRoomsRequest$Type;
declare class WaitingRoomRequest$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.WaitingRoomRequest
*/
interface WaitingRoomRequest {
/**
* @generated from protobuf field: string peer_id = 1;
*/
peerId: string;
/**
* @generated from protobuf field: string user_id = 2;
*/
userId: string;
/**
* @generated from protobuf field: string display_name = 3;
*/
displayName: string;
/**
* @generated from protobuf field: optional string picture = 4;
*/
picture?: string;
/**
* @generated from protobuf field: optional string custom_participant_id = 5;
*/
customParticipantId?: string;
/**
* @generated from protobuf field: optional string preset_name = 6;
*/
presetName?: string;
}
/**
* @generated MessageType for protobuf message socket.room.WaitingRoomRequest
*/
declare const WaitingRoomRequest: WaitingRoomRequest$Type;
declare class GetWaitingRoomRequests$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.room.GetWaitingRoomRequests
*/
interface GetWaitingRoomRequests {
/**
* @generated from protobuf field: repeated socket.room.WaitingRoomRequest requests = 1;
*/
requests: WaitingRoomRequest[];
}
/**
* @generated MessageType for protobuf message socket.room.GetWaitingRoomRequests
*/
declare const GetWaitingRoomRequests: GetWaitingRoomRequests$Type;
declare class GetRoomStageStateResponse$Type extends MessageType$1 {
constructor();
}
/**
* not adding off stage array, as remaining will be off stage
*
* @generated from protobuf message socket.room.GetRoomStageStateResponse
*/
interface GetRoomStageStateResponse {
/**
* @generated from protobuf field: repeated string on_stage_peers = 1;
*/
onStagePeers: string[];
/**
* @generated from protobuf field: repeated string approved_stage_peers = 2;
*/
approvedStagePeers: string[];
/**
* @generated from protobuf field: repeated string requested_stage_peers = 3;
*/
requestedStagePeers: string[];
}
/**
* @generated MessageType for protobuf message socket.room.GetRoomStageStateResponse
*/
declare const GetRoomStageStateResponse: GetRoomStageStateResponse$Type;
/**
* @generated from protobuf enum socket.preset.WaitingRoomType
*/
declare enum WaitingRoomType {
/**
* @generated from protobuf enum value: WAITING_ROOM_TYPE_NONE = 0;
*/
NONE = 0,
/**
* @generated from protobuf enum value: WAITING_ROOM_TYPE_SKIP = 1;
*/
SKIP = 1,
/**
* @generated from protobuf enum value: WAITING_ROOM_TYPE_ON_PRIVILEGED_USER_ENTRY = 2;
*/
ON_PRIVILEGED_USER_ENTRY = 2,
/**
* @generated from protobuf enum value: WAITING_ROOM_TYPE_SKIP_ON_ACCEPT = 3;
*/
SKIP_ON_ACCEPT = 3
}
/**
* @generated from protobuf enum socket.preset.StreamPermissionType
*/
declare enum StreamPermissionType {
/**
* @generated from protobuf enum value: STREAM_PERMISSION_TYPE_NONE = 0;
*/
NONE = 0,
/**
* @generated from protobuf enum value: STREAM_PERMISSION_TYPE_ALLOWED = 1;
*/
ALLOWED = 1,
/**
* @generated from protobuf enum value: STREAM_PERMISSION_TYPE_NOT_ALLOWED = 2;
*/
NOT_ALLOWED = 2,
/**
* @generated from protobuf enum value: STREAM_PERMISSION_TYPE_CAN_REQUEST = 3;
*/
CAN_REQUEST = 3
}
declare class PollsPermissionUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.PollsPermissionUpdate
*/
interface PollsPermissionUpdate {
/**
* @generated from protobuf field: optional bool can_create = 1;
*/
canCreate?: boolean;
/**
* @generated from protobuf field: optional bool can_vote = 2;
*/
canVote?: boolean;
/**
* @generated from protobuf field: optional bool can_view = 3;
*/
canView?: boolean;
}
/**
* @generated MessageType for protobuf message socket.preset.PollsPermissionUpdate
*/
declare const PollsPermissionUpdate: PollsPermissionUpdate$Type;
declare class PluginsPermissionsUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.PluginsPermissionsUpdate
*/
interface PluginsPermissionsUpdate {
/**
* @generated from protobuf field: optional bool can_close = 1;
*/
canClose?: boolean;
/**
* @generated from protobuf field: optional bool can_start = 2;
*/
canStart?: boolean;
}
/**
* @generated MessageType for protobuf message socket.preset.PluginsPermissionsUpdate
*/
declare const PluginsPermissionsUpdate: PluginsPermissionsUpdate$Type;
declare class PublicChatPermission$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.PublicChatPermission
*/
interface PublicChatPermission {
/**
* @generated from protobuf field: optional bool can_send = 1;
*/
canSend?: boolean;
/**
* @generated from protobuf field: optional bool text = 2;
*/
text?: boolean;
/**
* @generated from protobuf field: optional bool files = 3;
*/
files?: boolean;
}
/**
* @generated MessageType for protobuf message socket.preset.PublicChatPermission
*/
declare const PublicChatPermission: PublicChatPermission$Type;
declare class PrivateChatPermission$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.PrivateChatPermission
*/
interface PrivateChatPermission {
/**
* @generated from protobuf field: optional bool can_send = 1;
*/
canSend?: boolean;
/**
* @generated from protobuf field: optional bool can_receive = 2;
*/
canReceive?: boolean;
/**
* @generated from protobuf field: optional bool text = 3;
*/
text?: boolean;
/**
* @generated from protobuf field: optional bool files = 4;
*/
files?: boolean;
}
/**
* @generated MessageType for protobuf message socket.preset.PrivateChatPermission
*/
declare const PrivateChatPermission: PrivateChatPermission$Type;
declare class ChatPermissionUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.ChatPermissionUpdate
*/
interface ChatPermissionUpdate {
/**
* @generated from protobuf field: optional socket.preset.PublicChatPermission public = 1;
*/
public?: PublicChatPermission;
/**
* @generated from protobuf field: optional socket.preset.PrivateChatPermission private = 2;
*/
private?: PrivateChatPermission;
}
/**
* @generated MessageType for protobuf message socket.preset.ChatPermissionUpdate
*/
declare const ChatPermissionUpdate: ChatPermissionUpdate$Type;
declare class ConnectedMeetingPermissionUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.ConnectedMeetingPermissionUpdate
*/
interface ConnectedMeetingPermissionUpdate {
/**
* @generated from protobuf field: optional bool can_alter_connected_meetings = 1;
*/
canAlterConnectedMeetings?: boolean;
/**
* @generated from protobuf field: optional bool can_switch_to_parent_meeting = 2;
*/
canSwitchToParentMeeting?: boolean;
/**
* @generated from protobuf field: optional bool can_switch_connected_meetings = 3;
*/
canSwitchConnectedMeetings?: boolean;
}
/**
* @generated MessageType for protobuf message socket.preset.ConnectedMeetingPermissionUpdate
*/
declare const ConnectedMeetingPermissionUpdate: ConnectedMeetingPermissionUpdate$Type;
declare class StreamPermission$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.StreamPermission
*/
interface StreamPermission {
/**
* @generated from protobuf field: optional socket.preset.StreamPermissionType can_produce = 1;
*/
canProduce?: StreamPermissionType;
/**
* @generated from protobuf field: optional socket.preset.StreamPermissionType can_consume = 2;
*/
canConsume?: StreamPermissionType;
}
/**
* @generated MessageType for protobuf message socket.preset.StreamPermission
*/
declare const StreamPermission: StreamPermission$Type;
declare class MediaPermissionUpdate$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.MediaPermissionUpdate
*/
interface MediaPermissionUpdate {
/**
* @generated from protobuf field: optional socket.preset.StreamPermission video = 1;
*/
video?: StreamPermission;
/**
* @generated from protobuf field: optional socket.preset.StreamPermission audio = 2;
*/
audio?: StreamPermission;
/**
* @generated from protobuf field: optional socket.preset.StreamPermission screenshare = 3;
*/
screenshare?: StreamPermission;
}
/**
* @generated MessageType for protobuf message socket.preset.MediaPermissionUpdate
*/
declare const MediaPermissionUpdate: MediaPermissionUpdate$Type;
declare class PresetUpdates$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.PresetUpdates
*/
interface PresetUpdates {
/**
* @generated from protobuf field: optional socket.preset.PollsPermissionUpdate polls = 1;
*/
polls?: PollsPermissionUpdate;
/**
* @generated from protobuf field: optional socket.preset.PluginsPermissionsUpdate plugins = 2;
*/
plugins?: PluginsPermissionsUpdate;
/**
* @generated from protobuf field: optional socket.preset.ChatPermissionUpdate chat = 3;
*/
chat?: ChatPermissionUpdate;
/**
* @generated from protobuf field: optional bool accept_waiting_requests = 4;
*/
acceptWaitingRequests?: boolean;
/**
* @generated from protobuf field: optional bool can_accept_production_requests = 5;
*/
canAcceptProductionRequests?: boolean;
/**
* @generated from protobuf field: optional bool can_edit_display_name = 6;
*/
canEditDisplayName?: boolean;
/**
* @generated from protobuf field: optional bool can_record = 7;
*/
canRecord?: boolean;
/**
* @generated from protobuf field: optional bool can_livestream = 8;
*/
canLivestream?: boolean;
/**
* @generated from protobuf field: optional bool can_spotlight = 9;
*/
canSpotlight?: boolean;
/**
* @generated from protobuf field: optional bool disable_participant_audio = 10;
*/
disableParticipantAudio?: boolean;
/**
* @generated from protobuf field: optional bool disable_participant_screensharing = 11;
*/
disableParticipantScreensharing?: boolean;
/**
* @generated from protobuf field: optional bool disable_participant_video = 12;
*/
disableParticipantVideo?: boolean;
/**
* @generated from protobuf field: optional bool kick_participant = 13;
*/
kickParticipant?: boolean;
/**
* @generated from protobuf field: optional bool pin_participant = 14;
*/
pinParticipant?: boolean;
/**
* @generated from protobuf field: optional bool transcription_enabled = 15;
*/
transcriptionEnabled?: boolean;
/**
* @generated from protobuf field: optional socket.preset.WaitingRoomType waiting_room_type = 16;
*/
waitingRoomType?: WaitingRoomType;
/**
* @generated from protobuf field: optional bool is_recorder = 17;
*/
isRecorder?: boolean;
/**
* @generated from protobuf field: optional socket.room.RecorderType recorder_type = 18;
*/
recorderType?: RecorderType;
/**
* @generated from protobuf field: optional bool hidden_participant = 19;
*/
hiddenParticipant?: boolean;
/**
* @generated from protobuf field: optional bool show_participant_list = 20;
*/
showParticipantList?: boolean;
/**
* @generated from protobuf field: optional bool can_change_participant_permissions = 21;
*/
canChangeParticipantPermissions?: boolean;
/**
* @generated from protobuf field: optional socket.preset.ConnectedMeetingPermissionUpdate connected_meetings = 22;
*/
connectedMeetings?: ConnectedMeetingPermissionUpdate;
/**
* @generated from protobuf field: optional socket.preset.MediaPermissionUpdate media = 23;
*/
media?: MediaPermissionUpdate;
}
/**
* @generated MessageType for protobuf message socket.preset.PresetUpdates
*/
declare const PresetUpdates: PresetUpdates$Type;
declare class UpdatePeerPreset$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.UpdatePeerPreset
*/
interface UpdatePeerPreset {
/**
* @generated from protobuf field: string user_ids = 1;
*/
userIds: string;
/**
* @generated from protobuf field: socket.preset.PresetUpdates patch = 2;
*/
patch?: PresetUpdates;
}
/**
* @generated MessageType for protobuf message socket.preset.UpdatePeerPreset
*/
declare const UpdatePeerPreset: UpdatePeerPreset$Type;
declare class UpdatePeersPresetResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.preset.UpdatePeersPresetResponse
*/
interface UpdatePeersPresetResponse {
/**
* @generated from protobuf field: repeated socket.preset.UpdatePeerPreset update_peers_presets = 1;
*/
updatePeersPresets: UpdatePeerPreset[];
}
/**
* @generated MessageType for protobuf message socket.preset.UpdatePeersPresetResponse
*/
declare const UpdatePeersPresetResponse: UpdatePeersPresetResponse$Type;
declare class ChatMessage$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.ChatMessage
*/
interface ChatMessage {
/**
* @generated from protobuf field: string chat_id = 1;
*/
chatId: string;
/**
* @generated from protobuf field: string peer_id = 2;
*/
peerId: string;
/**
* @generated from protobuf field: string user_id = 3;
*/
userId: string;
/**
* @generated from protobuf field: string display_name = 4;
*/
displayName: string;
/**
* @generated from protobuf field: bool pinned = 5;
*/
pinned: boolean;
/**
* @generated from protobuf field: bool is_edited = 6;
*/
isEdited: boolean;
/**
* @generated from protobuf field: int32 payload_type = 7;
*/
payloadType: number;
/**
* @generated from protobuf field: string payload = 8;
*/
payload: string;
/**
* @generated from protobuf field: repeated string target_user_ids = 10;
*/
targetUserIds: string[];
/**
* @generated from protobuf field: uint64 created_at = 11 [jstype = JS_NUMBER];
*/
createdAt: number;
/**
* @generated from protobuf field: optional uint64 created_at_ms = 12 [jstype = JS_NUMBER];
*/
createdAtMs?: number;
/**
* @generated from protobuf field: optional string channel_id = 13;
*/
channelId?: string;
/**
* The index of this message within it's channel
*
* @generated from protobuf field: optional string channel_index = 14;
*/
channelIndex?: string;
}
/**
* @generated MessageType for protobuf message socket.chat.ChatMessage
*/
declare const ChatMessage: ChatMessage$Type;
declare class GetPaginatedChatMessageRoomResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.GetPaginatedChatMessageRoomResponse
*/
interface GetPaginatedChatMessageRoomResponse {
/**
* @generated from protobuf field: repeated socket.chat.ChatMessage messages = 1;
*/
messages: ChatMessage[];
/**
* @generated from protobuf field: bool next = 2;
*/
next: boolean;
}
/**
* @generated MessageType for protobuf message socket.chat.GetPaginatedChatMessageRoomResponse
*/
declare const GetPaginatedChatMessageRoomResponse: GetPaginatedChatMessageRoomResponse$Type;
declare class SendChatMessageToRoomResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.SendChatMessageToRoomResponse
*/
interface SendChatMessageToRoomResponse {
/**
* @generated from protobuf field: socket.chat.ChatMessage message = 1;
*/
message?: ChatMessage;
}
/**
* @generated MessageType for protobuf message socket.chat.SendChatMessageToRoomResponse
*/
declare const SendChatMessageToRoomResponse: SendChatMessageToRoomResponse$Type;
declare class SendChatMessageToPeersResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.SendChatMessageToPeersResponse
*/
interface SendChatMessageToPeersResponse {
/**
* @generated from protobuf field: socket.chat.ChatMessage message = 1;
*/
message?: ChatMessage;
}
/**
* @generated MessageType for protobuf message socket.chat.SendChatMessageToPeersResponse
*/
declare const SendChatMessageToPeersResponse: SendChatMessageToPeersResponse$Type;
declare class PinChatMessageResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.PinChatMessageResponse
*/
interface PinChatMessageResponse {
/**
* @generated from protobuf field: string chat_id = 1;
*/
chatId: string;
/**
* @generated from protobuf field: bool pinned = 2;
*/
pinned: boolean;
/**
* @generated from protobuf field: optional string channel_id = 3;
*/
channelId?: string;
}
/**
* @generated MessageType for protobuf message socket.chat.PinChatMessageResponse
*/
declare const PinChatMessageResponse: PinChatMessageResponse$Type;
declare class EditChatMessageResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.EditChatMessageResponse
*/
interface EditChatMessageResponse {
/**
* @generated from protobuf field: socket.chat.ChatMessage message = 1;
*/
message?: ChatMessage;
}
/**
* @generated MessageType for protobuf message socket.chat.EditChatMessageResponse
*/
declare const EditChatMessageResponse: EditChatMessageResponse$Type;
declare class DeleteChatMessageResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.DeleteChatMessageResponse
*/
interface DeleteChatMessageResponse {
/**
* @generated from protobuf field: string chat_id = 1;
*/
chatId: string;
/**
* @generated from protobuf field: optional string channel_id = 2;
*/
channelId?: string;
}
/**
* @generated MessageType for protobuf message socket.chat.DeleteChatMessageResponse
*/
declare const DeleteChatMessageResponse: DeleteChatMessageResponse$Type;
declare class LatestMessageAndUnreadCount$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.LatestMessageAndUnreadCount
*/
interface LatestMessageAndUnreadCount {
/**
* @generated from protobuf field: optional socket.chat.ChatMessage message = 1;
*/
message?: ChatMessage;
/**
* @generated from protobuf field: uint64 unread_count = 2 [jstype = JS_NUMBER];
*/
unreadCount: number;
}
/**
* @generated MessageType for protobuf message socket.chat.LatestMessageAndUnreadCount
*/
declare const LatestMessageAndUnreadCount: LatestMessageAndUnreadCount$Type;
declare class ChatChannel$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.ChatChannel
*/
interface ChatChannel$1 {
/**
* @generated from protobuf field: string chat_channel_id = 1;
*/
chatChannelId: string;
/**
* @generated from protobuf field: string display_name = 2;
*/
displayName: string;
/**
* @generated from protobuf field: optional string display_picture_url = 3;
*/
displayPictureUrl?: string;
/**
* @generated from protobuf field: string visibility = 4;
*/
visibility: string;
/**
* @generated from protobuf field: bool is_direct_message = 5;
*/
isDirectMessage: boolean;
/**
* @generated from protobuf field: socket.chat.LatestMessageAndUnreadCount latest_message_and_unread_count = 6;
*/
latestMessageAndUnreadCount?: LatestMessageAndUnreadCount;
/**
* @generated from protobuf field: repeated string target_user_ids = 7;
*/
targetUserIds: string[];
}
/**
* @generated MessageType for protobuf message socket.chat.ChatChannel
*/
declare const ChatChannel$1: ChatChannel$Type;
declare class GetChatChannelResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.chat.GetChatChannelResponse
*/
interface GetChatChannelResponse {
/**
* @generated from protobuf field: repeated socket.chat.ChatChannel chat_channels = 1;
*/
chatChannels: ChatChannel$1[];
}
/**
* @generated MessageType for protobuf message socket.chat.GetChatChannelResponse
*/
declare const GetChatChannelResponse: GetChatChannelResponse$Type;
declare class EnablePluginResponse$Type extends MessageType$1 {
constructor();
}
/**
* Response sent whenever a plugin is enabled.
* Applicable for all requests that enable a plugin.
*
* @generated from protobuf message socket.plugin.EnablePluginResponse
*/
interface EnablePluginResponse {
/**
* @generated from protobuf field: string plugin_id = 1;
*/
pluginId: string;
/**
* @generated from protobuf field: string enabled_by = 2;
*/
enabledBy: string;
}
/**
* @generated MessageType for protobuf message socket.plugin.EnablePluginResponse
*/
declare const EnablePluginResponse: EnablePluginResponse$Type;
declare class EnablePluginsResponse$Type extends MessageType$1 {
constructor();
}
/**
* Response sent when all enabled plugins are requested.
*
* @generated from protobuf message socket.plugin.EnablePluginsResponse
*/
interface EnablePluginsResponse {
/**
* @generated from protobuf field: repeated socket.plugin.EnablePluginResponse plugins = 1;
*/
plugins: EnablePluginResponse[];
}
/**
* @generated MessageType for protobuf message socket.plugin.EnablePluginsResponse
*/
declare const EnablePluginsResponse: EnablePluginsResponse$Type;
declare class DisablePluginResponse$Type extends MessageType$1 {
constructor();
}
/**
* Response sent whenever a plugin is disabled.
* Applicable for all requests that disable a plugin.
*
* @generated from protobuf message socket.plugin.DisablePluginResponse
*/
interface DisablePluginResponse {
/**
* @generated from protobuf field: string plugin_id = 1;
*/
pluginId: string;
/**
* @generated from protobuf field: string disabled_by = 2;
*/
disabledBy: string;
}
/**
* @generated MessageType for protobuf message socket.plugin.DisablePluginResponse
*/
declare const DisablePluginResponse: DisablePluginResponse$Type;
declare class PluginStoreItem$Type extends MessageType$1 {
constructor();
}
/**
* Response sent whenever a plugin store is updated.
* Applicable for all requests that access a store.
*
* @generated from protobuf message socket.plugin.PluginStoreItem
*/
interface PluginStoreItem {
/**
* @generated from protobuf field: string timestamp = 1;
*/
timestamp: string;
/**
* @generated from protobuf field: string peer_id = 2;
*/
peerId: string;
/**
* @generated from protobuf field: string store_key = 3;
*/
storeKey: string;
/**
* @generated from protobuf field: bytes payload = 4;
*/
payload: Uint8Array;
}
/**
* @generated MessageType for protobuf message socket.plugin.PluginStoreItem
*/
declare const PluginStoreItem: PluginStoreItem$Type;
declare class PluginStoreResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.plugin.PluginStoreResponse
*/
interface PluginStoreResponse {
/**
* @generated from protobuf field: string plugin_id = 1;
*/
pluginId: string;
/**
* @generated from protobuf field: string store_name = 2;
*/
storeName: string;
/**
* @generated from protobuf field: repeated socket.plugin.PluginStoreItem store_items = 3;
*/
storeItems: PluginStoreItem[];
}
/**
* @generated MessageType for protobuf message socket.plugin.PluginStoreResponse
*/
declare const PluginStoreResponse: PluginStoreResponse$Type;
declare class PluginEventResponse$Type extends MessageType$1 {
constructor();
}
/**
* Response sent for custom plugin event.
*
* @generated from protobuf message socket.plugin.PluginEventResponse
*/
interface PluginEventResponse {
/**
* @generated from protobuf field: string plugin_id = 1;
*/
pluginId: string;
/**
* @generated from protobuf field: bytes plugin_data = 2;
*/
pluginData: Uint8Array;
}
/**
* @generated MessageType for protobuf message socket.plugin.PluginEventResponse
*/
declare const PluginEventResponse: PluginEventResponse$Type;
declare class GetStagePeersResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.livestreaming.GetStagePeersResponse
*/
interface GetStagePeersResponse {
/**
* @generated from protobuf field: repeated string stage_peers = 1;
*/
stagePeers: string[];
}
/**
* @generated MessageType for protobuf message socket.livestreaming.GetStagePeersResponse
*/
declare const GetStagePeersResponse: GetStagePeersResponse$Type;
declare class StageRequest$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.livestreaming.StageRequest
*/
interface StageRequest {
/**
* @generated from protobuf field: string display_name = 1;
*/
displayName: string;
/**
* @generated from protobuf field: string user_id = 2;
*/
userId: string;
/**
* @generated from protobuf field: string peer_id = 3;
*/
peerId: string;
}
/**
* @generated MessageType for protobuf message socket.livestreaming.StageRequest
*/
declare const StageRequest: StageRequest$Type;
declare class GetStageRequestsResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.livestreaming.GetStageRequestsResponse
*/
interface GetStageRequestsResponse {
/**
* @generated from protobuf field: repeated socket.livestreaming.StageRequest stage_requests = 1;
*/
stageRequests: StageRequest[];
}
/**
* @generated MessageType for protobuf message socket.livestreaming.GetStageRequestsResponse
*/
declare const GetStageRequestsResponse: GetStageRequestsResponse$Type;
declare class DenyStageAccessRequest$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.livestreaming.DenyStageAccessRequest
*/
interface DenyStageAccessRequest {
/**
* @generated from protobuf field: repeated string user_ids = 1;
*/
userIds: string[];
}
/**
* @generated MessageType for protobuf message socket.livestreaming.DenyStageAccessRequest
*/
declare const DenyStageAccessRequest: DenyStageAccessRequest$Type;
declare class Poll$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.polls.Poll
*/
interface Poll$1 {
/**
* @generated from protobuf field: string poll_id = 1;
*/
pollId: string;
/**
* @generated from protobuf field: string created_by = 2;
*/
createdBy: string;
/**
* @generated from protobuf field: string created_by_user_id = 3;
*/
createdByUserId: string;
/**
* @generated from protobuf field: string question = 4;
*/
question: string;
/**
* @generated from protobuf field: repeated socket.polls.PollOption options = 5;
*/
options: PollOption$1[];
/**
* @generated from protobuf field: bool hide_votes = 6;
*/
hideVotes: boolean;
/**
* @generated from protobuf field: bool anonymous = 7;
*/
anonymous: boolean;
/**
* @generated from protobuf field: repeated string votes = 8;
*/
votes: string[];
}
/**
* @generated MessageType for protobuf message socket.polls.Poll
*/
declare const Poll$1: Poll$Type;
declare class PollOption$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.polls.PollOption
*/
interface PollOption$1 {
/**
* @generated from protobuf field: string text = 1;
*/
text: string;
/**
* @generated from protobuf field: optional uint64 count = 2 [jstype = JS_NUMBER];
*/
count?: number;
/**
* @generated from protobuf field: repeated socket.polls.PollVote votes = 3;
*/
votes: PollVote[];
}
/**
* @generated MessageType for protobuf message socket.polls.PollOption
*/
declare const PollOption$1: PollOption$Type;
declare class PollVote$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.polls.PollVote
*/
interface PollVote {
/**
* @generated from protobuf field: string user_id = 1;
*/
userId: string;
/**
* @generated from protobuf field: string name = 2;
*/
name: string;
}
/**
* @generated MessageType for protobuf message socket.polls.PollVote
*/
declare const PollVote: PollVote$Type;
declare class UpdatePollResponse$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.polls.UpdatePollResponse
*/
interface UpdatePollResponse {
/**
* @generated from protobuf field: socket.polls.Poll poll = 1;
*/
poll?: Poll$1;
}
/**
* @generated MessageType for protobuf message socket.polls.UpdatePollResponse
*/
declare const UpdatePollResponse: UpdatePollResponse$Type;
declare class RecordingEvent$Type extends MessageType$1 {
constructor();
}
/**
* @generated from protobuf message socket.recording.RecordingEvent
*/
interface RecordingEvent {
/**
* @generated from protobuf field: string recording_id = 1;
*/
recordingId: string;
/**
* @generated from protobuf field: string err_message = 2;
*/
errMessage: string;
/**
* @generated from protobuf field: common.RecordingType recording_type = 3;
*/
recordingType: RecordingType$1;
}
/**
* @generated MessageType for protobuf message socket.recording.RecordingEvent
*/
declare const RecordingEvent: RecordingEvent$Type;
interface DeviceInfo$1 {
isMobile: boolean;
browserName: string;
browserVersion: string;
osName: string;
osVersionName: string;
engineName: string;
userAgent: string;
cpus: number;
memory?: number;
webglSupport?: number;
}
interface GeoLocation {
coords: {
latitude: number;
longitude: number;
};
}
interface IPDetails {
ip: string;
city: string;
region: string;
country: string;
loc: string | GeoLocation;
org: string;
portal: string;
timezone: string;
}
interface ThroughputInformation {
throughput: number;
fractionalLoss: number;
RTT: number;
jitter: number;
backendRTT: number;
}
interface IceConnectivity {
host: boolean;
relay: boolean;
reflexive: boolean;
}
interface NetworkQualityInformation extends ThroughputInformation {
connectivity: IceConnectivity;
}
interface NetworkInformation extends NetworkQualityInformation {
ipDetails: IPDetails;
location: GeoLocation;
turnConnectivity: boolean;
effectiveNetworkType: string;
}
interface NetworkInformationWithoutConnectivityData {
ipDetails: IPDetails;
location: GeoLocation;
effectiveNetworkType: string;
}
type RTCDtlsTransportState = 'closed' | 'connected' | 'connecting' | 'failed' | 'new';
type RTCIceRole = 'controlled' | 'controlling' | 'unknown';
interface VideoStreamStats {
frameHeight: number;
frameWidth: number;
droppedFrames?: number;
framerateMean?: number;
framesDropped: number;
framesPerSecond: number;
firCount: number;
}
interface AudioStreamStats {
}
interface InboundStreamStats {
codecId: string;
bytesReceived: number;
headerBytesReceived: number;
packetsReceived: number;
packetsLost: number;
packetsDiscarded: number;
jitter: number;
nackCount: number;
jitterBufferDelay: number;
jitterBufferEmittedCount: number;
jitterBufferMinimumDelay: number;
jitterBufferTargetDelay: number;
lastPacketReceivedTimestamp: number;
ssrc: number;
mid: string;
score?: number;
}
interface RemoteInboundStreamStats {
jitter: number;
fractionLost: number;
roundTripTime: number;
roundTripTimeMeasurements: number;
totalRoundTripTime: number;
packetsLost: number;
localId?: string;
}
interface OutboundStreamStats {
active: boolean;
codecId: string;
headerBytesSent: number;
totalPacketSendDelay: number;
bytesSent: number;
packetsSent: number;
retransmittedBytesSent?: number;
retransmittedPacketsSent?: number;
remoteData?: RemoteInboundStreamStats;
nackCount: number;
ssrc: number;
mid: string;
score?: number;
}
interface InboundVideoStreamStats extends VideoStreamStats, InboundStreamStats {
qpSum: number;
totalAssemblyTime: number;
totalDecodeTime: number;
totalFreezesDuration: number;
totalInterFrameDelay: number;
totalPausesDuration: number;
totalSquaredInterFrameDelay: number;
framesDecoded: number;
framesDropped: number;
keyFramesDecoded: number;
freezeCount: number;
framesReceived: number;
pauseCount: number;
pliCount: number;
totalProcessingDelay: number;
decoderImplementation: string;
powerEfficientDecoder: boolean;
}
interface QualityLimitationDurations {
bandwidth: number;
cpu: number;
none: number;
other: number;
}
interface OutboundVideoStreamStats extends VideoStreamStats, OutboundStreamStats {
hugeFramesSent: number;
pliCount: number;
qpSum: number;
framesEncoded: number;
framesSent: number;
keyFramesEncoded: number;
encoderImplementation: string;
qualityLimitationReason: string;
qualityLimitationResolutionChanges: number;
qualityLimitationDurations: QualityLimitationDurations;
totalEncodeTime: number;
targetBitrate?: number;
scalabilityMode: string;
powerEfficientEncoder: boolean;
}
interface InboundAudioStreamStats extends AudioStreamStats, InboundStreamStats {
audioLevel: number;
concealedSamples: number;
concealmentEvents: number;
totalAudioEnergy: number;
totalSamplesDuration: number;
totalSamplesReceived: number;
fecPacketsDiscarded: number;
fecPacketsReceived: number;
insertedSamplesForDeceleration: number;
removedSamplesForAcceleration: number;
silentConcealedSamples: number;
playoutId: string;
}
interface OutboundAudioStreamStats extends AudioStreamStats, OutboundStreamStats {
}
interface IceCandidateStats {
id: string;
type?: string;
address?: string;
port?: number;
relatedAddress?: string;
relatedPort?: number;
url?: string;
protocol?: string;
networkType?: string;
}
interface IceCandidatePairStats {
nominated: boolean;
currentRoundTripTime?: number;
totalRoundTripTime?: number;
bytesSent?: number;
bytesReceived?: number;
bytesDiscardedOnSend?: number;
packetsSent?: number;
packetsReceived?: number;
packetsDiscardedOnSend?: number;
availableOutgoingBitrate?: number;
availableIncomingBitrate?: number;
lastPacketReceivedTimestamp?: number;
lastPacketSentTimestamp?: number;
localCandidateId?: string;
localCandidateType?: string;
localCandidateAddress?: string;
localCandidatePort?: number;
localCandidateRelatedAddress?: string;
localCandidateRelatedPort?: number;
localCandidateUrl?: string;
localCandidateProtocol?: string;
localCandidateNetworkType?: string;
remoteCandidateId?: string;
remoteCandidateType?: string;
remoteCandidateAddress?: string;
remoteCandidatePort?: number;
remoteCandidateUrl?: string;
remoteCandidateProtocol?: string;
}
interface WebRtcTransportStat {
bytesReceived?: number;
bytesSent?: number;
roundTripTime?: number;
totalRoundTripTime?: number;
availableOutgoingBitrate?: number;
availableIncomingBitrate?: number;
dtlsCipher?: string;
dtlsState?: RTCDtlsTransportState;
iceRole?: RTCIceRole;
packetsReceived?: number;
packetsSent?: number;
candidatePairs?: IceCandidatePairStats[];
}
interface TransportStatistics extends Object {
transportId: string;
consuming: boolean;
producing: boolean;
stats: WebRtcTransportStat;
}
interface ProducerStatistics extends Object {
producerId: string;
videoStats: OutboundVideoStreamStats[];
audioStats: OutboundAudioStreamStats[];
appData?: {
screenShare?: boolean;
supportsRemoteControl?: boolean;
};
}
interface ConsumerStatistics extends Object {
consumerId: string;
peerId: string;
producerId: string;
videoStats: InboundVideoStreamStats[];
audioStats: InboundAudioStreamStats[];
appData: Record;
}
interface ProcessedStatsReport {
transportReport: TransportStatistics;
producerReport: ProducerStatistics[];
consumerReport: ConsumerStatistics[];
}
interface AudioProducerScoreStats {
score: number;
packetsLostPercentage: number;
jitter: number;
isScreenShare: boolean;
bitrate: number;
}
interface VideoProducerScoreStats {
score: number;
frameWidth: number;
frameHeight: number;
framesPerSecond: number;
packetsLostPercentage: number;
jitter: number;
isScreenShare: boolean;
bitrate: number;
cpuLimitations: boolean;
bandwidthLimitations: boolean;
}
interface AudioConsumerScoreStats {
score: number;
packetsLostPercentage: number;
jitter: number;
isScreenShare: boolean;
bitrate: number;
}
interface VideoConsumerScoreStats {
score: number;
frameWidth: number;
frameHeight: number;
framesPerSecond: number;
packetsLostPercentage: number;
jitter: number;
isScreenShare: boolean;
bitrate: number;
}
type ProducerScoreStats = AudioProducerScoreStats | VideoProducerScoreStats;
type ConsumerScoreStats = AudioConsumerScoreStats | VideoConsumerScoreStats;
interface IceServerInfo {
urls: string;
username: string;
credential?: string;
/**
* Note(ravindra-dyte):
* credentialType is deprecated.
* https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer/credentialType
*/
credentialType?: 'password';
}
interface RegionalIceInformation {
regionId: string;
iceServers: IceServerInfo[];
}
interface ApiHostnames {
location: string;
locationLegacy: string;
daCollector: string;
}
type ClientEnvTypeAll = 'devel' | 'preprod' | 'prod';
declare enum MediaDeviceType {
AUDIO = "AUDIO",
VIDEO = "VIDEO",
SPEAKER = "SPEAKER",
SCREENSHARE = "SCREENSHARE"
}
type MediaDeviceTypeAll = keyof typeof MediaDeviceType;
interface DeviceInfo {
isMobile: boolean;
browserName: string;
browserVersion: string;
osName: string;
osVersionName: string;
engineName: string;
userAgent: string;
cpus: number;
memory: number;
webglSupport?: number;
}
interface PeerMetaData$1 {
metaData: Object;
deviceInfo: DeviceInfo;
meetingEnv?: string;
peerId: string;
userId: string;
roomUUID: string;
permissions: Object;
participantRole?: string;
roomViewType: string;
}
/** Similar to what web-core has for media permissions */
type MediaPermissions$1 = 'NOT_REQUESTED' | 'ACCEPTED' | 'DENIED' | 'CANCELED' | 'SYSTEM_DENIED' | 'COULD_NOT_START' | 'NO_DEVICES_AVAILABLE';
interface InhouseCallStatsInitializeParams {
peerId: string;
engineName: string;
env?: ClientEnvTypeAll;
iceServers: any[];
apiBase?: string;
flags: Record>;
logger?: DyteLogger$2;
apiHostnames: ApiHostnames;
skipConnectivityChecks: boolean;
}
/**
* Note(ravindra-dyte):
* This is redundantly added here to avoid circular dependency on web-core build
* */
declare type LogData$3 = {
[key: string]: string | number | boolean | null | undefined | LogData$3;
};
declare interface DyteLogger$2 {
info(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
error(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
debug(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
log(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
warn(humanReadableLogIdentifier: string, logData?: LogData$3, isCrucial?: boolean): void;
}
declare enum Event {
PRECALL_TEST_BEGIN = "precall_begin",
PRECALL_TEST_COMPLETE = "precall_end",
CALL_JOIN_BEGIN = "call_join",
NET_QUALITY_TEST_BEGIN = "net_quality_test_begin",
NET_QUALITY_TEST_END = "net_quality_test_end",
WEBSOCKET_CONNECTED = "websocket_connected",
TRANSPORT_CONNECTED = "transport_connected",
AUDIO_ON = "audio_on",
AUDIO_OFF = "audio_off",
VIDEO_ON = "video_on",
VIDEO_OFF = "video_off",
PARTICIPANT_ROLE = "participant_role",
PING_STAT = "ping_stat",
DISCONNECT = "disconnect",
RECONNECT_ATTEMPT = "reconnect_attempt",
SCREENSHARE_START_REQUESTED = "screenshare_start_requested",
SCREENSHARE_STARTED = "screenshare_started",
SCREENSHARE_STOPPED = "screenshare_stopped",
TAB_CHANGE = "tab_change",
BROWSER_BACKGROUNDED = "browser_backgrounded",
BROWSER_FOREGROUNDED = "browser_foregrounded",
DOMINANT_SPEAKER = "dominant_speaker",
AUDIO_DEVICES_UPDATES = "audio_devices_updates",
VIDEO_DEVICES_UPDATES = "video_devices_updates",
SPEAKER_DEVICES_UPDATES = "speaker_devices_updates",
SELECTED_MICROHPONE_UPDATE = "selected_microphone_update",
SELECTED_CAMERA_UPDATE = "selected_camera_update",
SELECTED_SPEAKER_UPDATE = "selected_speaker_update",
EXPECTED_VIDEO_RESOLUTION = "expected_video_resolution",
EXPECTED_SCREENSHARE_RESOLUTION = "expected_screenshare_resolution",
MEDIA_PERMISSION = "media_permission",
LEGACY_SWITCH = "legacy_switch",
AUDIO_PLAY_FAILED = "audio_play_failed",
VIDEO_PLAY_FAILED = "video_play_failed",
AUDIO_TRACK_MUTED = "audio_track_muted",
VIDEO_TRACK_MUTED = "video_track_muted",
IVS_PLAYER_REBUFFERING = "ivs_player_rebuffering",
IVS_PLAYER_AUDIO_BLOCKED = "ivs_player_audio_blocked",
IVS_PLAYER_PLAYBACK_BLOCKED = "ivs_player_playback_blocked",
IVS_PLAYER_ERROR = "ivs_player_error",
IVS_PLAYER_RECOVERABLE_ERROR = "ivs_player_recoverable_error",
IVS_PLAYER_WORKER_ERROR = "ivs_player_worker_error",
IVS_PLAYER_NETWORK_UNAVAILABLE = "ivs_player_network_unavailable",
LIVESTREAM_LATENCY = "livestream_latency",
IVS_PLAYER_ANALYTICS_EVENT = "ivs_player_analytics_event",
IVS_PLAYER_PLAYBACK_RATE_CHANGED = "ivs_player_playback_rate_changed",
IVS_PLAYER_QUALITY_CHANGED = "ivs_player_quality_changed",
IVS_PLAYER_INITIALIZED = "ivs_player_initialized"
}
interface PeerMetaData {
metaData: Object;
deviceInfo: DeviceInfo$1;
meetingEnv?: string;
peerId: string;
userId: string;
roomUUID: string;
permissions: Object;
participantRole?: string;
roomViewType: string;
}
interface EventDataBase extends Object {
}
interface CallJoinData extends EventDataBase {
peerMetaData: PeerMetaData;
}
interface PingStatsData extends EventDataBase {
producingTransportStats?: TransportStatistics;
consumingTransportStats?: TransportStatistics;
producerStats?: ProducerStatistics[];
consumerStats?: ConsumerStatistics[];
}
interface PreCallTestData extends EventDataBase {
connectionInfo?: NetworkInformation;
}
interface PreCallTestDataWithoutConnectivityData extends EventDataBase {
connectionInfo?: NetworkInformationWithoutConnectivityData;
}
interface RegionalNetworkQualityTestData extends RegionalIceInformation {
networkResults: NetworkQualityInformation;
}
interface NetworkQualityTestData extends EventDataBase {
regionData: RegionalNetworkQualityTestData[];
}
interface ParticipantRoleData extends EventDataBase {
participantRole: string;
}
interface ExpectedVideoResolutionEntry extends EventEntryBase {
event: Event.EXPECTED_VIDEO_RESOLUTION;
metaData: {
frameWidth: number;
frameHeight: number;
};
}
interface ExpectedScreenshareResolutionEntry extends EventEntryBase {
event: Event.EXPECTED_SCREENSHARE_RESOLUTION;
metaData: {
frameWidth: number;
frameHeight: number;
};
}
interface EmptyData extends EventDataBase {
}
interface MediaDevicesData extends EventDataBase {
deviceList: MediaDeviceInfo[];
}
interface IVSPlayerQualityChangedData extends EventDataBase {
name: string;
group: string;
codecs: string;
bitrate: number;
width: number;
height: number;
framerate: number;
isDefault: boolean;
}
interface IVSPlayerAnalyticsEventData extends EventDataBase {
name: string;
properties: Object;
}
interface IVSPlayerErrorData extends EventDataBase {
type: string;
code: number;
source: string;
message: string;
}
interface IVSPlayerRecoverableErrorData extends EventDataBase {
type: string;
code: number;
source: string;
message: string;
}
interface IVSPlayerPlaybackRateChangedData extends EventDataBase {
updatedPlaybackRate: number;
}
interface IVSPlayerLiveLatencyData extends EventDataBase {
latency: number;
}
type EventData = CallJoinData | PingStatsData | NetworkQualityTestData | EmptyData | ParticipantRoleData | ParticipantRoleData | MediaDevicesData | IVSPlayerQualityChangedData | IVSPlayerAnalyticsEventData | IVSPlayerErrorData | IVSPlayerRecoverableErrorData | IVSPlayerPlaybackRateChangedData | IVSPlayerLiveLatencyData;
interface EventEntryBase {
event: Event;
timestamp: Date;
metaData?: EventData;
}
interface PreCallTestBeginEntry extends EventEntryBase {
event: Event.PRECALL_TEST_BEGIN;
}
interface PreCallTestCompletedEntry extends EventEntryBase {
event: Event.PRECALL_TEST_COMPLETE;
metaData: PreCallTestData | PreCallTestDataWithoutConnectivityData;
}
interface CallJoinBeginEntry extends EventEntryBase {
event: Event.CALL_JOIN_BEGIN;
metaData: CallJoinData;
}
interface NetworkQualityTestBeginEntry extends EventEntryBase {
event: Event.NET_QUALITY_TEST_BEGIN;
}
interface NetworkQualityTestEndEntry extends EventEntryBase {
event: Event.NET_QUALITY_TEST_END;
metaData: NetworkQualityTestData;
}
interface WebSocketConnectedEntry extends EventEntryBase {
event: Event.WEBSOCKET_CONNECTED;
}
interface TransportConnectedEntry extends EventEntryBase {
event: Event.TRANSPORT_CONNECTED;
}
interface AudioToggleEntry extends EventEntryBase {
event: Event.AUDIO_OFF | Event.AUDIO_ON;
}
interface VideoToggleEntry extends EventEntryBase {
event: Event.VIDEO_OFF | Event.VIDEO_ON;
}
interface ScreenShareToggleEntry extends EventEntryBase {
event: Event.SCREENSHARE_STARTED | Event.SCREENSHARE_STOPPED;
metaData: {
ssrc: number;
};
}
interface ScreenShareRequestedEntry extends EventEntryBase {
event: Event.SCREENSHARE_START_REQUESTED;
}
interface DominantSpeakerEntry extends EventEntryBase {
event: Event.DOMINANT_SPEAKER;
metaData: {
peerId: string;
};
}
interface DevicesEntry extends EventEntryBase {
event: Event.AUDIO_DEVICES_UPDATES | Event.VIDEO_DEVICES_UPDATES | Event.SPEAKER_DEVICES_UPDATES;
metaData: MediaDevicesData;
}
interface SelectedDeviceEntry extends EventEntryBase {
event: Event.SELECTED_CAMERA_UPDATE | Event.SELECTED_MICROHPONE_UPDATE | Event.SELECTED_SPEAKER_UPDATE;
metaData: {
device: MediaDeviceInfo;
};
}
interface MediaPermissionEntry extends EventEntryBase {
event: Event.MEDIA_PERMISSION;
metaData: {
deviceType: MediaDeviceTypeAll;
permission: MediaPermissions$1;
};
}
interface MediaPlaybackFailureEntry extends EventEntryBase {
event: Event.AUDIO_PLAY_FAILED | Event.VIDEO_PLAY_FAILED;
metaData: {
deviceType: MediaDeviceTypeAll;
};
}
interface MediaTrackFailureEntry extends EventEntryBase {
event: Event.AUDIO_TRACK_MUTED | Event.VIDEO_TRACK_MUTED;
metaData: {
deviceType: MediaDeviceTypeAll;
};
}
interface TabChangeEntry extends EventEntryBase {
event: Event.TAB_CHANGE;
metaData: {
isMeetingsTabActive: boolean;
};
}
interface BrowserBackgroundedEntry extends EventEntryBase {
event: Event.BROWSER_BACKGROUNDED;
}
interface BrowserForegroundedEntry extends EventEntryBase {
event: Event.BROWSER_FOREGROUNDED;
}
interface LegacySwitchEntry extends EventEntryBase {
event: Event.LEGACY_SWITCH;
metadata: {
on: boolean;
};
}
interface ParticipantRoleToggleEntry extends EventEntryBase {
event: Event.PARTICIPANT_ROLE;
metaData: ParticipantRoleData;
}
interface PingStatsEntry extends EventEntryBase {
event: Event.PING_STAT;
metaData: PingStatsData;
}
interface DisconnectEntry extends EventEntryBase {
event: Event.DISCONNECT;
}
interface ReconnectEntry extends EventEntryBase {
event: Event.RECONNECT_ATTEMPT;
}
interface IVSPlayerRebufferingEntry extends EventEntryBase {
event: Event.IVS_PLAYER_REBUFFERING;
}
interface IVSPlayerAudioBlockedEntry extends EventEntryBase {
event: Event.IVS_PLAYER_AUDIO_BLOCKED;
}
interface IVSPlayerPlaybackBlockedEntry extends EventEntryBase {
event: Event.IVS_PLAYER_PLAYBACK_BLOCKED;
}
interface IVSPlayerNetworkUnavailableEntry extends EventEntryBase {
event: Event.IVS_PLAYER_NETWORK_UNAVAILABLE;
}
interface IVSPlayerInitializedEntry extends EventEntryBase {
event: Event.IVS_PLAYER_INITIALIZED;
}
interface IVSPlayerWorkerErrorEntry extends EventEntryBase {
event: Event.IVS_PLAYER_WORKER_ERROR;
}
interface IVSPlayerErrorEntry extends EventEntryBase {
event: Event.IVS_PLAYER_ERROR;
metaData: IVSPlayerErrorData;
}
interface IVSPlayerRecoverableErrorEntry extends EventEntryBase {
event: Event.IVS_PLAYER_RECOVERABLE_ERROR;
metaData: IVSPlayerRecoverableErrorData;
}
interface IVSPlayerAnalyticsEventEntry extends EventEntryBase {
event: Event.IVS_PLAYER_ANALYTICS_EVENT;
metaData: IVSPlayerAnalyticsEventData;
}
interface IVSPlayerPlaybackRateChangedEntry extends EventEntryBase {
event: Event.IVS_PLAYER_PLAYBACK_RATE_CHANGED;
metaData: IVSPlayerPlaybackRateChangedData;
}
interface IVSPlayerQualityChangedEntry extends EventEntryBase {
event: Event.IVS_PLAYER_QUALITY_CHANGED;
metaData: IVSPlayerQualityChangedData;
}
interface IVSPlayerLiveLatencyEntry extends EventEntryBase {
event: Event.LIVESTREAM_LATENCY;
metaData: IVSPlayerLiveLatencyData;
}
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;
declare class EventHandler extends EventEmitter {
private logger;
private peerId;
private eventStore;
private apiEndpoint;
constructor({ logger, peerId, apiHostnames, }: {
logger: DyteLogger$2;
peerId: string;
apiHostnames: ApiHostnames;
});
private sendEventsChunkToServer;
callEvent(entry: EventEntry): void;
flush(): Promise;
}
interface ParsedProducerStats {
outboundVideoRtpId: string[];
outboundAudioRtpId: string[];
}
interface ParsedConsumerStats {
inboundVideoRtpId: string[];
inboundAudioRtpId: string[];
}
declare class ParsedRTCStats {
transport: WebRtcTransportStat;
candidatePair: IceCandidatePairStats;
outboundVideoRtp: Map;
inboundVideoRtp: Map;
outboundAudioRtp: Map;
inboundAudioRtp: Map;
remoteInboundRtp: Map;
producerStreamMap: Map;
consumerStreamMap: Map;
staleProducerStreamMap: boolean;
staleConsumerStreamMap: boolean;
}
declare abstract class Measurements extends EventEmitter {
observer: EventEmitter;
outboundProducerMap: Map;
inboundConsumerMap: Map;
consumerPeerIdMap: Map;
}>;
pausedConsumerMap: Map;
pausedProducerMap: Map;
overallProducingTransportsStatsMap: Record;
overallConsumingTransportsStatsMap: Record;
overallConsumersStatsMap: Record;
overallProducersStatsMap: Record;
videoProducerToStatsMap: Map;
audioProducerToStatsMap: Map;
videoConsumerToStatsMap: Map;
audioConsumerToStatsMap: Map;
consumerIdsWithFreezedVideo: Set;
consumerIdsWithFreezedAudio: Set;
producerIdsWithFreezedVideo: Set;
producerIdsWithFreezedAudio: Set;
freezedProducingTransportIds: Set;
freezedConsumingTransportIds: Set;
screenShareProducers: Set;
screenShareConsumers: Set;
ipDetails: IPDetails;
callStatsInstance: CallStats;
constructor();
registerProducer(producer: any): Promise;
pauseProducer(producerId: string): void;
resumeProducer(producerId: string): void;
processInboundConsumerVideoStats(consumerId: string, overallStatsForConsumer: {
totalVideoPacketsReceived: number;
totalAudioPacketsReceived: number;
}, streamStatsData: InboundVideoStreamStats): void;
processInboundConsumerAudioStats(consumerId: string, overallStatsForConsumer: {
totalVideoPacketsReceived: number;
totalAudioPacketsReceived: number;
}, streamStatsData: InboundAudioStreamStats): void;
processOutboundProducerVideoStats(producerId: string, overallStatsForProducer: {
totalVideoPacketsSent: number;
totalAudioPacketsSent: number;
}, streamStatsData: OutboundVideoStreamStats): void;
processOutboundProducerAudioStats(producerId: string, overallStatsForProducer: {
totalVideoPacketsSent: number;
totalAudioPacketsSent: number;
}, streamStatsData: OutboundAudioStreamStats): void;
processProducingTransportStats(transportId: string, overallStatsForTransport: {
totalPacketsSent: number;
}, transportStatsData: WebRtcTransportStat): void;
processConsumingTransportStats(transportId: string, overallStatsForTransport: {
totalPacketsReceived: number;
}, streamStatsData: WebRtcTransportStat): void;
registerConsumer(consumer: any): Promise;
pauseConsumer(consumerId: string): void;
resumeConsumer(consumerId: string): void;
generateProducerStreamMap(producer: any, parse?: boolean): Promise;
generateConsumerStreamMap(consumer: any, parse?: boolean): Promise;
deregisterProducer(producer: any): void;
deregisterConsumer(consumer: any): void;
protected getIceCandidateStats(stats: any): IceCandidateStats;
getWorkingSimulcastVideoStats(videoStatsList: OutboundVideoStreamStats[]): OutboundVideoStreamStats;
protected parseRTCReport(report: RTCStatsReport, filters?: string[], onceOnly?: boolean, ownerId?: string, transportInfo?: {
id: string;
producing: boolean;
consuming: boolean;
}): ParsedRTCStats;
getProducersReport(producers: any[]): Promise;
getConsumersReport(consumers: any[]): Promise;
getTransportReport(transport: any): Promise;
getProcessedStats(transport: any, consuming: boolean, producing: boolean): Promise;
protected getProducerStatsFromReport(report: ParsedRTCStats): ProducerStatistics[];
protected getConsumerStatsFromReport(report: ParsedRTCStats): ConsumerStatistics[];
getUserLocation(): Promise;
getConnectivity(iceServers: IceServerInfo[]): Promise<{
host: boolean;
relay: boolean;
reflexive: boolean;
}>;
getThroughput(iceServers: IceServerInfo[]): Promise;
getIPDetails(): Promise;
getNetworkQuality(iceServers: IceServerInfo[]): Promise;
getNetworkInfo(iceServers: IceServerInfo[], skipConnectivityChecks?: boolean): Promise;
}
declare class CallStats extends EventEmitter {
observer: EventEmitter;
eventHandler: EventHandler;
protected measurements: Measurements;
protected producingTransport: any;
protected consumingTransport: any;
producers: Map;
protected consumers: Map;
protected iceServers: IceServerInfo[];
protected connectionInfoPromise: Promise;
protected pingStatsTimeout: NodeJS.Timeout;
logger: DyteLogger$2;
env: ClientEnvTypeAll;
apiHostnames: ApiHostnames;
peerId: string;
consumerSharedMediaStatesMap: Map;
currentUserMediaStates: {
audio?: boolean;
video?: boolean;
screen?: boolean;
};
constructor(backendUrl: string, engineName: string, env: ClientEnvTypeAll, flags: InhouseCallStatsInitializeParams['flags'], logger: DyteLogger$2, peerId: string, apiHostnames: ApiHostnames);
registerIceServers(servers: IceServerInfo[]): void;
protected registerConsumer(consumer: any): void;
protected registerProducer(producer: any): void;
sendConsumerSharedMediaStateEvent(consumerId: string, statusObj: {
audio?: boolean;
video?: boolean;
screen?: boolean;
}): void;
registerProducingTransport(transport: any): void;
registerConsumingTransport(transport: any): void;
protected deRegisterConsumer(consumer: any): void;
protected deRegisterProducer(producer: any): void;
disconnectConsumingTransport(): void;
disconnectProducingTransport(): void;
protected callEvent(entry: EventEntry): void;
sendPreCallTestBeginEvent(skipConnectivityChecks: boolean, timestamp: Date): void;
sendScreenShareToggleEvent(on: boolean, ssrc: number, timestamp: Date): void;
sendScreenShareRequestedEvent(timestamp: Date): void;
sendActiveSpeakerEvent(peerId: string, timestamp: Date): void;
devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[], timestamp: Date): void;
selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo, timestamp: Date): void;
mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1, timestamp: Date): void;
mediaPlaybackFailed(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
mediaTrackMuted(deviceType: MediaDeviceTypeAll, timestamp: Date): void;
tabChanged(isMeetingsTabActive: boolean, timestamp: Date): void;
browserBackgrounded(timestamp: Date): void;
browserForegrounded(timestamp: Date): void;
legacySwitch(on: boolean, timestamp: Date): void;
getPreCallTestResults(): Promise;
sendCallJoinBeginEvent(peerMetaData: PeerMetaData, timestamp: Date): void;
sendNetworkQualityTestBeginEvent(regionalInformations: RegionalIceInformation[], timestamp: Date): void;
sendWebSocketConnectedEvent(timestamp: Date): void;
sendTransportConnectedEvent(timestamp: Date): void;
sendAudioToggleEvent(on: boolean, timestamp: Date): void;
sendVideoToggleEvent(on: boolean, timestamp: Date): void;
sendParticipantRoleToggleEvent(role: ParticipantRoleData, timestamp: Date): void;
startPingStats(interval?: number): void;
stopPingStats(): void;
sendPingStatsEvent(optimize: boolean, timestamp: Date): Promise;
sendIVSPlayerRebufferEvent(timestamp: Date): void;
sendIVSPlayerAudioBlockEvent(timestamp: Date): void;
sendIVSPlayerPlaybackBlockedEvent(timestamp: Date): void;
sendIVSPlayerNetworkUnavailableEvent(timestamp: Date): void;
sendIVSPlayerInitializedEvent(timestamp: Date): void;
sendIVSPlayerWorkerErrorEvent(timestamp: Date): void;
sendIVSPlayerErrorEvent(payload: IVSPlayerErrorData, timestamp: Date): void;
sendIVSPlayerRecoverableErrorEvent(payload: IVSPlayerRecoverableErrorData, timestamp: Date): void;
sendIVSPlayerAnalyticsEvent(payload: IVSPlayerAnalyticsEventData, timestamp: Date): void;
sendIVSPlayerPlaybackRateChangedEvent(updatedPlaybackRate: number, timestamp: Date): void;
sendIVSPlayerQualityChanged(payload: IVSPlayerQualityChangedData, timestamp: Date): void;
sendPlayerLiveLatency(latency: number, timestamp: Date): void;
sendDisconnectEvent(timestamp: Date): void;
sendReconnectEvent(timestamp: Date): void;
expectedVideoResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
expectedScreenshareResolution(frameWidth: number, frameHeight: number, timestamp: Date): void;
}
declare class InhouseCallStats extends EventEmitter {
stats: any;
peerId: string;
backend: CallStats;
iceServers: IceServerInfo[];
initialized: boolean;
stalled: boolean;
ipInformation: Object;
logger: DyteLogger$2;
initialize({ peerId, engineName, env, iceServers, apiBase, flags, logger, apiHostnames, skipConnectivityChecks, }: InhouseCallStatsInitializeParams): Promise;
configureSendTransport(sendTransport: any): void;
configureRecvTransport(recvTransport: any): void;
candidateRegionalNetworkQualityTest(regionalIceServersInfo: RegionalIceInformation[]): Promise;
roomJoined(peerData: PeerMetaData$1): Promise;
audioOff(): void;
audioOn(): void;
videoOff(): void;
videoOn(): void;
callEnded(): void;
screenShareStart(ssrc?: number): void;
consumerSharedMediaState(consumerId: string, statusObj: {
audio?: boolean;
video?: boolean;
screen?: boolean;
}): void;
screenShareStop(ssrc?: number): void;
screenShareRequested(): void;
activeSpeaker(peerId: string): void;
devices(deviceType: MediaDeviceTypeAll, deviceList: MediaDeviceInfo[]): void;
selectedDevice(deviceType: MediaDeviceTypeAll, device: MediaDeviceInfo): void;
mediaPermission(deviceType: MediaDeviceTypeAll, permission: MediaPermissions$1): void;
mediaPlaybackFailed(deviceType: MediaDeviceTypeAll): void;
mediaTrackMuted(deviceType: MediaDeviceTypeAll): void;
tabChanged(isMeetingsTabActive?: boolean): void;
browserBackgrounded(): void;
browserForegrounded(): void;
legacySwitch(on: boolean): void;
startPreCallTest(skipConnectivityChecks?: boolean): Promise;
onPreCallTestResults(fx: any): any;
onReceivingConsumerAudioStatus(fx: any): void;
onReceivingConsumerVideoStatus(fx: any): void;
onReceivingProducerAudioStatus(fx: any): void;
onReceivingProducerVideoStatus(fx: any): void;
onReceivingProducingTransportStatus(fx: any): void;
onReceivingConsumingTransportStatus(fx: any): void;
onProducerScore(fx: any): void;
onConsumerScore(fx: any): void;
private onSafeInitialization;
removeInitializationListener(fx: Function): void;
stallCallStats(): void;
ivsPlayerEvent(type: String, payload: any): void;
livestreamLatency(latency: number): void;
expectedVideoResolution(frameWidth: number, frameHeight: number): void;
expectedScreenshareResolution(frameWidth: number, frameHeight: number): void;
}
interface DyteBasicParticipant {
userId: string;
name?: string;
picture?: string;
customParticipantId: string;
}
declare class DyteBasicParticipantsMap extends DyteEventEmitter<'participantsUpdate'> {
constructor(logger: DyteLogger);
__set(objId: string, obj: DyteBasicParticipant): Map;
__clear(): void;
get(objId: string): DyteBasicParticipant;
toArray(): DyteBasicParticipant[];
}
type ChatChannelSocketMessage = GetChatChannelResponse;
interface ChatChannel {
id: string;
displayName: string;
memberIds: string[];
displayPictureUrl?: string;
visibility?: string;
isDirectMessage?: boolean;
latestMessage?: Message;
unreadCount: number;
}
interface UpdateChannelRequestPayload {
memberIds?: string[];
displayName?: string;
displayPictureUrl?: string;
visibility?: string;
}
declare class ChatChannelSocketHandler {
get telemetry(): DyteTelemetry;
get logger(): DyteLogger;
constructor(context: Context, socketService: SocketService);
createChannel(displayName: string, memberIds: string[], displayPictureUrl?: string, visibility?: string, isDirectMessage?: boolean): Promise;
updateChannel(channelId: string, payload: UpdateChannelRequestPayload): Promise;
static formatChannel(socketChannel: ChatChannel$1): ChatChannel;
getChannelMembers(channelId: string): Promise;
on(event: number, handler: (socketMessage: ChatChannelSocketMessage) => void): void;
}
declare enum ChatMessageType {
TEXT = 0,
IMAGE = 1,
FILE = 2,
CUSTOM = 3
}
type ChatSocketMessage = SendChatMessageToRoomResponse | SendChatMessageToPeersResponse | EditChatMessageResponse | DeleteChatMessageResponse;
interface SearchFilters {
channelId?: string;
timestamp?: number;
size?: number;
reversed?: boolean;
}
declare class ChatSocketHandler {
get telemetry(): DyteTelemetry;
get logger(): DyteLogger;
constructor(context: Context, socketService: SocketService);
getChatMessages(): Promise<{
id: string;
payload: Uint8Array;
}>;
getChatMessagesPaginated(timeStamp: number, size: number, reversed: boolean, offset?: number, channelId?: string): Promise;
sendMessageToRoom(message: string, messageType: ChatMessageType): void;
sendMessageToPeers(message: string, messageType: ChatMessageType, peerIds: string[]): void;
sendMessageToChannel(message: string, messageType: ChatMessageType, channelId: string): void;
sendMessage(message: string, messageType: ChatMessageType, peerIds?: string[], channelId?: string): void;
editMessage(chatId: string, message: string, payloadType: ChatMessageType, channelId?: string, pinned?: boolean): Promise;
deleteMessage(chatId: string, channelId?: string): Promise<{
channelId?: string;
id: string;
}>;
searchMessages(query: string, filters: SearchFilters): Promise;
getAllChannels(): Promise;
markLastReadMessage(channelId: string, message: Message): Promise;
setPinState(message: Message, pin: boolean): Promise;
on(event: number, handler: (socketMessage: ChatSocketMessage) => void): void;
}
declare class DyteSelectedPeers {
private readonly _activeSpeakerPeers;
private readonly _compulsoryPeers;
constructor();
add(peerId: string, priority: number, context: Context): number;
delete(peerId: string, context: Context): void;
index(peerId: string): number;
get peers(): string[];
get compulsoryPeers(): string[];
get activeSpeakerPeers(): string[];
private _removeFromCompulsoryPeer;
}
type PipEvents = {
['cameraToggled']: () => void;
['micToggled']: () => void;
['hangup']: () => void;
['pipStarted']: () => void;
['pipEnded']: () => void;
['*']: (eventName: string, ...args: any[]) => void;
};
declare class DytePip extends DyteTypedEventEmitter {
private constructor();
static _init(context: Context, self: DyteSelf$1): Promise;
private setupIcon;
overrideIcon(icon: 'handRaise' | 'pin', value: string): Promise;
private constructImage;
private createVideoContainer;
private setupEventListeners;
private cleanupEventListeners;
private enablePipMediaControls;
private onSelfVideoUpdateListener;
private onSelfAudioUpdateListener;
private handlePipMediaControls;
private createCanvas;
private eventCallback;
private setupMediaSessionEvents;
private mountAudioEvents;
private mountVideoEvents;
private unmountEvents;
private getSources;
private drawEmptyTile;
private drawIcons;
private drawTile;
private calcGridElemSize;
private paintCanvas;
private animate;
isSupported(): boolean;
get isActive(): boolean;
private cleanup;
init({ height, width }?: {
height?: number;
width?: number;
}): void;
private updateMediaSession;
enableSource(source: string): void;
disableSource(source: string): void;
private generateAvatar;
addSource(id: string, element: HTMLVideoElement, enabled: boolean, pinned?: boolean, displayText?: string, imageUrl?: string, handRaised?: boolean): void;
updateSource(id: string, source: any): void;
removeSource(id: string): void;
removePinnedSource(): void;
removeAllSources(): void;
enable(): void;
disable: (partial?: boolean) => void;
}
type EventHandlerTypes = PeerInfoResponse | GetWaitingRoomRequests | RecordingEvent | UpdatePeersPresetResponse | PeerJoinBroadcastResponse | PeerJoinCompleteResponse | GlobalPeerPinningBroadcastResponse | PeerLeaveResponse | SelectedPeersResponse | SelectedPeersDiffResponse;
declare class RoomSocketHandler {
socket: SocketService;
get telemetry(): DyteTelemetry;
get logger(): DyteLogger;
cleanup(): void;
constructor(context: Context, socketService: SocketService);
joinRoom(opts: {
name: string;
id: string;
userId: string;
customParticipantId: string;
picture?: string;
}): Promise<{
peer: Peer;
}>;
getAllAddedParticipants(): Promise;
getRoomPeers(searchQuery: string, limit: number, offset: number): Promise;
getRoomPeersNonPaginated(): Promise;
getStagePeers(): Promise;
getPeerInfo(peerId: string): Promise;
getRoomState(): Promise;
getRoomStageState(): Promise;
broadcastMessage(type: string, payload: BroadcastMessagePayload): Promise<{
id: string;
payload: Uint8Array;
}>;
broadcastToMeetings(type: string, meetingIds: string[], payload: BroadcastMessagePayload): Promise<{
id: string;
payload: Uint8Array;
}>;
broadcastToPeers(type: string, peerIds: string[], payload: BroadcastMessagePayload): Promise;
leaveRoom(): Promise;
kick(peerId: string): Promise;
kickAll(propagateKickAll?: boolean): Promise;
getWaitingRoomRequests(): void;
acceptWaitingRoomRequest(userIds: string[]): void;
rejectWaitingRoomRequest(userIds: string[]): void;
updatePermissions(userIds: string[], patch: PresetUpdates): Promise<{
id: string;
payload: Uint8Array;
}>;
private handleSocketEvents;
on(event: number, handler: (message: EventHandlerTypes) => void): void;
getUserPermissions(userId: string): Promise>;
}
type TranscriptionData = {
id: string;
name: string;
peerId: string;
userId: string;
customParticipantId: string;
transcript: string;
isPartialTranscript: boolean;
date: Date;
};
type AiEvents = {
['transcript']: (t: TranscriptionData) => void;
['*']: (event: string, ...args: any[]) => void;
};
declare class DyteAi extends DyteTypedEventEmitter {
transcripts: TranscriptionData[];
get telemetry(): DyteTelemetry;
constructor(context: Context);
static init(context: Context, transcriptionEnabled: boolean): Promise;
static parseTranscript(transcriptData: string, isPartialTranscript?: boolean): TranscriptionData | undefined;
static parseTranscripts(transcriptData: string): TranscriptionData[];
getActiveTranscript(): Promise;
onTranscript(transcript: TranscriptionData): Promise;
}
declare enum TransportState {
NEW = "new",
CONNECTING = "connecting",
RECONNECTING = "reconnecting",
DISCONNECTED = "disconnected",
CONNECTED = "connected",
FAILED = "failed",
CLOSED = "closed"
}
declare enum MediaNodeType {
HIVE = 1,
ROOM_NODE = 2,
CF = 3
}
type MediaConnectionState = {
recv: {
state: `${TransportState}`;
};
send: {
state: `${TransportState}`;
};
};
type ActiveTabType = 'screenshare' | 'plugin';
interface ActiveTab {
type: ActiveTabType;
id: string;
}
declare enum TabChangeSource {
User = 0,
Meeting = 1
}
interface MediaConnectionUpdate {
transport: 'consuming' | 'producing';
state: `${TransportState}`;
reconnected: boolean;
}
type MetaEvents = {
['mediaConnectionUpdate']: (payload: MediaConnectionUpdate) => void;
['socketConnectionUpdate']: (state: SocketConnectionState) => void;
['poorConnection']: (payload: {
score: number;
}) => void;
['meetingStartTimeUpdate']: (payload: {
meetingStartedTimestamp: Date;
}) => void;
['transcript']: (t: TranscriptionData) => void;
['activeTabUpdate']: (tab: ActiveTab) => void;
['selfTabUpdate']: (tab: ActiveTab) => void;
['broadcastTabChangesUpdate']: (broadcastTabChanges: boolean) => void;
['*']: (event: string, ...args: any[]) => void;
};
declare class DyteMeta extends DyteTypedEventEmitter {
selfActiveTab: ActiveTab | undefined;
get socketState(): SocketConnectionState;
get mediaState(): MediaConnectionState;
broadcastTabChanges: boolean;
viewType: string;
meetingStartedTimestamp: Date;
meetingTitle: string;
sessionId: string;
constructor(context: Context, self: DyteSelf, viewType: string, roomSocketHandler: RoomSocketHandler, meetingTitle: string);
get meetingId(): string;
setBroadcastTabChanges(broadcastTabChanges: boolean): void;
setSelfActiveTab(spotlightTab: ActiveTab, tabChangeSource: TabChangeSource): void;
private assertActiveTabToRoom;
}
interface DyteMapEvents {
onAddEvent?: keyof T;
onDeleteEvent?: keyof T;
onClearEvent?: keyof T;
}
type ModifyPrependObject = {
[K in keyof T]: (obj: U, ...args: Parameters) => ReturnType;
} & {
['*']: (event: String, ...args: any[]) => void;
};
declare class DyteMap), U extends {
id: string;
} & DyteTypedEventEmitter, V extends EventMap> extends Map {
readonly onAddEvent: keyof V;
readonly onDeleteEvent: keyof V;
readonly onClearEvent: keyof V;
constructor(options: DyteMapEvents, logger?: DyteLogger);
emit & V>>(event: E, ...args: Parameters<(V | ModifyPrependObject)[E]>): boolean;
on & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
addListener & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
off & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
once & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
prependListener & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
prependOnceListener & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
removeListener & V>>(event: E, callback: (ModifyPrependObject & V)[E]): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
removeAllListeners & V>>(event?: E): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
listeners & V>>(event: E): Function[];
listenerCount & V>>(event: E): number;
getMaxListeners(): number;
setMaxListeners(n: number): DyteTypedEventEmitter<{ [K in keyof T]: (obj: U, ...args: Parameters) => ReturnType; } & {
"*": (event: String, ...args: any[]) => void;
} & V>;
eventNames(): (string | symbol)[];
add(obj: U, emitEvent?: boolean): this;
set(objId: string, obj: U, emitEvent?: boolean): this;
delete(objId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
clear(emitEvent?: boolean, removeListeners?: boolean): void;
toArray(): U[];
}
declare class EnhancedEventEmitter extends EventEmitter$1 {
get logger(): DyteLogger;
constructor(context: Context);
safeEmit(event: string, ...args: any[]): boolean;
safeEmitAsPromise(event: T, ...args: any[]): Promise;
safeEmitAsPromiseWithTimeout(event: T, timeout: number, ...args: any[]): Promise;
}
interface GenericHandlerResult {
offerSdp: RTCSessionDescriptionInit;
callback: (answer: RTCSessionDescriptionInit) => Promise;
sender?: RTCRtpSender;
}
type HandlerRunOptions = {
direction: 'send' | 'recv';
iceServers?: RTCIceServer[];
iceTransportPolicy?: RTCIceTransportPolicy;
additionalSettings?: any;
proprietaryConstraints?: any;
onTrackHandler?: (event: RTCTrackEvent) => void;
};
type CodecOption = {
name: string;
parameters?: string[];
};
type HandlerSendOptions = {
track: MediaStreamTrack | 'audio' | 'video';
screenShare?: boolean;
encodings?: RTCRtpEncodingParameters[];
codecs?: RTCRtpCodecCapability[];
codecOptions?: CodecOption[];
};
interface HandlerSendResult extends GenericHandlerResult {
mid: string;
}
declare abstract class HandlerInterface extends EnhancedEventEmitter {
protected _sendWebStream: MediaStream;
protected _sendScreenShareStream: MediaStream;
protected _direction?: 'send' | 'recv';
pc: RTCPeerConnection;
protected _transportReady: boolean;
private readonly _mapMidTransceiver;
enableHighBitrate: boolean;
enableStereo: boolean;
enableDtx: boolean;
sfu: MediaNodeType;
get midTransceiverMap(): Map;
abstract get name(): string;
close(): void;
restartIce(): Promise;
init({ direction, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, onTrackHandler, }: HandlerRunOptions): void;
connect(): Promise;
getTransportStats(): Promise;
protected _assertSendDirection(): void;
protected _assertRecvDirection(): void;
getReceiverStats(localId: string): Promise;
stopSending(localId: string): Promise;
abstract send(options: HandlerSendOptions): Promise;
replaceTrack(localId: string, track: MediaStreamTrack | null): Promise;
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise;
setRtpEncodingParameters(localId: string, params: any): Promise;
getSenderStats(localId: string): Promise;
_addEventListeners(): void;
addCustomEventListeners(): void;
}
type DCMessage = {
type: string;
payload: Record;
};
type TransportPromiseEvents = {
'close': {
answer: RTCSessionDescriptionInit;
};
'negotiate': {
description: RTCSessionDescriptionInit;
};
};
type ConsumerOptions = {
id?: string;
producerId: string;
producingPeerId: string;
producingTransportId: string;
kind?: 'audio' | 'video';
paused?: boolean;
appData?: Record;
mimeType?: string;
localId: string;
handler: HandlerInterface;
track?: MediaStreamTrack;
rtpReceiver?: RTCRtpReceiver;
transceiver: RTCRtpTransceiver;
closeTranscieverOnClose?: boolean;
};
type MediaKind = 'audio' | 'video';
declare class Consumer extends EnhancedEventEmitter {
readonly rtpReceiver: RTCRtpReceiver;
readonly id: string;
readonly localId: string;
readonly producerId: string;
readonly producingTransportId: string;
readonly mimeType: string;
readonly track: MediaStreamTrack;
readonly peerId: string;
readonly appData: Record;
readonly transceiver: RTCRtpTransceiver;
constructor(context: Context, opts: ConsumerOptions);
get closed(): boolean;
get kind(): MediaKind;
get paused(): boolean;
close(reason?: string, closeTranscieverOnClose?: boolean): void;
getStats(): Promise;
pause(): void;
resume(): void;
}
declare const localMediaEvents: readonly ["AUDIO_TRACK_CHANGE", "VIDEO_TRACK_CHANGE", "SCREENSHARE_TRACK_CHANGE", "SCREENSHARE_ENDED", "AUDIO_TRACK_SILENT", "FORCE_MUTE_AUDIO", "FORCE_MUTE_VIDEO", "DEVICE_CHANGE", "DEVICE_LIST_UPDATED"];
declare const e2eeEvents: readonly ["participantEncryptionStatusChanged", "encryptionError"];
declare const e2eeKeyEvents: readonly ["setKey", "ratchetRequest", "keyRatcheted"];
type LocalMediaEvents = (typeof localMediaEvents)[number];
type EncryptionEvents = (typeof e2eeEvents)[number];
type KeyProviderEvents = (typeof e2eeKeyEvents)[number];
type ParticipantEvents = {
['videoUpdate']: (payload: {
videoEnabled: boolean;
videoTrack: MediaStreamTrack;
}) => void;
['audioUpdate']: (payload: {
audioEnabled: boolean;
audioTrack: MediaStreamTrack;
}) => void;
['screenShareUpdate']: (payload: {
screenShareEnabled: boolean;
screenShareTracks: {
audio: MediaStreamTrack;
video: MediaStreamTrack;
};
}) => void;
['pinned']: (payload: DyteParticipant$1) => void;
['unpinned']: (payload: DyteParticipant$1) => void;
['poorConnection']: (payload: {
score: number;
kind: string;
}) => void;
['stageStatusUpdate']: (payload: DyteParticipant$1) => void;
['mediaScoreUpdate']: (payload: {
kind: MediaKind;
isScreenshare: boolean;
score: number;
participantId: string;
scoreStats: ConsumerScoreStats;
}) => void;
['kicked']: () => void;
['*']: (event: string, ...args: any[]) => void;
};
type SelfEvents = {
['toggleTile']: (payload: {
hidden: boolean;
}) => void;
['videoUpdate']: (payload: {
videoEnabled: boolean;
videoTrack: MediaStreamTrack;
}) => void;
['audioUpdate']: (payload: {
audioEnabled: boolean;
audioTrack: MediaStreamTrack;
}) => void;
['screenShareUpdate']: (payload: {
screenShareEnabled: boolean;
screenShareTracks: {
audio?: MediaStreamTrack;
video?: MediaStreamTrack;
};
}) => void;
['deviceUpdate']: ({ device }: {
device: MediaDeviceInfo;
}) => void;
['deviceListUpdate']: (changedDevices: {
added: MediaDeviceInfo[];
removed: MediaDeviceInfo[];
devices: MediaDeviceInfo[];
}) => void;
['pinned']: (payload: DyteSelf) => void;
['unpinned']: (payload: DyteSelf) => void;
['mediaPermissionUpdate']: (payload: {
message: keyof typeof MediaPermission;
kind: 'audio' | 'video' | 'screenshare';
}) => void;
['mediaPermissionError']: (payload: {
message: keyof typeof MediaPermission;
constraints: any;
kind: 'audio' | 'video' | 'screenshare';
}) => void;
['mediaScoreUpdate']: (payload: {
kind: MediaKind;
isScreenshare: boolean;
score: number;
participantId: string;
scoreStats: ProducerScoreStats;
}) => void;
['waitlisted']: () => void;
['roomLeft']: (payload: {
state: LeaveRoomState;
}) => void;
['roomJoined']: (payload: {
reconnected: boolean;
}) => void;
['autoplayError']: (error: Error) => void;
['*']: (event: string, ...args: any[]) => void;
};
type ParticipantMapEvents = {
['participantJoined']: (payload: DyteParticipant) => void;
['participantLeft']: (payload: DyteParticipant) => void;
['participantsCleared']: () => void;
['participantsUpdate']: () => void;
['kicked']: (payload: {
id: string;
}) => void;
};
declare class DyteParticipantMap> = DyteParticipant> extends DyteMap {
constructor(logger: DyteLogger$1, options?: DyteMapEvents);
add(participant: T, emitEvent?: boolean): this;
clear(emitEvent?: boolean, removeListeners?: boolean): void;
delete(participantId: string, emitEvent?: boolean, removeListeners?: boolean): boolean;
}
declare const modes: readonly ["ACTIVE_GRID", "PAGINATED", "MANUAL"];
type ViewMode = (typeof modes)[number];
interface BroadcastMessagePayload {
[key: string]: boolean | number | string | Date | ActiveTab;
}
interface PeerProducerConfig {
audio: boolean;
video: boolean;
screenshareAudio: boolean;
screenshareVideo: boolean;
}
type BroadcastMessageTarget = {
participantIds: string[];
} | {
presetNames: string[];
} | {
meetingIds: string[];
};
type ParticipantsEvents = {
['viewModeChanged']: (payload: {
viewMode: string;
currentPage: number;
pageCount: number;
}) => void;
['activeSpeaker']: (payload: {
peerId: string;
volume: number;
}) => void;
['broadcastedMessage']: (payload: {
type: string;
payload: BroadcastMessagePayload;
timestamp: number;
}) => void;
['poorConnection']: (payload: {
participantId: string;
score: number;
kind: string;
}) => void;
['pageChanged']: (payload: {
viewMode: string;
currentPage: number;
pageCount: number;
}) => void;
['mediaScoreUpdate']: (payload: {
kind: string;
isScreenshare: boolean;
score: number;
participantId: string;
scoreStats: ConsumerScoreStats;
}) => void;
['media_decode_error']: (payload: {
reason: string;
code: '1702' | '1703';
}) => void;
['*']: (event: string, ...args: any[]) => void;
};
declare class DyteParticipants$1 extends DyteTypedEventEmitter {
readonly waitlisted: Readonly>>;
readonly joined: Readonly;
readonly active: Readonly;
readonly videoSubscribed: Readonly;
readonly audioSubscribed: Readonly;
readonly pinned: Readonly;
readonly all: Readonly;
get pip(): DytePip;
rateLimitConfig: {
maxInvocations: number;
period: number;
};
get rateLimits(): {
maxInvocations: number;
period: number;
};
updateRateLimits(num: number, period: number): void;
get telemetry(): DyteTelemetry;
viewMode: ViewMode;
currentPage: number;
lastActiveSpeaker: string;
selectedPeers: DyteSelectedPeers;
constructor(context: Context, self: DyteSelf$1, roomSocketHandler: RoomSocketHandler);
setupEvents(): void;
get count(): number;
get maxActiveParticipantsCount(): number;
setMaxActiveParticipantsCount(limit: number): void;
get pageCount(): number;
acceptWaitingRoomRequest(id: string): void;
acceptAllWaitingRoomRequest(userIds: string[]): Promise;
rejectWaitingRoomRequest(id: string): Promise;
setViewMode(viewMode: ViewMode): Promise;
subscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise;
unsubscribe(peerIds: string[], kinds?: ('audio' | 'video' | 'screenshareAudio' | 'screenshareVideo')[]): Promise;
getPeerIdsForCurrentPage(): string[];
setPage(page: number): Promise