@fishjam-cloud/react-client
Version:
React client library for Fishjam
47 lines • 1.85 kB
TypeScript
import { type FishjamClient, type Logger } from "@fishjam-cloud/ts-client";
import type { PeerStatus, TracksMiddleware } from "../../types/public";
export type UseScreenshareResult = {
/**
* Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.
*/
startStreaming: (props?: {
audioConstraints?: boolean | MediaTrackConstraints;
videoConstraints?: boolean | MediaTrackConstraints;
}) => Promise<void>;
/**
* Stops the stream and cancels browser screen sharing.
*/
stopStreaming: () => Promise<void>;
/**
* The MediaStream object containing both tracks.
*/
stream: MediaStream | null;
/**
* The separate video MediaStreamTrack.
*/
videoTrack: MediaStreamTrack | null;
/**
* The separate audio MediaStreamTrack.
*/
audioTrack: MediaStreamTrack | null;
/**
* The middleware currently assigned to process the tracks.
* A screenshare may include both audio and video tracks, and this middleware is capable of processing
* each track type.
*/
currentTracksMiddleware: TracksMiddleware | null;
/**
* Sets the middleware responsible for processing the tracks.
* @param middleware The middleware to set, which can be a TracksMiddleware instance or null to remove the middleware.
* @returns A Promise that resolves once the middleware is successfully set.
*/
setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
};
interface ScreenShareManagerProps {
fishjamClient: FishjamClient;
peerStatus: PeerStatus;
logger: Logger;
}
export declare const useScreenShareManager: ({ fishjamClient, peerStatus, logger, }: ScreenShareManagerProps) => UseScreenshareResult;
export {};
//# sourceMappingURL=useScreenshareManager.d.ts.map