@fishjam-cloud/react-client
Version:
React client library for Fishjam
34 lines • 1.73 kB
TypeScript
import type { Logger } from "@fishjam-cloud/ts-client";
import type { SetStateAction } from "react";
import type { DeviceError, DeviceItem, TrackMiddleware } from "../../../types/public";
type DeviceManagerProps = {
mediaStream: MediaStream | null;
setMediaStream: (action: SetStateAction<MediaStream | null>) => void;
deviceError: DeviceError | null;
setDeviceError: (action: SetStateAction<DeviceError | null>) => void;
getInitialStream: () => Promise<MediaStream | null>;
deviceType: "audio" | "video";
allDevicesList: MediaDeviceInfo[];
constraints?: MediaTrackConstraints | boolean;
setSelectedDevice: (device: MediaDeviceInfo) => void;
selectedDevice: MediaDeviceInfo | null;
logger: Logger;
};
export type DeviceManager = {
startDevice: (deviceId?: string | null) => Promise<[MediaStreamTrack, null] | [null, DeviceError]>;
stopDevice: () => void;
selectDevice: (deviceId: string) => Promise<[MediaStreamTrack, null] | [null, DeviceError]> | undefined;
activeDevice: DeviceItem | null;
deviceTrack: MediaStreamTrack | null;
deviceList: DeviceItem[];
deviceEnabled: boolean;
enableDevice: () => void;
disableDevice: () => void;
currentMiddleware: TrackMiddleware;
applyMiddleware: (middleware: TrackMiddleware) => Promise<MediaStreamTrack | null>;
deviceError: DeviceError | null;
selectedDevice: MediaDeviceInfo | null;
};
export declare const useDeviceManager: ({ mediaStream, setMediaStream, getInitialStream, deviceType, constraints, allDevicesList, setSelectedDevice, deviceError, setDeviceError, selectedDevice, logger, }: DeviceManagerProps) => DeviceManager;
export {};
//# sourceMappingURL=useDeviceManager.d.ts.map