@decky/ui 4.15.1 → 4.16.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 (173) hide show
  1. package/dist/components/Dropdown.d.ts +2 -2
  2. package/dist/components/FooterLegend.d.ts +8 -2
  3. package/dist/components/FooterLegend.js +7 -0
  4. package/dist/components/Menu.d.ts +5 -9
  5. package/dist/components/Modal.d.ts +3 -2
  6. package/dist/globals/index.d.ts +47 -2
  7. package/dist/globals/index.js +3 -2
  8. package/dist/globals/shared/cm.d.ts +112 -0
  9. package/dist/globals/shared/enums.d.ts +80 -0
  10. package/dist/globals/shared/enums.js +85 -0
  11. package/dist/globals/shared/history.d.ts +12 -0
  12. package/dist/globals/shared/history.js +1 -0
  13. package/dist/globals/shared/index.d.ts +5 -0
  14. package/dist/globals/shared/index.js +5 -0
  15. package/dist/globals/shared/interfaces.d.ts +54 -0
  16. package/dist/globals/shared/interfaces.js +1 -0
  17. package/dist/globals/shared/navigation.d.ts +14 -0
  18. package/dist/globals/shared/navigation.js +10 -0
  19. package/dist/globals/shared/steamid.d.ts +36 -0
  20. package/dist/globals/shared/steamid.js +15 -0
  21. package/dist/globals/shared/storage.d.ts +27 -0
  22. package/dist/globals/shared/storage.js +11 -0
  23. package/dist/globals/steam-client/App.d.ts +1 -1
  24. package/dist/globals/steam-client/Auth.d.ts +1 -1
  25. package/dist/globals/steam-client/ClientNotifications.d.ts +1 -1
  26. package/dist/globals/steam-client/Overlay.d.ts +3 -2
  27. package/dist/globals/steam-client/Settings.d.ts +1 -1
  28. package/dist/globals/steam-client/SharedConnection.d.ts +2 -1
  29. package/dist/globals/steam-client/UI.d.ts +17 -6
  30. package/dist/globals/steam-client/UI.js +11 -0
  31. package/dist/globals/steam-client/User.d.ts +13 -0
  32. package/dist/globals/steam-client/User.js +7 -0
  33. package/dist/globals/steam-client/WebChat.d.ts +5 -4
  34. package/dist/globals/steam-client/shared.d.ts +0 -29
  35. package/dist/globals/steam-client/shared.js +0 -24
  36. package/dist/globals/stores/app.d.ts +35 -0
  37. package/dist/globals/stores/app.js +1 -0
  38. package/dist/globals/stores/appdetailsstore.d.ts +86 -0
  39. package/dist/globals/stores/appdetailsstore.js +1 -0
  40. package/dist/globals/stores/appinfostore.d.ts +56 -0
  41. package/dist/globals/stores/appinfostore.js +1 -0
  42. package/dist/globals/stores/appstore.d.ts +77 -0
  43. package/dist/globals/stores/appstore.js +1 -0
  44. package/dist/globals/stores/badgestore.d.ts +52 -0
  45. package/dist/globals/stores/badgestore.js +1 -0
  46. package/dist/globals/stores/collectionstore.d.ts +313 -0
  47. package/dist/globals/stores/collectionstore.js +143 -0
  48. package/dist/globals/stores/consolestore.d.ts +20 -0
  49. package/dist/globals/stores/consolestore.js +1 -0
  50. package/dist/globals/stores/focusnavcontroller.d.ts +383 -0
  51. package/dist/globals/stores/focusnavcontroller.js +29 -0
  52. package/dist/globals/stores/friendstore/clanstore.d.ts +75 -0
  53. package/dist/globals/stores/friendstore/clanstore.js +19 -0
  54. package/dist/globals/stores/friendstore/friendchat.d.ts +374 -0
  55. package/dist/globals/stores/friendstore/friendchat.js +56 -0
  56. package/dist/globals/stores/friendstore/friendgroupstore.d.ts +98 -0
  57. package/dist/globals/stores/friendstore/friendgroupstore.js +8 -0
  58. package/dist/globals/stores/friendstore/friendingamenotificationstore.d.ts +2 -0
  59. package/dist/globals/stores/friendstore/friendingamenotificationstore.js +1 -0
  60. package/dist/globals/stores/friendstore/friendslistfavoritesstore.d.ts +22 -0
  61. package/dist/globals/stores/friendstore/friendslistfavoritesstore.js +1 -0
  62. package/dist/globals/stores/friendstore/friendsuifriendstore.d.ts +125 -0
  63. package/dist/globals/stores/friendstore/friendsuifriendstore.js +1 -0
  64. package/dist/globals/stores/friendstore/index.d.ts +25 -0
  65. package/dist/globals/stores/friendstore/index.js +1 -0
  66. package/dist/globals/stores/friendstore/shared.d.ts +207 -0
  67. package/dist/globals/stores/friendstore/shared.js +41 -0
  68. package/dist/globals/stores/gamerecordingstore.d.ts +263 -0
  69. package/dist/globals/stores/gamerecordingstore.js +1 -0
  70. package/dist/globals/stores/index.d.ts +18 -0
  71. package/dist/globals/stores/index.js +18 -0
  72. package/dist/globals/stores/libraryuistore.d.ts +179 -0
  73. package/dist/globals/stores/libraryuistore.js +56 -0
  74. package/dist/globals/stores/localizationmanager.d.ts +18 -0
  75. package/dist/globals/stores/localizationmanager.js +1 -0
  76. package/dist/globals/stores/mainwindowbrowsermanager.d.ts +62 -0
  77. package/dist/globals/stores/mainwindowbrowsermanager.js +1 -0
  78. package/dist/globals/stores/notificationstore.d.ts +242 -0
  79. package/dist/globals/stores/notificationstore.js +20 -0
  80. package/dist/globals/stores/popupmanager.d.ts +128 -0
  81. package/dist/globals/stores/popupmanager.js +1 -0
  82. package/dist/globals/stores/securitystore.d.ts +35 -0
  83. package/dist/globals/stores/securitystore.js +1 -0
  84. package/dist/globals/stores/settingsstore.d.ts +86 -0
  85. package/dist/globals/stores/settingsstore.js +19 -0
  86. package/dist/globals/stores/steamuistore/gamepadbrowserview.d.ts +143 -0
  87. package/dist/globals/stores/steamuistore/gamepadbrowserview.js +9 -0
  88. package/dist/globals/stores/steamuistore/gamepaduiaudio.d.ts +36 -0
  89. package/dist/globals/stores/steamuistore/gamepaduiaudio.js +1 -0
  90. package/dist/globals/stores/steamuistore/index.d.ts +132 -0
  91. package/dist/globals/stores/steamuistore/index.js +14 -0
  92. package/dist/globals/stores/steamuistore/menu.d.ts +39 -0
  93. package/dist/globals/stores/steamuistore/menu.js +19 -0
  94. package/dist/globals/stores/steamuistore/window.d.ts +206 -0
  95. package/dist/globals/stores/steamuistore/window.js +6 -0
  96. package/dist/globals/stores/storeitemcache.d.ts +319 -0
  97. package/dist/globals/stores/storeitemcache.js +17 -0
  98. package/dist/globals/stores/urlstore.d.ts +57 -0
  99. package/dist/globals/stores/urlstore.js +1 -0
  100. package/dist/modules/Router.d.ts +3 -56
  101. package/dist/modules/Router.js +2 -20
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/dist/utils/index.d.ts +0 -1
  104. package/dist/utils/react/fc.js +4 -2
  105. package/dist/utils/react/react.js +2 -2
  106. package/dist/utils/react/treepatcher.js +1 -1
  107. package/package.json +1 -1
  108. package/src/components/Dropdown.tsx +2 -2
  109. package/src/components/FooterLegend.ts +10 -2
  110. package/src/components/Menu.ts +11 -21
  111. package/src/components/Modal.ts +40 -8
  112. package/src/globals/index.ts +68 -2
  113. package/src/globals/shared/cm.ts +158 -0
  114. package/src/globals/shared/enums.ts +97 -0
  115. package/src/globals/shared/history.ts +15 -0
  116. package/src/globals/shared/index.ts +5 -0
  117. package/src/globals/shared/interfaces.ts +147 -0
  118. package/src/globals/shared/navigation.ts +15 -0
  119. package/src/globals/shared/steamid.ts +49 -0
  120. package/src/globals/shared/storage.ts +62 -0
  121. package/src/globals/steam-client/App.ts +2 -2
  122. package/src/globals/steam-client/Auth.ts +2 -2
  123. package/src/globals/steam-client/ClientNotifications.ts +1 -1
  124. package/src/globals/steam-client/Overlay.ts +3 -2
  125. package/src/globals/steam-client/Settings.ts +1 -1
  126. package/src/globals/steam-client/SharedConnection.ts +2 -1
  127. package/src/globals/steam-client/UI.ts +18 -9
  128. package/src/globals/steam-client/User.ts +20 -0
  129. package/src/globals/steam-client/WebChat.ts +5 -4
  130. package/src/globals/steam-client/shared.ts +0 -69
  131. package/src/globals/stores/app.ts +102 -0
  132. package/src/globals/stores/appdetailsstore.ts +235 -0
  133. package/src/globals/stores/appinfostore.ts +65 -0
  134. package/src/globals/stores/appstore.ts +166 -0
  135. package/src/globals/stores/badgestore.ts +87 -0
  136. package/src/globals/stores/collectionstore.ts +544 -0
  137. package/src/globals/stores/consolestore.ts +54 -0
  138. package/src/globals/stores/focusnavcontroller.ts +522 -0
  139. package/src/globals/stores/friendstore/clanstore.ts +89 -0
  140. package/src/globals/stores/friendstore/friendchat.ts +646 -0
  141. package/src/globals/stores/friendstore/friendgroupstore.ts +187 -0
  142. package/src/globals/stores/friendstore/friendingamenotificationstore.ts +1 -0
  143. package/src/globals/stores/friendstore/friendslistfavoritesstore.ts +37 -0
  144. package/src/globals/stores/friendstore/friendsuifriendstore.ts +274 -0
  145. package/src/globals/stores/friendstore/index.ts +58 -0
  146. package/src/globals/stores/friendstore/shared.ts +318 -0
  147. package/src/globals/stores/gamerecordingstore.ts +367 -0
  148. package/src/globals/stores/index.ts +18 -0
  149. package/src/globals/stores/libraryuistore.ts +395 -0
  150. package/src/globals/stores/localizationmanager.ts +56 -0
  151. package/src/globals/stores/mainwindowbrowsermanager.ts +135 -0
  152. package/src/globals/stores/notificationstore.ts +298 -0
  153. package/src/globals/stores/popupmanager.ts +352 -0
  154. package/src/globals/stores/securitystore.ts +36 -0
  155. package/src/globals/stores/settingsstore.ts +134 -0
  156. package/src/globals/stores/steamuistore/gamepadbrowserview.ts +172 -0
  157. package/src/globals/stores/steamuistore/gamepaduiaudio.ts +117 -0
  158. package/src/globals/stores/steamuistore/index.ts +217 -0
  159. package/src/globals/stores/steamuistore/menu.ts +89 -0
  160. package/src/globals/stores/steamuistore/window.ts +466 -0
  161. package/src/globals/stores/storeitemcache.ts +347 -0
  162. package/src/globals/stores/urlstore.ts +150 -0
  163. package/src/modules/Router.ts +9 -75
  164. package/src/utils/index.ts +0 -1
  165. package/src/utils/react/fc.ts +4 -2
  166. package/src/utils/react/react.ts +2 -2
  167. package/src/utils/react/treepatcher.ts +1 -1
  168. package/dist/globals/SteamClient.d.ts +0 -5
  169. package/dist/globals/SteamClient.js +0 -1
  170. package/dist/globals/stores.d.ts +0 -70
  171. package/src/globals/SteamClient.ts +0 -6
  172. package/src/globals/stores.ts +0 -74
  173. /package/dist/globals/{stores.js → shared/cm.js} +0 -0
