@100mslive/hms-video-store 0.10.0 → 0.10.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/controller/beam/BeamController.d.ts +5 -3
  2. package/dist/controller/beam/BeamSpeakerLabelsLogger.d.ts +3 -3
  3. package/dist/core/IHMSActions.d.ts +18 -5
  4. package/dist/core/IHMSStore.d.ts +7 -3
  5. package/dist/core/hmsSDKStore/HMSNotifications.d.ts +6 -4
  6. package/dist/core/hmsSDKStore/HMSPlaylist.d.ts +3 -3
  7. package/dist/core/hmsSDKStore/HMSReactiveStore.d.ts +7 -4
  8. package/dist/core/hmsSDKStore/HMSSDKActions.d.ts +9 -3
  9. package/dist/core/hmsSDKStore/HMSSessionStore.d.ts +11 -0
  10. package/dist/core/hmsSDKStore/internalTypes.d.ts +1 -1
  11. package/dist/core/schema/index.d.ts +1 -0
  12. package/dist/core/schema/schema.d.ts +9 -2
  13. package/dist/core/schema/session-store.d.ts +11 -0
  14. package/dist/core/selectors/derivedSelectors.d.ts +12 -4
  15. package/dist/core/selectors/selectors.d.ts +115 -39
  16. package/dist/core/selectors/selectorsByID.d.ts +137 -43
  17. package/dist/core/selectors/selectorsByReference.d.ts +21 -7
  18. package/dist/index.cjs.js +1 -1
  19. package/dist/index.cjs.js.map +3 -3
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +3 -3
  22. package/package.json +3 -3
  23. package/src/controller/beam/BeamController.ts +5 -5
  24. package/src/controller/beam/BeamSpeakerLabelsLogger.ts +5 -5
  25. package/src/core/IHMSActions.ts +18 -4
  26. package/src/core/IHMSStore.ts +5 -3
  27. package/src/core/hmsSDKStore/HMSNotifications.ts +6 -3
  28. package/src/core/hmsSDKStore/HMSPlaylist.ts +3 -3
  29. package/src/core/hmsSDKStore/HMSReactiveStore.ts +13 -11
  30. package/src/core/hmsSDKStore/HMSSDKActions.ts +46 -6
  31. package/src/core/hmsSDKStore/HMSSessionStore.ts +28 -0
  32. package/src/core/hmsSDKStore/internalTypes.ts +1 -1
  33. package/src/core/schema/index.ts +1 -0
  34. package/src/core/schema/schema.ts +9 -2
  35. package/src/core/schema/session-store.ts +11 -0
  36. package/src/core/selectors/selectors.ts +1 -1
  37. package/src/core/selectors/selectorsByID.ts +27 -0
  38. package/src/test/fakeStore/fakeHMSStore.ts +1 -0
@@ -1,14 +1,16 @@
1
- import { HMSNotifications, IHMSNotifications, IHMSStore } from '../../core';
1
+ import { HMSGenericTypes, HMSNotifications, IHMSNotifications, IHMSStore } from '../../core';
2
2
  import { IHMSActions } from '../../core/IHMSActions';
