UNPKG

@connectycube/use-calls

Version:

A React hook for state management in ConnectyCube-powered audio/video calls solutions

89 lines 3.5 kB
import { Calls, CallSessionConnectionState, Media } from "connectycube/types"; export declare enum ActiveMedia { USER = 0, DISPLAY = 1 } export declare enum CallDataType { ON_CALL = "onCall", ON_STOP_CALLING = "onStopCalling", ON_ACCEPT = "onAccept", ON_REJECT = "onReject", ON_STOP = "onStop", ON_NOT_ANSWER = "onNotAnswer", ON_CONNECTION_STATE = "onConnectionState" } export type CallData = { userID?: number; userInfo?: Calls.UserInfo; connectionState?: CallSessionConnectionState; }; export interface CallsStoreSessionState { activeCall: Calls.Session | null; incomingCall: Calls.Session | null; } export interface CallsStoreSessionDataState { deviceChangeEvent: Event | null; incomingCallCallData: CallData | null; incomingCallStopData: CallData | null; activeCallAcceptData: CallData | null; activeCallRejectData: CallData | null; activeCallStopData: CallData | null; activeCallNotAnswerData: CallData | null; activeCallConnectionStateData: CallData | null; } export interface CallsStoreMediaState { localStream: MediaStream | null; remoteStreams: { [key: number]: MediaStream; }; userMediaParams: Media.UserParams; displayMediaParams: Media.DisplayParams; activeMedia: ActiveMedia; } export interface CallsStoreState extends CallsStoreSessionState, CallsStoreSessionDataState, CallsStoreMediaState { participantsIDs: Set<number>; hasActiveListeners: boolean; } export interface CallsStoreSessionActions { setActiveCall: (session: Calls.Session) => void; resetActiveCall: () => void; setIncomingCall: (session: Calls.Session) => void; resetIncomingCall: () => void; } export interface CallsStoreSessionDataActions { setDeviceChangeEvent: (deviceChangeEvent: Event) => void; upsertSessionData: (type: CallDataType, data: CallData) => void; resetSessionData: (type?: CallDataType) => void; } export interface CallsStoreMediaActions { setLocalStream: (stream: MediaStream) => void; resetLocalStream: () => void; addRemoteStream: (key: number, stream: MediaStream) => void; removeRemoteStream: (key: number) => void; resetRemoteStreams: () => void; saveUserMediaParams: (params: Media.UserParams) => void; resetUserMediaParams: () => void; saveDisplayMediaParams: (params: Media.DisplayParams) => void; resetDisplayMediaParams: () => void; saveActiveMedia: (activeMedia: ActiveMedia) => void; } export interface CallsStoreActions extends CallsStoreSessionActions, CallsStoreSessionDataActions, CallsStoreMediaActions { setParticipantsIDs: (participantsIDs: number[]) => void; participantDidEnter: (id: number) => void; participantDidLeave: (id: number) => void; activateCallsListeners: () => void; resetStore: () => void; } interface CallsStore extends CallsStoreState, CallsStoreActions { } declare const useCallsStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<CallsStore>, "subscribe"> & { subscribe: { (listener: (selectedState: CallsStore, previousSelectedState: CallsStore) => void): () => void; <U>(selector: (state: CallsStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: { equalityFn?: ((a: U, b: U) => boolean) | undefined; fireImmediately?: boolean; } | undefined): () => void; }; }>; export default useCallsStore; //# sourceMappingURL=useCallsStore.d.ts.map