@@ -0,0 +1,89 @@
1
+ export enum QuickAccessTab {
2
+ Notifications,
3
+ RemotePlayTogetherControls,
4
+ VoiceChat,
5
+ Friends,
6
+ Settings,
7
+ Perf,
8
+ Help,
9
+ Soundtrack,
10
+ VRBatteries,
11
+ Decky = 999,
12
+ }
13
+
14
+ export enum SideMenu {
15
+ None,
16
+ Main,
17
+ QuickAccess,
18
+ }
19
+
20
+ export declare class CMenuStore {
21
+ m_MainMenuStore: any;
22
+ m_cSideMenuExtendedVisibilityRequests: number;
23
+ m_cSuppressRequests: number;
24
+ m_eLastRequestedSideMenu: SideMenu;
25
+ m_eOpenSideMenu: SideMenu;
26
+ m_QuickAccessTab: QuickAccessTab;
27
+
28
+ ClearLastRequestedSideMenu(): void;
29
+
30
+ /**
31
+ * Closes all opened side menus.
32
+ */
33
+ CloseSideMenus(): void;
34
+
35
+ GetLastRequestedSideMenu(): SideMenu;
36
+
37
+ /**
38
+ * @returns the currently opened side menu.
39
+ */
40
+ GetOpenSideMenu(): SideMenu;
41
+
42
+ /**
43
+ * @returns the currently opened quick access menu tab.
44
+ */
45
+ GetQuickAccessTab(): QuickAccessTab;
46
+
47
+ /**
48
+ * @returns `true` if any of the side menus is visible.
49
+ */
50
+ IsAnySideMenuVisible(): boolean;
51
+
52
+ // same as above but instead checks if SideMenu isn't SideMenu.None ???
53
+ IsSideMenuInteractable(): boolean;
54
+
55
+ /**
56
+ * @returns `true` if the provided side menu is visible.
57
+ */
58
+ IsSideMenuVisible(menu: SideMenu): boolean;
59
+
60
+ /**
61
+ * Opens a provided side menu.
62
+ *
63
+ * @param menu The menu to open.
64
+ */
65
+ OpenSideMenu(menu: SideMenu): void;
66
+
67
+ /**
68
+ * Opens the quick access menu.
69
+ *
70
+ * @param tab The tab to open.
71
+ */
72
+ OpenQuickAccessMenu(tab?: QuickAccessTab): void;
73
+
74
+ /**
75
+ * Opens the main side menu.
76
+ */
77
+ OpenMainMenu(): void;
78
+
79
+ RequestExtendSideMenuVisibility(): () => void;
80
+
81
+ SetSuppressMenus(): () => void;
82
+
83
+ /**
84
+ * Toggles a provided side menu.
85
+ *
86
+ * @param menu The side menu to close/open.
87
+ */
88
+ ToggleSideMenu(menu: SideMenu): void;
89
+ }
@@ -0,0 +1,466 @@
1
+ import type { BrowserContext } from '../../shared';
2
+ import type { BrowserViewCreateOptions } from '../../steam-client/browser-view';
3
+ import type { ENotificationPosition } from '../../steam-client/Overlay';
4
+ import type { Screenshot } from '../../steam-client/Screenshots';
5
+ import type { EWindowType, SteamWindow } from '../../steam-client/UI';
6
+ import type { CCollectionStore } from '../collectionstore';
7
+ import type { CGameRecordingStore, ClipSummary_t, PlaybackDefinition_t } from '../gamerecordingstore';
8
+ import type { SteamBrowserHistoryState } from '../mainwindowbrowsermanager';
9
+ import type { CGamepadBrowserView } from './gamepadbrowserview';
10
+ import type { CMenuStore } from './menu';
11
+
12
+ export enum EOpenSideMenu {
13
+ None,
14
+ Main,
15
+ QuickAccess,
16
+ }
17
+
18
+ type SettingsSection_t =
19
+ | 'Accessibility'
20
+ | 'Account'
21
+ | 'Audio'
22
+ | 'Bluetooth'
23
+ | 'Broadcast'
24
+ | 'Cloud'
25
+ | 'Compatibility'
26
+ | 'Controller'
27
+ | 'Customization'
28
+ | 'DesktopSecurity'
29
+ | 'Developer'
30
+ | 'Display'
31
+ | 'Downloads'
32
+ | 'Family'
33
+ | 'Friends'
34
+ | 'GameRecording'
35
+ | 'General'
36
+ | 'Home'
37
+ | 'InGame'
38
+ | 'InGameVoice'
39
+ | 'Interface'
40
+ | 'Internal'
41
+ | 'Internet'
42
+ | 'Keyboard'
43
+ | 'Library'
44
+ | 'Music'
45
+ | 'Notifications'
46
+ | 'Power'
47
+ | 'RemotePlay'
48
+ | 'Root'
49
+ | 'Security'
50
+ | 'Storage'
51
+ | 'System'
52
+ | 'Voice';
53
+
54
+ interface NavigatorRouterState<T> {
55
+ state: T;
56
+ }
57
+
58
+ interface MediaManagerFilter {
59
+ listSource:
60
+ | { type: 'app'; gameid: string }
61
+ // idk doesn't work...
62
+ | { type: 'clip' | 'recording' | 'screenshot'; id?: string; summary?: ClipSummary_t }
63
+ // TODO: is it this ? ("message Phase" if outdated)
64
+ // https://github.com/SteamDatabase/SteamTracking/blob/38a822b9b185d92a644fdaefeb55dcf6f12bd329/Protobufs/webuimessages_gamerecording.proto#L109
65
+ | { type: 'phase'; phase: any }
66
+ | { type: 'recents' };
67
+ mediaType?: 'all' | 'clip' | 'recording' | 'screenshot';
68
+ uploadStatus?: 'all' | 'uploaded' | 'notuploaded';
69
+ }
70
+
71
+ /**
72
+ * This interface allows you to navigate like {@link SteamUIStore.Navigate}, but
73
+ * without hardcoding routes.
74
+ */
75
+ interface SteamWindowNavigator {
76
+ type: 'desktop' | 'desktopoverlay' | 'gamepad';
77
+
78
+ setNavigatingToInitialRoute(value: boolean): void;
79
+
80
+ /**
81
+ * Navigate to Library -> Collections
82
+ */
83
+ AllCollections(): void;
84
+
85
+ /**
86
+ * Navigate to the app's entry in library.
87
+ *
88
+ * @param appId The game to navigate to.
89
+ */
90
+ App(appId: number): void;
91
+
92
+ /**
93
+ * Navigate to app properties.
94
+ *
95
+ * @param appId The game to open app properties for.
96
+ */
97
+ AppProperties(appId: number): void;
98
+
99
+ /**
100
+ * Navigate to friends and chat.
101
+ */
102
+ Chat(): void;
103
+
104
+ /**
105
+ * Navigate to a provided collection.
106
+ *
107
+ * @param id The collection ID to navigate to. You can get its ID with
108
+ * {@link CCollectionStore.GetUserCollectionsByName}.
109
+ */
110
+ Collection(id: string): void;
111
+
112
+ /**
113
+ * Navigate to the console.
114
+ */
115
+ Console(): void;
116
+
117
+ /**
118
+ * Navigate to the downloads manager.
119
+ */
120
+ Downloads(): void;
121
+
122
+ /**
123
+ * Open a URL in the system web browser.
124
+ *
125
+ * @param url The URL to open. Must start with `https://`.
126
+ */
127
+ ExternalWeb(url: string): void;
128
+
129
+ /**
130
+ * Navigate to friend's achievements for a provided game.
131
+ *
132
+ * @param appid The app ID of the game.
133
+ * @param steamid64 The SteamID 64 of the friend.
134
+ */
135
+ FriendAchievements(appid: number, steamid64: string): void;
136
+
137
+ /**
138
+ * Open the server browser dialog.
139
+ */
140
+ GameServers(): void;
141
+
142
+ /**
143
+ * Navigate to an app's global achievements. (seems broken and just uses "My
144
+ * achievements" instead)
145
+ *
146
+ * @param appId The app to open global achievements for.
147
+ */
148
+ GlobalAchievements(appId: number): void;
149
+
150
+ /**
151
+ * Navigate to the start up location, as specified in the Settings ->
152
+ * Interface section.
153
+ */
154
+ Home(): void;
155
+
156
+ /**
157
+ * Media manager.
158
+ */
159
+ Media: {
160
+ /**
161
+ * Opens a clip recording.
162
+ *
163
+ * The `id` key is a clip ID, see {@link CGameRecordingStore} methods on how
164
+ * to get one.
165
+ */
166
+ Clip(
167
+ state: NavigatorRouterState<{
168
+ id: string;
169
+ }>,
170
+ ): void;
171
+
172
+ /**
173
+ * Opens the media manager in a grid view.
174
+ */
175
+ Grid(
176
+ state: NavigatorRouterState<{
177
+ filter: MediaManagerFilter;
178
+ }>,
179
+ ): void;
180
+
181
+ /**
182
+ * Opens the media manager in a list view.
183
+ */
184
+ List(
185
+ state: NavigatorRouterState<{
186
+ filter: MediaManagerFilter;
187
+ }>,
188
+ ): void;
189
+
190
+ /**
191
+ * Opens a screenshot.
192
+ *
193
+ * The `id` key is {@link Screenshot.ugcHandle} if uploaded or something
194
+ * like `440_21`, i.e. `{gameid}_{@link Screenshot.hHandle} if not.
195
+ */
196
+ Screenshot(
197
+ state: NavigatorRouterState<{
198
+ id: string;
199
+ }>,
200
+ ): void;
201
+
202
+ /**
203
+ * Opens a game recording clip.
204
+ */
205
+ Recording(
206
+ state: NavigatorRouterState<{
207
+ gameid: string;
208
+ playbackDefinition?: Partial<PlaybackDefinition_t>;
209
+ }>,
210
+ ): void;
211
+ };
212
+
213
+ /**
214
+ * Navigate to an app's local achievements.
215
+ *
216
+ * @param appId The app to open local achievements for.
217
+ */
218
+ MyAchievements(appId: number): void;
219
+
220
+ /**
221
+ * Open the "Out of Playtime" (from Steam Families) dialog.
222
+ */
223
+ RequestPlaytimeDialog(connectString: string): void;
224
+
225
+ /**
226
+ * Navigate to Steam settings.
227
+ *
228
+ * @param section The section to navigate to.
229
+ */
230
+ Settings(section?: SettingsSection_t): void;
231
+
232
+ /**
233
+ * Open a URL in the Steam main window browser.
234
+ *
235
+ * @param url The URL to open.
236
+ */
237
+ SteamWeb(url: string): void;
238
+
239
+ /**
240
+ * Open a URL in the Steam web browser dialog.
241
+ *
242
+ * @param url The URL to open.
243
+ */
244
+ SteamWebTab(url: string): void;
245
+ }
246
+
247
+ /**
248
+ * Like {@link SteamWindowNavigator}, but functions here are undefined on
249
+ * desktop mode.
250
+ */
251
+ interface SteamWindowNavigator_GamepadOnly {
252
+ /**
253
+ * Navigate to the Settings -> Account section.
254
+ */
255
+ Account(): void;
256
+
257
+ AppOverlay: {
258
+ AppRunningControls(): void;
259
+ };
260
+
261
+ /**
262
+ * Navigate to the controller configuration.
263
+ */
264
+ ControllerConfigurator: {
265
+ Main(appId: number): void;
266
+ };
267
+
268
+ /**
269
+ * Navigate to friend invites.
270
+ */
271
+ Invites(): void;
272
+
273
+ /**
274
+ * Navigate to a library tab.
275
+ *
276
+ * @param tab The tab to open.
277
+ */
278
+ LibraryTab(tab: 'AllGames' | 'Collections' | 'DesktopApps' | 'Favorites' | 'Installed' | 'Soundtracks'): void;
279
+
280
+ /**
281
+ * @todo Actual login maybe ? I'm not logging out for ts
282
+ */
283
+ Login(): void;
284
+
285
+ /**
286
+ * @todo Microtransaction authentication ? also url
287
+ */
288
+ MTXAuth(url: string): void;
289
+
290
+ /**
291
+ * @todo Login(), but bReauthentication is true
292
+ */
293
+ Reauthentication(): void;
294
+
295
+ RemotePlayTogether(): void;
296
+ }
297
+
298
+ interface SteamWindowNotificationPosition {
299
+ horizontalInset: number;
300
+ position: ENotificationPosition;
301
+ verticalInset: number;
302
+ }
303
+
304
+ interface SteamUIWindowParams {
305
+ appid: number;
306
+ bSimulateOnDesktop: boolean;
307
+ bViaGamescope: boolean;
308
+ browserInfo: BrowserContext;
309
+ eWindowType: EWindowType;
310
+ flDisplayScale: number;
311
+ gameid: string;
312
+ nScreenHeight: number;
313
+ nScreenWidth: number;
314
+ strUserAgentIdentifier: string;
315
+ }
316
+
317
+ export interface SteamUIWindowInstance {
318
+ m_BrowserWindow: Window;
319
+ m_bIsGamepadApplicationUIInitialized: boolean;
320
+ /** Current React route. */
321
+ m_locationPathname: string;
322
+ m_Navigator: SteamWindowNavigator & SteamWindowNavigator_GamepadOnly;
323
+ /** The notifications' position & offset. */
324
+ m_notificationPosition: SteamWindowNotificationPosition;
325
+ m_params: Partial<SteamUIWindowParams>;
326
+ m_VirtualKeyboardManager: any;
327
+
328
+ BCanPopVRDashboardForCurrentPath(): boolean;
329
+
330
+ BHasMenus(): boolean;
331
+
332
+ /**
333
+ * @returns `true` if the BPM UI has been initialized.
334
+ */
335
+ BIsGamepadApplicationUIInitialized(): boolean;
336
+
337
+ /**
338
+ * @returns `true` if current React route matches the overlay one.
339
+ */
340
+ BIsOverlayPath(): boolean;
341
+
342
+ /** @todo something in react-router */
343
+ BRouteMatch(routes: string[]): boolean;
344
+
345
+ /**
346
+ * @returns `true` if not in BPM **AND** not in gamescope.
347
+ * @todo needs a better description, current just explains the func body
348
+ */
349
+ BUseSeparateOverlayWindows(): boolean;
350
+
351
+ BViewingPreLoginRoute(): boolean;
352
+
353
+ /**
354
+ * @param name Browser name.
355
+ */
356
+ CreateBrowserView(name: string, options: BrowserViewCreateOptions): CGamepadBrowserView;
357
+
358
+ /**
359
+ * Focuses the main window.
360
+ */
361
+ FocusApplicationRoot(): void;
362
+
363
+ GetMainVROverlayKey(): string | undefined;
364
+
365
+ GetShowingGlobalModal(): boolean;
366
+
367
+ GetStoreBrowser(): CGamepadBrowserView;
368
+
369
+ // #region EWindowType matching
370
+ IsControllerConfiguratorWindow(): boolean;
371
+ IsDesktopLoginWindow(): boolean;
372
+ IsDesktopOverlayWindow(): boolean;
373
+ IsDesktopUIWindow(): boolean;
374
+ IsGamepadUIOverlayWindow(): boolean;
375
+ IsGamepadUIWindow(): boolean;
376
+ IsMainDesktopWindow(): boolean;
377
+ IsMainGamepadUIWindow(): boolean;
378
+ IsStandaloneKeyboardWindow(): boolean;
379
+ IsSteamChinaReviewLauncher(): boolean;
380
+ IsVRSimulatedOnDesktopWindow(): boolean;
381
+ IsVRWindow(): boolean;
382
+ IsVRWindowInGamescope(): boolean;
383
+ // #endregion
384
+
385
+ Navigate(path: string, replaceHistoryEntry: boolean, matchRoute: boolean, state?: SteamBrowserHistoryState): void;
386
+ NavigateBack(): void;
387
+ NavigateHistory(delta: number): void;
388
+ NavigateToRunningApp(replaceHistoryEntry: boolean): void;
389
+ NavigateToStandaloneAppRunningControls(e?: boolean): void;
390
+ NavigateToSteamWeb: SteamWindowNavigator['SteamWeb'];
391
+ // yes, it's the exact same thing
392
+ NavigateWithoutChangingFocus: this['Navigate'];
393
+ SetBrowserWindow(value: Window): void;
394
+ SetNavigator(value: SteamWindowNavigator & SteamWindowNavigator_GamepadOnly): void;
395
+ SetNotificationPosition(pos: ENotificationPosition, horizontalInset: number, verticalInset: number): void;
396
+ SetShowingGlobalModal(value: boolean): void;
397
+ SetStoreBrowserGlass(openSideMenu: EOpenSideMenu): void;
398
+
399
+ get BrowserWindow(): Window;
400
+ get MenuStore(): CMenuStore;
401
+ }
402
+
403
+ interface AppWindow {
404
+ appid: number;
405
+ focusedWindowID: number;
406
+ windowids: number[];
407
+ }
408
+
409
+ export declare class CWindowStore {
410
+ // SteamUIStore lol
411
+ m_Parent: any;
412
+ m_mapAppOverlayPosition: Map<number, SteamWindowNotificationPosition>;
413
+ m_mapAppWindows: Map<number, AppWindow>;
414
+ m_mapDesiredWindowInstances: Map<number, SteamUIWindowInstance>;
415
+ m_mapDesiredWindows: Map<number, SteamWindow>;
416
+ m_mapOverlayPopupByPID: Map<number, SteamUIWindowInstance>;
417
+ m_simulatedVRGamepadUIOnDesktopInstance: SteamUIWindowInstance | undefined;
418
+
419
+ AddTestWindowsOverlayBrowser(appid: number): void;
420
+ BHasAppWindow(appid: number): boolean;
421
+ BHasGamepadUIMainWindow(): boolean;
422
+ BHasOverlayWindowForApp(appid: number): boolean;
423
+ BHasStandaloneConfiguratorWindow(): boolean;
424
+ BHasStandaloneKeyboard(): boolean;
425
+ BHasVRWindow(): boolean;
426
+
427
+ // #region Window creation, idk how to use these yet
428
+ CreateDesktopLoginWindow(browser: BrowserContext): SteamUIWindowInstance;
429
+ CreateMainDesktopWindow(browser: BrowserContext): SteamUIWindowInstance;
430
+ CreateMainGamepadUIWindow(browser: BrowserContext): SteamUIWindowInstance;
431
+ CreateSimulatedVRWindow(): SteamUIWindowInstance;
432
+ CreateStandaloneControllerConfiguratorWindow(
433
+ browser: BrowserContext,
434
+ appid: number,
435
+ appName: string,
436
+ ): SteamUIWindowInstance;
437
+ CreateStandaloneKeyboardWindow(browser: BrowserContext, initialX: number, initialY: number): SteamUIWindowInstance;
438
+ CreateSteamChinaReviewLauncherWindow(browser: BrowserContext): SteamUIWindowInstance;
439
+ CreateVRWindow(browser: BrowserContext, viaGamescope: boolean): SteamUIWindowInstance;
440
+ // #endregion
441
+
442
+ DEBUG_DumpDesiredSteamUIWindows(): Promise<any>;
443
+ EnsureMainWindowCreated(forceOSWindowFocus: boolean): void;
444
+ GetAppFocusedWindowID(appid: number): number;
445
+ GetAppWindowIDs(appid: number): number[];
446
+ GetControllerConfiguratorWindowFromAppID(appid: number): SteamUIWindowInstance;
447
+ GetInstanceForPID(pid: number): SteamUIWindowInstance;
448
+ GetOverlayInstance(appid: number, pid: number): SteamUIWindowInstance;
449
+ GetOverlayInstanceWithFallback(appid?: number, pid?: number): SteamUIWindowInstance;
450
+ GetOverlayInstances(appid: number): SteamUIWindowInstance[];
451
+ GetSimultedVRWindowInstance(): this['m_simulatedVRGamepadUIOnDesktopInstance'];
452
+ GetSteamUIWindowByType(type: EWindowType): SteamUIWindowInstance | undefined;
453
+ GetVRWindowInstance(): SteamUIWindowInstance | undefined;
454
+ GetWindowInstanceFromWindow(wnd: Window): SteamUIWindowInstance | null;
455
+ RemoveRunningAppWindowIDs(appid: number): void;
456
+ SetFocusedAppWindowID(appid: number, windowid: number): void;
457
+ SetRunningAppWindowIDs(appid: number, windowids: number[]): void;
458
+ UpdateDesiredWindows(windows: SteamWindow[]): void;
459
+
460
+ get GamepadUIMainWindowInstance(): SteamUIWindowInstance;
461
+ get GamepadUIVRWindowInstance(): SteamUIWindowInstance;
462
+ get MainRunningAppWindowIDs(): number[] | undefined;
463
+ get MainWindowInstance(): SteamUIWindowInstance;
464
+ get OverlayWindows(): SteamUIWindowInstance[];
465
+ get SteamUIWindows(): SteamUIWindowInstance[];
466
+ }