import type { Config, Janus, VoidCallback, PlainObject } from '../types'; import { JanusEvent } from '../types/constants'; import EventEmitter from 'eventemitter3'; import JanusEngine from './janus.js'; export default class JanusClient { token: Config.Credentials['token']; server: Config.Conference['server']; debug: Config.JanusDebug; engine: JanusEngine; videoRoomPlugin: Janus.VideoRoomPluginHandle | null; isOnlyAudio: boolean; currentRoomId: string | null; currentUserId: number | string | null; remoteFeeds: Record; remoteJseps: PlainObject; remoteFeedsAttachingInProgress: Record; bitrateTimers: { [userId: number | string]: NodeJS.Timeout | number | null; }; emitter: EventEmitter; constructor(token: Config.Credentials['token']); createSession({ success, error, destroyed, timeoutSessionCallback, }: Janus.InitCallbacks): void; getSessionId(): string | null; destroySession({ success, error }: Janus.SuccessErrorCallbacks): void; attachVideoConferencingPlugin(isRemote: boolean, userId: number, skipMedia: boolean, callbacks: Janus.PluginCallbacks): void; onLocalTrack(_track: MediaStreamTrack, _on: unknown): void; onRemoteTrack(remoteFeed: Janus.RemoteFeed, track: MediaStreamTrack, mid: string, _on: unknown, metadata: { reason?: string; } | undefined): void; getPluginId(): string | null; detachVideoConferencingPlugin(callbacks: Janus.SuccessErrorCallbacks): void; join(roomId: string, userId: number, isOnlyAudio: boolean, callbacks: Janus.RequestCallbacks): void; leave(callbacks: Janus.RequestCallbacks): void; listOnlineParticipants(roomId: string, callbacks: Janus.SuccessErrorCallbacks): void; toggleAudioMute(): boolean; isAudioMuted(): boolean; toggleRemoteAudioMute(userId: number): boolean; isRemoteAudioMuted(userId: number): boolean; toggleVideoMute(): boolean; isVideoMuted(): boolean; toggleRemoteVideoMute(userId: number): boolean; isRemoteVideoMuted(userId: number): boolean; sendKeyframeRequest(roomId: string, callbacks: Janus.SuccessErrorCallbacks): void; getTracksFromStream(stream: MediaStream): { type: string; capture: MediaStreamTrack; recv: boolean; }[]; createOffer(mediaParams: { stream?: MediaStream; media: { audio: boolean; video: boolean; }; replace?: boolean; }, callbacks: Janus.SuccessErrorCallbacks): void; getTracksMidsFromStream(stream: MediaStream): { type: string; mid: string; recv: boolean; }[]; createAnswer({ remoteFeed, jsep }: { remoteFeed: Janus.RemoteFeed; jsep: unknown; }, existedStream: MediaStream, callbacks: Janus.SuccessErrorCallbacks): void; detachRemoteFeed(userId: number): boolean; getUserBitrate(userId: number): unknown; getVolume(resultCallback: (value: unknown) => void): void; getUserVolume(userId: number, resultCallback: (value: unknown) => void): void; showBitrate(userId: number, element: Janus.BitrateDisplayElement): void; hideBitrate(userId: number, element: Janus.BitrateDisplayElement): void; on(eventType: JanusEvent, listener: VoidCallback): EventEmitter; removeAllListeners(eventType?: JanusEvent): EventEmitter; } //# sourceMappingURL=JanusClient.d.ts.map