uyem
Version:
WebRTC client-server SFU application
118 lines (117 loc) • 5.49 kB
TypeScript
import RTC from '../core/rtc';
import { LocaleServer } from '../types/interfaces';
import { Stream, DialogProps, Volumes, DialogPropsUsersContext } from '../types';
export declare const useConnection: ({ id, roomId, iceServers, server, port, userName, cleanAudioAnalyzer, locale, }: {
id: number | string;
roomId: number | string | null;
iceServers: RTCConfiguration['iceServers'];
server: string;
port: number;
userName: string;
cleanAudioAnalyzer: (uid: string | number) => void;
locale: LocaleServer['client'];
}) => {
askFloor: () => void;
askeds: (string | number)[];
streams: Stream[];
lenght: number;
rtc: RTC;
lostStreamHandler: (args: {
target: string | number;
roomId: string | number;
connId: string;
eventName: string;
}) => void;
screenShare: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => Promise<void>;
shareScreen: boolean;
muted: boolean;
changeMuted: () => void;
muteds: (string | number)[];
video: boolean;
offVideo: (string | number)[];
changeVideoWrapper: (target: string | number) => () => void;
isOwner: boolean;
adminMuted: boolean;
adminMuteds: (string | number)[];
clickToMuteWrapper: (context: DialogProps<DialogPropsUsersContext>['context']) => () => void;
clickToUnMuteWrapper: (context: DialogProps<DialogPropsUsersContext>['context']) => () => void;
clickToBanWrapper: (context: DialogProps<DialogPropsUsersContext>['context']) => () => void;
clickToVideoOffWrapper: ({ unitId }: DialogProps<DialogPropsUsersContext>['context']) => () => void;
clickToSetAdminWrapper: ({ unitId, isOwner }: DialogProps<DialogPropsUsersContext>['context']) => () => void;
onVideoTimer: number;
};
export declare const useVideoDimensions: ({ lenght, container, }: {
lenght: number;
container: HTMLDivElement | null;
}) => (e: React.SyntheticEvent<HTMLVideoElement, Event>, stream: MediaStream) => void;
export declare const useOnclickClose: ({ lenght, container }: {
lenght: number;
container: HTMLDivElement | null;
}) => (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
export declare const usePressEscape: () => (e: React.KeyboardEvent<HTMLDivElement>) => void;
export declare const useAudioAnalyzer: () => {
analyzeSoundLevel: (uid: string | number) => void;
createAudioAnalyzer: (item: Stream) => void;
cleanAudioAnalyzer: (uid: string | number) => void;
speaker: string | number;
};
export declare const useVolumeDialog: ({ roomId, container, userId, }: {
roomId: string | number;
container: React.MutableRefObject<HTMLDivElement | null>;
userId: string | number;
}) => {
dialog: Omit<DialogProps<DialogPropsUsersContext>, "children">;
clickToVolume: (targetId: string | number) => (ev: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
changeVolumeWrapper: (targetId: number | string) => (ev: {
target: {
value: React.ChangeEvent<HTMLInputElement>['target']['value'];
};
}) => void;
volumes: Volumes;
};
export declare const useSettingsDialog: () => {
dialogSettings: Omit<DialogProps<DialogPropsUsersContext>, "children">;
clickToSettingsWrapper: ({ target, isOwner }: {
target: string | number;
isOwner: boolean;
}) => (ev: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
};
export declare const useVideoStarted: ({ streams, rtc, lostStreamHandler, roomId, }: {
streams: Stream[];
rtc: RTC;
lostStreamHandler: (args: {
target: string | number;
roomId: string | number;
connId: string;
eventName: string;
}) => void;
roomId: string | number;
}) => {
played: Record<string, boolean>;
setPlayed: import("react").Dispatch<import("react").SetStateAction<Record<string, boolean>>>;
};
export declare const useVideoHandlers: ({ analyzeSoundLevel, createAudioAnalyzer, lostStreamHandler, setPlayed, played, setVideoDimensions, roomId, }: {
analyzeSoundLevel: (uid: string | number) => void;
createAudioAnalyzer: (item: Stream) => void;
lostStreamHandler: RTC['lostStreamHandler'];
setPlayed: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;
played: Record<string, boolean>;
setVideoDimensions: (e: React.SyntheticEvent<HTMLVideoElement, Event>, stream: MediaStream) => void;
roomId: string | number;
}) => {
onAbortWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onEmptiedWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onEndedWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onLoadedDataWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onLoadedMetadataWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onStalledWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onSuspendWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onWaitingWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
onTimeUpdateWrapper: (item: Stream) => (e: React.SyntheticEvent<HTMLVideoElement, Event>) => void;
};
export declare const useMaxVideoStreams: ({ streams }: {
streams: Stream[];
}) => {
canPlayVideo: boolean;
activeVideoLength: number;
};