import React from 'react'; import { HMSStore, HMSActions, HMSNotificationInCallback, HMSNotifications, HMSStatsStore, IStoreReadOnly, HMSStats, HMSStoreWrapper, HMSNotificationTypeParam } from '@100mslive/hms-video-store'; import { EqualityChecker, StateSelector } from 'zustand'; export interface IHMSReactStore extends IStoreReadOnly { (selector: StateSelector, equalityFn?: EqualityChecker): U; } export interface HMSRoomProviderProps { actions?: HMSActions; store?: HMSStoreWrapper; notifications?: HMSNotifications; stats?: HMSStats; isHMSStatsOn?: boolean; } export declare const HMSRoomProvider: React.FC; /** * `useHMSStore` is a read only hook which can be passed a selector to read data. * The hook can only be used in a component if HMSRoomProvider is present in its ancestors. */ export declare const useHMSStore: (selector: StateSelector, equalityFn?: EqualityChecker) => StateSlice; export declare const useHMSStatsStore: (selector: StateSelector, equalityFn?: EqualityChecker) => StateSlice | undefined; /** * `useHMSVanillaStore` is a read only hook which returns the vanilla HMSStore. * Usage: * ``` * const hmsStore = useHMSVanillaStore(); * const dominantSpeaker = hmsStore.getState(selectDominantSpeaker); * ``` * * Note: There's no need to use the vanilla hmsStore in React components. * This is used in rare cases where the store needs to be accessed outside a React component. * For almost every case, `useHMSStore` would get the job done. */ export declare const useHMSVanillaStore: () => IHMSReactStore; export declare const useHMSActions: () => HMSActions; /** * `useHMSNotifications` is a read only hook which gives the latest notification(HMSNotification) received. */ export declare const useHMSNotifications: () => HMSNotificationInCallback | null; export declare const useIsHMSStatsOn: () => boolean;