@fishjam-cloud/react-client
Version:
React client library for Fishjam
48 lines • 2.07 kB
TypeScript
import type { Metadata, Variant } from "@fishjam-cloud/ts-client";
import type { PeerId, RemoteTrack, Track } from "../types/public";
/**
*
* @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
* @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
*/
export type PeerWithTracks<PeerMetadata, ServerMetadata, T extends Track = Track> = {
id: PeerId;
metadata?: Metadata<PeerMetadata, ServerMetadata>;
tracks: T[];
cameraTrack?: T;
microphoneTrack?: T;
screenShareVideoTrack?: T;
screenShareAudioTrack?: T;
customVideoTracks: T[];
customAudioTracks: T[];
};
/**
* Hook allows to access id, tracks and metadata of the local and remote peers.
*
* @category Connection
* @group Hooks
* @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
* @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
*/
export declare function usePeers<PeerMetadata = Record<string, unknown>, ServerMetadata = Record<string, unknown>>(): {
/**
* The local peer with distinguished tracks (camera, microphone, screen share).
* Will be null if the local peer is not found.
*/ localPeer: PeerWithTracks<PeerMetadata, ServerMetadata, Track> | null;
/**
* Array of remote peers with distinguished tracks (camera, microphone, screen share).
*/ remotePeers: PeerWithTracks<PeerMetadata, ServerMetadata, RemoteTrack>[];
/**
* @deprecated Use remotePeers instead
* Legacy array containing remote peers.
* This property will be removed in future versions.
*/
peers: PeerWithTracks<PeerMetadata, ServerMetadata, RemoteTrack>[];
/**
* This function allows to set the quality of tracks received from remote peers.
* @param trackIds The array of the track ids to set the quality for.
* @param quality The quality to set for the track.
*/
setReceivedTracksQuality: (trackIds: string[], quality: Variant) => void;
};
//# sourceMappingURL=usePeers.d.ts.map