3
3
  import { IHMSStoreReadOnly } from '../../core/IHMSStore';
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export declare class BeamControllerStore {
7
+ export declare class BeamControllerStore<T extends HMSGenericTypes = {
8
+ sessionStore: Record<string, any>;
9
+ }> {
8
10
  private readonly actions;
9
11
  private readonly store;
10
12
  private readonly notifications;
11
- constructor(hmsStore: IHMSStore, hmsActions: IHMSActions, hmsNotifications: HMSNotifications);
13
+ constructor(hmsStore: IHMSStore<T>, hmsActions: IHMSActions<T>, hmsNotifications: HMSNotifications);
12
14
  /**
13
15
  * A reactive store which has a subscribe method you can use in combination with selectors
14
16
  * to subscribe to a subset of the store. The store serves as a single source of truth for
@@ -1,10 +1,10 @@
1
- import { HMSPeer, IHMSStore } from '../../core';
1
+ import { HMSGenericTypes, HMSPeer, IHMSStore } from '../../core';
2
2
  import { IHMSActions } from '../../core/IHMSActions';
3
3
  /**
4
4
  * Log data of audio level and speaker speaking periodically to beam for transcript
5
5
  * diarization.
6
6
  */
7
- export declare class BeamSpeakerLabelsLogger {
7
+ export declare class BeamSpeakerLabelsLogger<T extends HMSGenericTypes> {
8
8
  private audioContext?;
9
9
  private readonly intervalMs;
10
10
  private shouldMonitor;
@@ -13,7 +13,7 @@ export declare class BeamSpeakerLabelsLogger {
13
13
  private readonly analysers;
14
14
  private readonly store;
15
15
  private actions;
16
- constructor(store: IHMSStore, actions: IHMSActions);
16
+ constructor(store: IHMSStore<T>, actions: IHMSActions<T>);
17
17
  start(): Promise<void>;
18
18
  stop(): Promise<void>;
19
19
  monitorAudioLevels(): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import { HLSTimedMetadata, HMSAudioPlugin, HMSAudioTrackSettings, HMSConfig, HMSLogLevel, HMSPluginSupportResult, HMSPreferredSimulcastLayer, HMSPreviewConfig, HMSScreenShareConfig, HMSVideoPlugin, HMSVideoTrackSettings, TokenRequest, TokenRequestOptions } from '@100mslive/hms-video';
2
2
  import { HLSConfig, RTMPRecordingConfig } from './hmsSDKStore/sdkTypes';
3
- import { HMSChangeMultiTrackStateParams, HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions } from './schema';
3
+ import { HMSChangeMultiTrackStateParams, HMSGenericTypes, HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, IHMSSessionStoreActions } from './schema';
4
4
  import { HMSRoleChangeRequest } from './selectors';
5
5
  /**
6
6
  * The below interface defines our SDK API Surface for taking room related actions.
@@ -18,7 +18,9 @@ import { HMSRoleChangeRequest } from './selectors';
18
18
  *
19
19
  * @category Core
20
20
  */
21
- export interface IHMSActions {
21
+ export interface IHMSActions<T extends HMSGenericTypes = {
22
+ sessionStore: Record<string, any>;
23
+ }> {
22
24
  preview(config: HMSPreviewConfig): Promise<void>;
23
25
  /**
24
26
  * join function can be used to join the room, if the room join is successful,
@@ -118,9 +120,13 @@ export interface IHMSActions {
118
120
  /**
119
121
  * Change settings of the local peer's video track
120
122
  * @param settings HMSVideoTrackSettings
121
- * `({ width, height, codec, maxFramerate, maxBitrate, deviceId, advanced })`
123
+ * `({ width, height, codec, maxFramerate, maxBitrate, deviceId, advanced, facingMode })`
122
124
  */
123
125
  setVideoSettings(settings: Partial<HMSVideoTrackSettings>): Promise<void>;
126
+ /**
127
+ * Toggle the camera between front and back if the both the camera's exist
128
+ */
129
+ switchCamera(): Promise<void>;
124
130
  /**
125
131
  * You can use the attach and detach video function
126
132
  * to add/remove video from an element for a track ID. The benefit of using this
@@ -309,13 +315,13 @@ export interface IHMSActions {
309
315
  * Session metadata is available to every peer in the room and is persisted throughout a session
310
316
  * till the last peer leaves a room
311
317
  *
312
- * @alpha - the API is not stable and might have breaking changes later
318
+ * @deprecated use `actions.sessionStore.set` instead
313
319
  */
314
320
  setSessionMetadata(metadata: any): Promise<void>;
315
321
  /**
316
322
  * Fetch the current room metadata from the server and populate it in store
317
323
  *
318
- * @alpha - the API is not stable and might have breaking changes later
324
+ * @deprecated use `actions.sessionStore.observe` instead
319
325
  */
320
326
  populateSessionMetadata(): Promise<void>;
321
327
  /**
@@ -412,4 +418,11 @@ export interface IHMSActions {
412
418
  * @alpha
413
419
  */
414
420
  enableBeamSpeakerLabelsLogging(): Promise<void>;
421
+ /**
422
+ * actions that can be performed on the real-time key-value store
423
+ *
424
+ * Values in the session store are available to every peer in the room(who have observed the relevant keys) and
425
+ * is persisted throughout a session till the last peer leaves a room(cleared after the last peer leaves the room)
426
+ */
427
+ sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
415
428
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { State, StateSelector, StoreApi, Subscribe } from 'zustand/vanilla';
7
7
  import { NamedSetState } from './hmsSDKStore/internalTypes';
8
- import { HMSStatsStore, HMSStore } from './schema';
8
+ import { HMSGenericTypes, HMSStatsStore, HMSStore } from './schema';
9
9
  /**
10
10
  * HMS Reactive store can be used to subscribe to different parts of the store using selectors
11
11
  * and get a callback when the value changes.
@@ -50,7 +50,9 @@ export declare type IStoreReadOnly<T extends State> = Omit<IStore<T>, 'setState'
50
50
  * HMS Reactive store can be used to subscribe to different parts of the store using selectors
51
51
  * and get a callback when the value changes.
52
52
  */
53
- export interface IHMSStore extends IStore<HMSStore> {
53
+ export interface IHMSStore<T extends HMSGenericTypes = {
54
+ sessionStore: Record<string, any>;
55
+ }> extends IStore<HMSStore<T>> {
54
56
  }
55
57
  /**
56
58
  * HMS store can be used to:
@@ -66,7 +68,9 @@ export interface IHMSStore extends IStore<HMSStore> {
66
68
  *
67
69
  * @category Core
68
70
  */
69
- export interface IHMSStoreReadOnly extends IStoreReadOnly<HMSStore> {
71
+ export interface IHMSStoreReadOnly<T extends HMSGenericTypes = {
72
+ sessionStore: Record<string, any>;
73
+ }> extends IStoreReadOnly<HMSStore<T>> {
70
74
  }
71
75
  export interface IHMSStatsStore extends IStore<HMSStatsStore> {
72
76
  }
@@ -1,13 +1,15 @@
1
1
  import * as sdkTypes from './sdkTypes';
2
2
  import { IHMSStore } from '../IHMSStore';
3
- import { HMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest, HMSDeviceChangeEvent, HMSException, HMSLeaveRoomRequest, HMSMessage, HMSPeer, HMSPlaylistItem, HMSTrackID } from '../schema';
3
+ import { HMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest, HMSDeviceChangeEvent, HMSException, HMSGenericTypes, HMSLeaveRoomRequest, HMSMessage, HMSPeer, HMSPlaylistItem, HMSTrackID } from '../schema';
4
4
  import { HMSNotificationCallback, HMSNotificationTypeParam, IHMSNotifications } from '../schema/notification';
5
- export declare class HMSNotifications implements IHMSNotifications {
5
+ export declare class HMSNotifications<T extends HMSGenericTypes = {
6
+ sessionStore: Record<string, any>;
7
+ }> implements IHMSNotifications {
6
8
  private id;
7
9
  private eventEmitter;
8
10
  private store;
9
- constructor(store: IHMSStore);
10
- onNotification: <T extends HMSNotificationTypeParam>(cb: HMSNotificationCallback<T>, type?: T | undefined) => () => void;
11
+ constructor(store: IHMSStore<T>);
12
+ onNotification: <T_1 extends HMSNotificationTypeParam>(cb: HMSNotificationCallback<T_1>, type?: T_1 | undefined) => () => void;
11
13
  sendPlaylistTrackEnded<T>(item: HMSPlaylistItem<T>): void;
12
14
  sendDeviceChange(request: HMSDeviceChangeEvent): void;
13
15
  sendLeaveRoom(request: HMSLeaveRoomRequest): void;
@@ -1,12 +1,12 @@
1
1
  import { HMSPlaylistManager } from './sdkTypes';
2
2
  import { IHMSStore } from '../IHMSStore';
3
- import { HMSPlaylistItem, HMSPlaylistType, IHMSPlaylistActions } from '../schema';
4
- export declare class HMSPlaylist implements IHMSPlaylistActions {
3
+ import { HMSGenericTypes, HMSPlaylistItem, HMSPlaylistType, IHMSPlaylistActions } from '../schema';
4
+ export declare class HMSPlaylist<T extends HMSGenericTypes> implements IHMSPlaylistActions {
5
5
  private playlistManager;
6
6
  private syncPlaylistState;
7
7
  private store;
8
8
  private type;
9
- constructor(playlistManager: HMSPlaylistManager, type: HMSPlaylistType, syncPlaylistState: (action: string) => void, store: IHMSStore);
9
+ constructor(playlistManager: HMSPlaylistManager, type: HMSPlaylistType, syncPlaylistState: (action: string) => void, store: IHMSStore<T>);
10
10
  play(id: string): Promise<void>;
11
11
  pause(): Promise<void>;
12
12
  playNext(): Promise<void>;
@@ -3,6 +3,7 @@ import { HMSNotifications } from './HMSNotifications';
3
3
  import { BeamControllerStore } from '../../controller/beam/BeamController';
4
4
  import { IHMSActions } from '../IHMSActions';
5
5
  import { IHMSStatsStoreReadOnly, IHMSStore, IHMSStoreReadOnly, IStore } from '../IHMSStore';
6
+ import { HMSGenericTypes } from '../schema';
6
7
  import { IHMSNotifications } from '../schema/notification';
7
8
  declare global {
8
9
  interface Window {
@@ -11,7 +12,9 @@ declare global {
11
12
  __triggerBeamEvent__: (args: any) => void;
12
13
  }
13
14
  }
14
- export declare class HMSReactiveStore {
15
+ export declare class HMSReactiveStore<T extends HMSGenericTypes = {
16
+ sessionStore: Record<string, any>;
17
+ }> {
15
18
  private readonly sdk?;
16
19
  private readonly actions;
17
20
  private readonly store;
@@ -19,7 +22,7 @@ export declare class HMSReactiveStore {
19
22
  private stats?;
20
23
  /** @TODO store flag for both HMSStore and HMSInternalsStore */
21
24
  private initialTriggerOnSubscribe;
22
- constructor(hmsStore?: IHMSStore, hmsActions?: IHMSActions, hmsNotifications?: HMSNotifications);
25
+ constructor(hmsStore?: IHMSStore<T>, hmsActions?: IHMSActions<T>, hmsNotifications?: HMSNotifications<T>);
23
26
  /**
24
27
  * By default store.subscribe does not call the handler with the current state at time of subscription,
25
28
  * this behaviour can be modified by calling this function. What it means is that instead of calling the
@@ -42,12 +45,12 @@ export declare class HMSReactiveStore {
42
45
  *
43
46
  * @deprecated use getActions
44
47
  */
45
- getHMSActions(): IHMSActions;
48
+ getHMSActions(): IHMSActions<T>;
46
49
  /**
47
50
  * Any action which may modify the store or may need to talk to the SDK will happen
48
51
  * through the IHMSActions instance returned by this
49
52
  */
50
- getActions(): IHMSActions;
53
+ getActions(): IHMSActions<T>;
51
54
  /**
52
55
  * This return notification handler function to which you can pass your callback to
53
56
  * receive notifications like peer joined, peer left, etc. to show in your UI or use
@@ -3,7 +3,7 @@ import { HMSNotifications } from './HMSNotifications';
3
3
  import * as sdkTypes from './sdkTypes';
4
4
  import { IHMSActions } from '../IHMSActions';
5
5
  import { IHMSStore } from '../IHMSStore';
6
- import { HMSChangeMultiTrackStateParams, HMSMessage, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions } from '../schema';
6
+ import { HMSChangeMultiTrackStateParams, HMSGenericTypes, HMSMessage, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, IHMSSessionStoreActions } from '../schema';
7
7
  import { HMSRoleChangeRequest } from '../selectors';
8
8
  /**
9
9
  * This class implements the IHMSActions interface for 100ms SDK. It connects with SDK
@@ -25,7 +25,9 @@ import { HMSRoleChangeRequest } from '../selectors';
25
25
  * 5. State is immutable, a new copy with new references is created when there is a change,
26
26
  * if you try to modify state outside of setState, there'll be an error.
27
27
  */
28
- export declare class HMSSDKActions implements IHMSActions {
28
+ export declare class HMSSDKActions<T extends HMSGenericTypes = {
29
+ sessionStore: Record<string, any>;
30
+ }> implements IHMSActions<T> {
29
31
  private hmsSDKTracks;
30
32
  private hmsSDKPeers;
31
33
  private readonly sdk;
@@ -35,8 +37,9 @@ export declare class HMSSDKActions implements IHMSActions {
35
37
  private ignoredMessageTypes;
36
38
  audioPlaylist: IHMSPlaylistActions;
37
39
  videoPlaylist: IHMSPlaylistActions;
40
+ sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
38
41
  private beamSpeakerLabelsLogger?;
39
- constructor(store: IHMSStore, sdk: HMSSdk, notificationManager: HMSNotifications);
42
+ constructor(store: IHMSStore<T>, sdk: HMSSdk, notificationManager: HMSNotifications<T>);
40
43
  refreshDevices(): Promise<void>;
41
44
  unblockAudio(): Promise<void>;
42
45
  setVolume(value: number, trackId?: HMSTrackID): Promise<void>;
@@ -54,6 +57,7 @@ export declare class HMSSDKActions implements IHMSActions {
54
57
  setEnabledTrack(trackID: string, enabled: boolean): Promise<void>;
55
58
  setAudioSettings(settings: Partial<sdkTypes.HMSAudioTrackSettings>): Promise<void>;
56
59
  setVideoSettings(settings: Partial<sdkTypes.HMSVideoTrackSettings>): Promise<void>;
60
+ switchCamera(): Promise<void>;
57
61
  sendMessage(message: string): void;
58
62
  sendBroadcastMessage(message: string, type?: string): Promise<void>;
59
63
  sendGroupMessage(message: string, roles: string[], type?: string): Promise<void>;
@@ -103,6 +107,7 @@ export declare class HMSSDKActions implements IHMSActions {
103
107
  private onDeviceChange;
104
108
  private sdkPreviewWithListeners;
105
109
  private onNetworkQuality;
110
+ private onSessionStoreUpdate;
106
111
  private startScreenShare;
107
112
  private stopScreenShare;
108
113
  private attachVideoInternal;
@@ -167,6 +172,7 @@ export declare class HMSSDKActions implements IHMSActions {
167
172
  private setProgress;
168
173
  private syncPlaylistState;
169
174
  private sendPeerUpdateNotification;
175
+ private setSessionStoreValueLocally;
170
176
  /**
171
177
  * setState is separate so any future changes to how state change can be done from one place.
172
178
  * @param fn
@@ -0,0 +1,11 @@
1
+ import { HMSSdk, SessionStoreUpdate } from '@100mslive/hms-video';
2
+ import { IHMSSessionStoreActions } from '../schema';
3
+ export declare class HMSSessionStore<T extends Record<string, any>> implements IHMSSessionStoreActions<T> {
4
+ private sdk;
5
+ private setLocally;
6
+ constructor(sdk: HMSSdk, setLocally: (updates: SessionStoreUpdate | SessionStoreUpdate[], actionName?: string) => void);
7
+ private get sdkSessionStore();
8
+ set<K extends keyof T>(key: K, value?: T[K]): Promise<void>;
9
+ observe(keys: keyof T | Array<keyof T>): Promise<void>;
10
+ unobserve(keys: keyof T | Array<keyof T>): Promise<void>;
11
+ }
@@ -1,4 +1,4 @@
1
1
  import { PartialState, State } from 'zustand/vanilla';
2
2
  export declare type NamedSetState<T extends State> = {
3
- <K1 extends keyof T, K2 extends keyof T = K1, K3 extends keyof T = K2, K4 extends keyof T = K3>(partial: PartialState<T, K1, K2, K3, K4>, name?: string): void;
3
+ <K1 extends keyof T, K2 extends keyof T = K1, K3 extends keyof T = K2, K4 extends keyof T = K3>(partial: PartialState<T, K1, K2, K3, K4>, name: string): void;
4
4
  };
@@ -9,3 +9,4 @@ export * from './error';
9
9
  export * from './requests';
10
10
  export * from './device-change';
11
11
  export * from './playlist';
12
+ export * from './session-store';
@@ -7,7 +7,12 @@ import { HMSRole } from './role';
7
7
  import { HMSRoom } from './room';
8
8
  import { HMSMediaSettings } from './settings';
9
9
  import { DeviceMap, HMSConnectionQuality, HMSPeerStats, HMSTrackStats } from '../hmsSDKStore/sdkTypes';
10
- export interface HMSStore {
10
+ export interface HMSGenericTypes {
11
+ sessionStore: Record<string, any>;
12
+ }
13
+ export interface HMSStore<T extends HMSGenericTypes = {
14
+ sessionStore: Record<string, any>;
15
+ }> {
11
16
  room: HMSRoom;
12
17
  peers: Record<HMSPeerID, HMSPeer>;
13
18
  speakers: Record<HMSTrackID, HMSSpeaker>;
@@ -23,6 +28,7 @@ export interface HMSStore {
23
28
  roles: Record<string, HMSRole>;
24
29
  appData?: Record<string, any>;
25
30
  roleChangeRequests: HMSRoleChangeStoreRequest[];
31
+ /** @deprecated use `sessionStore` instead */
26
32
  sessionMetadata?: any;
27
33
  preview?: {
28
34
  localPeer?: HMSPeerID;
@@ -31,6 +37,7 @@ export interface HMSStore {
31
37
  audioTrack?: HMSTrackID;
32
38
  };
33
39
  errors: HMSException[];
40
+ sessionStore: T['sessionStore'];
34
41
  }
35
42
  export interface HMSStatsStore {
36
43
  remoteTrackStats: Record<HMSTrackID, HMSTrackStats | undefined>;
@@ -45,5 +52,5 @@ export interface HMSStatsStore {
45
52
  /**
46
53
  * @internal
47
54
  */
48
- export declare const createDefaultStoreState: () => HMSStore;
55
+ export declare const createDefaultStoreState: <T extends HMSGenericTypes>() => HMSStore<T>;
49
56
  export declare const createDefaultStatsStore: () => HMSStatsStore;
@@ -0,0 +1,11 @@
1
+ export interface IHMSSessionStoreActions<T> {
2
+ set<K extends keyof T>(key: K, value?: T[K]): Promise<void>;
3
+ /**
4
+ * observe a particular key or set of keys to receive updates of its latest value when its changed
5
+ */
6
+ observe(keys: keyof T | Array<keyof T>): Promise<void>;
7
+ /**
8
+ * unobserve a particular key or set of keys to stop receiving updates of its latest value
9
+ */
10
+ unobserve(keys: keyof T | Array<keyof T>): Promise<void>;
11
+ }
@@ -13,16 +13,24 @@ export interface HMSRoleChangeRequest {
13
13
  role: HMSRole;
14
14
  token: string;
15
15
  }
16
- export declare const selectPeersWithAudioStatus: import("reselect").OutputSelector<HMSStore, HMSPeerWithMuteStatus[], (res1: Record<string, HMSPeer>, res2: Record<string, import("../schema").HMSTrack>) => HMSPeerWithMuteStatus[]>;
16
+ export declare const selectPeersWithAudioStatus: import("reselect").OutputSelector<HMSStore<{
17
+ sessionStore: Record<string, any>;
18
+ }>, HMSPeerWithMuteStatus[], (res1: Record<string, HMSPeer>, res2: Record<string, import("../schema").HMSTrack>) => HMSPeerWithMuteStatus[]>;
17
19
  /**
18
20
  * Select the role change request received for your local peer.
19
21
  */
20
- export declare const selectRoleChangeRequest: import("reselect").OutputSelector<HMSStore, HMSRoleChangeRequest | null, (res1: import("../schema").HMSRoleChangeStoreRequest, res2: Record<string, HMSPeer>, res3: Record<string, HMSRole>) => HMSRoleChangeRequest | null>;
22
+ export declare const selectRoleChangeRequest: import("reselect").OutputSelector<HMSStore<{
23
+ sessionStore: Record<string, any>;
24
+ }>, HMSRoleChangeRequest | null, (res1: import("../schema").HMSRoleChangeStoreRequest, res2: Record<string, HMSPeer>, res3: Record<string, HMSRole>) => HMSRoleChangeRequest | null>;
21
25
  /**
22
26
  * Select what streams is the local peer allowed to publish from video, audio and screenshare.
23
27
  */
24
- export declare const selectIsAllowedToPublish: import("reselect").OutputSelector<HMSStore, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;
28
+ export declare const selectIsAllowedToPublish: import("reselect").OutputSelector<HMSStore<{
29
+ sessionStore: Record<string, any>;
30
+ }>, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;
25
31
  /**
26
32
  * Select what streams is the local peer allowed to preview from video, audio
27
33
  */
28
- export declare const selectIsAllowedToPreviewMedia: import("reselect").OutputSelector<HMSStore, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;
34
+ export declare const selectIsAllowedToPreviewMedia: import("reselect").OutputSelector<HMSStore<{
35
+ sessionStore: Record<string, any>;
36
+ }>, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;