import type { JoinOptions, MediaClientConsumer, MediaDevice, Peer, Producer } from '../types'; import { SignalingClient } from './signaling'; import { MediaClient } from './media'; import { DeviceClient } from './device'; import { TailchatMeetingClientSettings } from './settings'; import { EventEmitter } from 'eventemitter-strict'; import { RoomClient } from './room'; import { ProducerClient } from './producer'; interface TailchatMeetingClientEventMap { clientClose: () => void; } export declare class TailchatMeetingClient extends EventEmitter { signalingHost: string; peerId: string; signaling?: SignalingClient; media?: MediaClient; room?: RoomClient; device: DeviceClient; roomId?: string; private closed; producer: ProducerClient; settings: TailchatMeetingClientSettings; /** * @param signalingHost 信令服务器地址,形如: wss://xxxx.com:443 * @param peerId 用户的唯一标识 */ constructor(signalingHost: string, peerId: string); get enableWebcam(): () => Promise; get disableWebcam(): () => Promise; get webcamEnabled(): boolean; get enableMic(): () => Promise; get disableMic(): () => Promise; get micEnabled(): boolean; get enableScreenSharing(): () => Promise; get disableScreenSharing(): () => Promise; get screenSharingEnabled(): boolean; /** * 加入房间 */ join(roomId: string, options: JoinOptions): Promise; /** * 关闭客户端 */ close(): void; /** * 获取所有可用设备 * @returns */ getAvailableMediaDevices(): Promise; /** * 根据参会者id查找消费端 * @param peerId 参会者ID * @returns */ getConsumersByPeerId(peerId: string): { /** * 麦克风 */ micConsumer: MediaClientConsumer | undefined; /** * 摄像头 */ webcamConsumer: MediaClientConsumer | undefined; /** * 共享屏幕 */ screenConsumer: MediaClientConsumer | undefined; /** * 额外视频源 */ extraVideoConsumers: MediaClientConsumer[]; }; /** * 当本地打开网络摄像头 */ onWebcamProduce(callback: (webcamProducer: Producer) => void): void; /** * 当本地网络摄像头关闭 */ onWebcamClose(callback: () => void): void; /** * 当本地麦克风打开 */ onMicProduce(callback: (micProducer: Producer) => void): void; /** * 当本地麦克风关闭 */ onMicClose(callback: () => void): void; /** * 当本地麦克风打开 */ onScreenSharingProduce(callback: (screenVideoProducer: Producer) => void): void; /** * 当本地麦克风关闭 */ onScreenSharingClose(callback: () => void): void; /** * 当有参会者入会时的回调 */ onPeerJoin(callback: (peer: Peer) => void): void; /** * 当有参会者离会时的回调 */ onPeerLeave(callback: (peer: Peer) => void): void; /** * 当参会者人员信息发生变化时的回调 */ onPeersUpdate(callback: (peers: Peer[]) => void): void; /** * 当参会者人员信息发生变化时的回调 */ onPeerConsumerUpdate(callback: (peerId: string, consumer: MediaClientConsumer | null) => void): void; } export {};