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 = (config: ConnectConfig) => () => void; export type CreateJellyfishClient = { JellyfishContextProvider: ({ children }: JellyfishContextProviderProps) => JSX.Element; useConnect: () => (config: ConnectConfig) => () => void; useDisconnect: () => () => void; useStatus: () => PeerStatus; useSelector: (selector: Selector) => Result; useTracks: () => Record>; useSetupMedia: (config: UseSetupMediaConfig) => UseSetupMediaResult; useCamera: () => UseCameraAndMicrophoneResult["camera"]; useMicrophone: () => UseCameraAndMicrophoneResult["microphone"]; useScreenShare: () => UseScreenShareResult; useClient: () => Client; }; /** * 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: (config?: CreateConfig, deviceManagerDefaultConfig?: DeviceManagerConfig, screenShareManagerDefaultConfig?: ScreenShareManagerConfig) => CreateJellyfishClient; //# sourceMappingURL=create.d.ts.map