@jellyfish-dev/react-client-sdk
Version:
React client library for Jellyfish.
52 lines • 2.17 kB
TypeScript
import type { TrackEncoding, VadStatus, SimulcastConfig } from "@jellyfish-dev/ts-client-sdk";
import { UseUserMediaState } from "./types";
import { UseCameraAndMicrophoneResult } from "./types";
import { Client } from "./Client";
import { DeviceManager } from "./DeviceManager";
import { ScreenShareManager } from "./ScreenShareManager";
export type TrackId = string;
export type PeerId = string;
export type Track<TrackMetadata> = {
stream: MediaStream | null;
encoding: TrackEncoding | null;
trackId: TrackId;
metadata?: TrackMetadata;
rawMetadata: any;
metadataParsingError?: any;
simulcastConfig: SimulcastConfig | null;
vadStatus: VadStatus;
track: MediaStreamTrack | null;
};
export interface Origin<OriginMetadata> {
id: string;
type: string;
metadata?: OriginMetadata;
rawMetadata: any;
metadataParsingError?: any;
}
export type TrackWithOrigin<PeerMetadata, TrackMetadata> = Track<TrackMetadata> & {
origin: Origin<PeerMetadata>;
};
export type PeerState<PeerMetadata, TrackMetadata> = {
id: PeerId;
metadata?: PeerMetadata;
rawMetadata: any;
metadataParsingError?: any;
tracks: Record<TrackId, Track<TrackMetadata>>;
};
export type PeerStatus = "connecting" | "connected" | "authenticated" | "joined" | "error" | "closed" | null;
export type State<PeerMetadata, TrackMetadata> = {
local: PeerState<PeerMetadata, TrackMetadata> | null;
remote: Record<PeerId, PeerState<PeerMetadata, TrackMetadata>>;
tracks: Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
bandwidthEstimation: bigint;
status: PeerStatus;
media: UseUserMediaState | null;
devices: UseCameraAndMicrophoneResult<TrackMetadata>;
client: Client<PeerMetadata, TrackMetadata>;
deviceManager: DeviceManager;
screenShareManager: ScreenShareManager;
};
export type SetStore<PeerMetadata, TrackMetadata> = (setter: (prevState: State<PeerMetadata, TrackMetadata>) => State<PeerMetadata, TrackMetadata>) => void;
export type Selector<PeerMetadata, TrackMetadata, Result> = (snapshot: State<PeerMetadata, TrackMetadata>) => Result;
//# sourceMappingURL=state.types.d.ts.map