Files
WebRTC-Broadcast/public/js/interfaces/IWebRTCClient.ts
2025-09-05 00:36:54 -04:00

25 lines
719 B
TypeScript

export interface ISignalingMessage {
type: 'offer' | 'answer' | 'ice-candidate' | 'join' | 'leave' | 'publisher-joined' | 'publisher-left';
data?: any;
senderId?: string;
targetId?: string;
}
export interface IWebRTCClient {
connect(): Promise<void>;
disconnect(): void;
sendMessage(message: ISignalingMessage): void;
isConnected(): boolean;
}
export interface IMediaHandler {
getLocalStream(): Promise<MediaStream>;
stopLocalStream(): void;
getLocalVideo(): HTMLVideoElement | null;
}
export interface IUIController {
updateStatus(status: string, className: string): void;
updateSubscribersCount(count: number): void;
setButtonStates(startEnabled: boolean, stopEnabled: boolean): void;
}