25 lines
719 B
TypeScript
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;
|
|
} |