UNPKG

@jellyfish-dev/react-client-sdk

Version:
32 lines 2 kB
import { JSX, ReactNode } from "react"; import type { Selector } from "./state.types"; import { PeerStatus, TrackId, TrackWithOrigin } from "./state.types"; import { ConnectConfig, CreateConfig } from "@jellyfish-dev/ts-client-sdk"; import { DeviceManagerConfig, UseCameraAndMicrophoneResult, UseScreenShareResult, UseSetupMediaConfig, UseSetupMediaResult } from "./types"; import { Client } from "./Client"; import { ScreenShareManagerConfig } from "./ScreenShareManager"; export type JellyfishContextProviderProps = { children: ReactNode; }; export type UseConnect<PeerMetadata> = (config: ConnectConfig<PeerMetadata>) => () => void; export type CreateJellyfishClient<PeerMetadata, TrackMetadata> = { JellyfishContextProvider: ({ children }: JellyfishContextProviderProps) => JSX.Element; useConnect: () => (config: ConnectConfig<PeerMetadata>) => () => void; useDisconnect: () => () => void; useStatus: () => PeerStatus; useSelector: <Result>(selector: Selector<PeerMetadata, TrackMetadata, Result>) => Result; useTracks: () => Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>; useSetupMedia: (config: UseSetupMediaConfig<TrackMetadata>) => UseSetupMediaResult; useCamera: () => UseCameraAndMicrophoneResult<TrackMetadata>["camera"]; useMicrophone: () => UseCameraAndMicrophoneResult<TrackMetadata>["microphone"]; useScreenShare: () => UseScreenShareResult<TrackMetadata>; useClient: () => Client<PeerMetadata, TrackMetadata>; }; /** * Create a client that can be used with a context. * Returns context provider, and two hooks to interact with the context. * * @returns ContextProvider, useSelector, useConnect */ export declare const create: <PeerMetadata, TrackMetadata>(config?: CreateConfig<PeerMetadata, TrackMetadata>, deviceManagerDefaultConfig?: DeviceManagerConfig, screenShareManagerDefaultConfig?: ScreenShareManagerConfig) => CreateJellyfishClient<PeerMetadata, TrackMetadata>; //# sourceMappingURL=create.d.ts.map