@decky/ui 4.15.1 → 4.16.0

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 (167) 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 +25 -2
  7. package/dist/globals/index.js +1 -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 +2 -1
  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 +14 -3
  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 +3 -2
  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 +129 -0
  91. package/dist/globals/stores/steamuistore/index.js +11 -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 +5 -58
  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/package.json +1 -1
  105. package/src/components/Dropdown.tsx +2 -2
  106. package/src/components/FooterLegend.ts +10 -2
  107. package/src/components/Menu.ts +11 -21
  108. package/src/components/Modal.ts +40 -8
  109. package/src/globals/index.ts +45 -2
  110. package/src/globals/shared/cm.ts +158 -0
  111. package/src/globals/shared/enums.ts +97 -0
  112. package/src/globals/shared/history.ts +15 -0
  113. package/src/globals/shared/index.ts +5 -0
  114. package/src/globals/shared/interfaces.ts +147 -0
  115. package/src/globals/shared/navigation.ts +15 -0
  116. package/src/globals/shared/steamid.ts +49 -0
  117. package/src/globals/shared/storage.ts +62 -0
  118. package/src/globals/steam-client/App.ts +2 -2
  119. package/src/globals/steam-client/Auth.ts +2 -2
  120. package/src/globals/steam-client/ClientNotifications.ts +1 -1
  121. package/src/globals/steam-client/Overlay.ts +2 -1
  122. package/src/globals/steam-client/Settings.ts +1 -1
  123. package/src/globals/steam-client/SharedConnection.ts +2 -1
  124. package/src/globals/steam-client/UI.ts +15 -6
  125. package/src/globals/steam-client/User.ts +20 -0
  126. package/src/globals/steam-client/WebChat.ts +3 -2
  127. package/src/globals/steam-client/shared.ts +0 -69
  128. package/src/globals/stores/app.ts +102 -0
  129. package/src/globals/stores/appdetailsstore.ts +235 -0
  130. package/src/globals/stores/appinfostore.ts +65 -0
  131. package/src/globals/stores/appstore.ts +166 -0
  132. package/src/globals/stores/badgestore.ts +87 -0
  133. package/src/globals/stores/collectionstore.ts +544 -0
  134. package/src/globals/stores/consolestore.ts +54 -0
  135. package/src/globals/stores/focusnavcontroller.ts +522 -0
  136. package/src/globals/stores/friendstore/clanstore.ts +89 -0
  137. package/src/globals/stores/friendstore/friendchat.ts +646 -0
  138. package/src/globals/stores/friendstore/friendgroupstore.ts +187 -0
  139. package/src/globals/stores/friendstore/friendingamenotificationstore.ts +1 -0
  140. package/src/globals/stores/friendstore/friendslistfavoritesstore.ts +37 -0
  141. package/src/globals/stores/friendstore/friendsuifriendstore.ts +274 -0
  142. package/src/globals/stores/friendstore/index.ts +58 -0
  143. package/src/globals/stores/friendstore/shared.ts +318 -0
  144. package/src/globals/stores/gamerecordingstore.ts +367 -0
  145. package/src/globals/stores/index.ts +18 -0
  146. package/src/globals/stores/libraryuistore.ts +395 -0
  147. package/src/globals/stores/localizationmanager.ts +56 -0
  148. package/src/globals/stores/mainwindowbrowsermanager.ts +135 -0
  149. package/src/globals/stores/notificationstore.ts +298 -0
  150. package/src/globals/stores/popupmanager.ts +352 -0
  151. package/src/globals/stores/securitystore.ts +36 -0
  152. package/src/globals/stores/settingsstore.ts +134 -0
  153. package/src/globals/stores/steamuistore/gamepadbrowserview.ts +172 -0
  154. package/src/globals/stores/steamuistore/gamepaduiaudio.ts +117 -0
  155. package/src/globals/stores/steamuistore/index.ts +212 -0
  156. package/src/globals/stores/steamuistore/menu.ts +89 -0
  157. package/src/globals/stores/steamuistore/window.ts +466 -0
  158. package/src/globals/stores/storeitemcache.ts +347 -0
  159. package/src/globals/stores/urlstore.ts +150 -0
  160. package/src/modules/Router.ts +11 -77
  161. package/src/utils/index.ts +0 -1
  162. package/dist/globals/SteamClient.d.ts +0 -5
  163. package/dist/globals/SteamClient.js +0 -1
  164. package/dist/globals/stores.d.ts +0 -70
  165. package/src/globals/SteamClient.ts +0 -6
  166. package/src/globals/stores.ts +0 -74
  167. /package/dist/globals/{stores.js → shared/cm.js} +0 -0
@@ -0,0 +1,544 @@
1
+ import type { CCloudStorage, CCloudStorageMap, CUserLocalStorage } from '../shared/storage';
2
+ import type { EAppType, SteamAppOverview } from '../steam-client/App';
3
+ import type { EResult } from '../steam-client/shared';
4
+
5
+ // Not an enum, rather an array in Steam code
6
+ export enum EFilterAppFeature {
7
+ FullControllerSupport = 1,
8
+ PartialControllerSupport,
9
+ VR,
10
+ TradingCards,
11
+ Workshop,
12
+ Achievements,
13
+ SinglePlayer,
14
+ MultiPlayer,
15
+ CoOp,
16
+ SteamCloud,
17
+ RemotePlayTogether,
18
+ SteamDeckVerified,
19
+ SteamDeckPlayable,
20
+ SteamDeckUnknown,
21
+ SteamDeckUnsupported,
22
+ PS4ControllerSupport,
23
+ PS4ControllerBTSupport,
24
+ PS5ControllerSupport,
25
+ PS5ControllerBTSupport,
26
+ SteamInputAPI,
27
+ GamepadPreferred,
28
+ HDR,
29
+ FamilySharing,
30
+ SteamOSCompatible,
31
+ SteamOSUnknown,
32
+ }
33
+
34
+ enum EFilterGroup {
35
+ AppType,
36
+ PlayState,
37
+ AppFeature,
38
+ Genre,
39
+ StoreCategory,
40
+ Partner,
41
+ Friends,
42
+ }
43
+
44
+ // Not an enum, rather an array in Steam code
45
+ export enum EGamePlayState {
46
+ Installed = 1,
47
+ ReadyToPlay,
48
+ PlayedPreviously,
49
+ Unplayed,
50
+ ValidPlatform,
51
+ }
52
+
53
+ // Another dogshit const enum I have to dig up !
54
+ // Stolen from https://github.com/SteamDatabase/SteamTracking/blob/master/store.steampowered.com/public/javascript/applications/store/storemenu.js
55
+ export enum EGenre {
56
+ action = 19,
57
+ adventure = 21,
58
+ anime = 4085,
59
+ casual = 597,
60
+ open_world = 1695,
61
+ fighting = 4328,
62
+ fighting_2 = 4736,
63
+ fighting_3 = 6506,
64
+ horror = 1667,
65
+ coop = 1685,
66
+ puzzle = 1664,
67
+ puzzle_2 = 5537,
68
+ puzzle_3 = 1665,
69
+ racing = 699,
70
+ racing_2 = 4102,
71
+ roguelike = 42804,
72
+ rpg = 112,
73
+ rpg_2 = 4434,
74
+ rpg_3 = 4231,
75
+ scifi = 3942,
76
+ simulation = 599,
77
+ simulation_2 = 12472,
78
+ sports = 701,
79
+ story_rich = 1742,
80
+ strategy = 9,
81
+ strategy_2 = 1670,
82
+ strategy_3 = 1676,
83
+ cities_settlements = 9,
84
+ cities_settlements_2 = 4328,
85
+ cities_settlements_3 = 220585,
86
+ survival = 1662,
87
+ visual_novel = 3799,
88
+ f2p = 113,
89
+ vr = 402,
90
+ vr_2 = 401,
91
+ }
92
+
93
+ export enum EStoreCategory {
94
+ MultiPlayer = 1,
95
+ SinglePlayer = 2,
96
+ CoOp = 9,
97
+ PartialController = 18,
98
+ MMO = 20,
99
+ Achievements = 22,
100
+ SteamCloud = 23,
101
+ SplitScreen = 24,
102
+ CrossPlatformMultiPlayer = 27,
103
+ FullController = 28,
104
+ TradingCards = 29,
105
+ Workshop = 30,
106
+ VRSupport = 31,
107
+ OnlineMultiPlayer = 36,
108
+ LocalMultiPlayer = 37,
109
+ OnlineCoOp = 38,
110
+ LocalCoOp = 39,
111
+ RemotePlayTogether = 44,
112
+ HighQualitySoundtrackAudio = 50,
113
+ FamilySharing = 62,
114
+ }
115
+
116
+ export enum EPartnerCollection {
117
+ EASubscription = 'EAAccess',
118
+ }
119
+
120
+ export enum ESystemCollection {
121
+ Favorites = 'favorite',
122
+ Uncategorized = 'uncategorized',
123
+ Hidden = 'hidden',
124
+ AllAppsAlpha = 'all-apps-alpha',
125
+ AllAppsRecent = 'all-apps-recent',
126
+ MyGames = 'my-games',
127
+ SiteLicense = 'site-license',
128
+ Recent = 'recent',
129
+ Shared = 'shared-',
130
+ FamilyGroup = 'shared-familygroup',
131
+ DeckGames = 'deck-games',
132
+ DTst1Games = 'dtst1-games',
133
+ LocalGames = 'local-install',
134
+ AllGames = 'all-games',
135
+ LocalPlayed = 'local-played',
136
+ RecentPurchased = 'recent-purchased',
137
+ DeckDesktopApps = 'deck-desktop-apps',
138
+ RemotePlay = 'remote-play',
139
+ RemotePlayActive = 'remote-play-active',
140
+ VR = 'vr',
141
+ Xbox = 'xbox',
142
+ PS4 = 'ps4',
143
+ PS5 = 'ps5',
144
+ AppType = 'type-',
145
+ AppType_Games = 'type-games',
146
+ AppType_Soundtracks = 'type-music',
147
+ AppType_Software = 'type-software',
148
+ AppType_Videos = 'type-videos',
149
+ AppType_Tools = 'type-tools',
150
+ }
151
+
152
+ interface CollectionInStorageData_t {
153
+ id: string;
154
+ name: string;
155
+ added: number[];
156
+ removed: number[];
157
+ }
158
+
159
+ interface CollectionInStorage_t {
160
+ roamingData: CollectionInStorageData_t;
161
+ localData: Omit<CollectionInStorageData_t, 'name'>;
162
+ }
163
+
164
+ type Values<K> = {
165
+ [P in keyof K]: K[P];
166
+ };
167
+
168
+ interface FilterGroup {
169
+ bAcceptUnion: boolean;
170
+ // TODO: these types depend on its index... no idea what i should do with this one
171
+ rgOptions: Values<FilterOptionByIndex_t>;
172
+ }
173
+
174
+ export interface FilterSpec_t {
175
+ filterGroups: FilterGroup[];
176
+ nFormatVersion: number;
177
+ setSuggestions: Set<number>;
178
+ strSearchText: string;
179
+ }
180
+
181
+ export type FilterOptionByIndex_t = {
182
+ [EFilterGroup.AppType]: EAppType;
183
+ [EFilterGroup.PlayState]: EGamePlayState;
184
+ [EFilterGroup.AppFeature]: EFilterAppFeature;
185
+ [EFilterGroup.Genre]: EGenre;
186
+ [EFilterGroup.StoreCategory]: EStoreCategory;
187
+ [EFilterGroup.Partner]: EPartnerCollection;
188
+ [EFilterGroup.Friends]: number;
189
+ };
190
+
191
+ type FilterOption_t<T extends EFilterGroup> = {
192
+ eGroup: T;
193
+ option: FilterOptionByIndex_t[T];
194
+
195
+ /**
196
+ * Localized option name.
197
+ */
198
+ name: string;
199
+ };
200
+
201
+ export declare class CCollectionFilterBase {
202
+ m_filterSpec: FilterSpec_t;
203
+
204
+ BAcceptsUnion(group: EFilterGroup): boolean;
205
+
206
+ /**
207
+ * @returns `true` if the option from a provided group is selected
208
+ */
209
+ BIsSelected<K extends keyof FilterOptionByIndex_t>(group: K, option: FilterOptionByIndex_t[K]): boolean;
210
+
211
+ // TODO: is this even right? how do i check HEEEEEEEEEEEEEEEEEEELP
212
+ /**
213
+ * @returns all selected filter options.
214
+ */
215
+ GetAllSelectedOptions<K extends keyof FilterOptionByIndex_t>(): FilterOption_t<K>[];
216
+
217
+ /**
218
+ * @returns all selected filter options for a provided group.
219
+ */
220
+ GetSelectedOptions<K extends keyof FilterOptionByIndex_t>(group: K): FilterOptionByIndex_t[K][];
221
+
222
+ /**
223
+ * @returns search URL params for the current filter that could be used for
224
+ * the store search page. For example: `?tags=9,7` for "Cooperative" and
225
+ * "Single player" tags respectively.
226
+ */
227
+ GetTagsString(): string;
228
+
229
+ Matches(overview: SteamAppOverview): boolean;
230
+ MatchesImpl(overview: SteamAppOverview): boolean;
231
+ MatchesScored(overview: SteamAppOverview): boolean;
232
+ MatchesScoredImpl(overview: SteamAppOverview): boolean;
233
+
234
+ /**
235
+ * Adds/removes an option from a provided group.
236
+ *
237
+ * Note that sometimes you may have to call {@link CCollection.Save} for the
238
+ * UI changes to appear.
239
+ *
240
+ * @param value `true` to select, `false` otherwise.
241
+ */
242
+ SelectOption<K extends keyof FilterOptionByIndex_t>(group: K, option: FilterOptionByIndex_t[K], value: boolean): void;
243
+
244
+ SetSearchSuggestions(list: number[]): void;
245
+ SetSearchText(text: string): void;
246
+ ToggleAcceptsUnion(group: EFilterGroup): void;
247
+ ToStorageFormat(): FilterSpec_t;
248
+
249
+ get bIsEmpty(): boolean;
250
+ get hash(): number;
251
+ get searchSuggestions(): Set<number>;
252
+ get searchText(): string;
253
+ }
254
+
255
+ export declare class CDynamicCollectionFilter extends CCollectionFilterBase {
256
+ /**
257
+ * @returns `true` if the current filter includes filters for the specified
258
+ * app feature.
259
+ */
260
+ BHasAppFeature(feature: EFilterAppFeature): boolean;
261
+
262
+ BHasNonGamepadOptions(): boolean;
263
+
264
+ /**
265
+ * @returns `true` if the current filter includes tools.
266
+ */
267
+ BIncludesTools(): boolean;
268
+
269
+ GetCurrentControllerSpecificOption(): EFilterAppFeature[] | undefined;
270
+
271
+ /**
272
+ * @returns an array of localized strings for the current filter.
273
+ */
274
+ GetToolTipText(): string[];
275
+
276
+ /**
277
+ * Resets everything to default.
278
+ */
279
+ Reset(): void;
280
+ }
281
+
282
+ export declare class CCollectionBase {
283
+ m_mapFilterToAppCounts: Map<number, number>;
284
+ m_rgApps: number[];
285
+ m_setApps: Set<number>;
286
+ m_strId: string;
287
+ m_strName: string;
288
+
289
+ AsDeletableCollection(): CCollectionBase | null;
290
+
291
+ AsDragDropCollection(): CCollectionBase | null;
292
+
293
+ AsEditableCollection(): CCollectionBase | null;
294
+
295
+ /**
296
+ * @returns `true` if the provided SteamID is included with the dynamic
297
+ * collection's filter.
298
+ * @param steamid The SteamID 3 of a friend.
299
+ */
300
+ BIncludesFriend(steamid: number): boolean;
301
+
302
+ ClearAppCounts(): void;
303
+
304
+ /**
305
+ * @returns the amount of games returned by the filter.
306
+ */
307
+ GetAppCountWithToolsFilter(filter: CDynamicCollectionFilter): number;
308
+
309
+ /**
310
+ * Sets the provided app IDs for this collection.
311
+ */
312
+ SetApps(rgApps: number[]): void;
313
+
314
+ UpdateAllApps(): void;
315
+
316
+ UpdateApps(rgAppsToAdd: SteamAppOverview[], rgAppsToRemove: number[]): void;
317
+
318
+ UpdateFriendOwnedGames(steamid: number): void;
319
+
320
+ get allApps(): SteamAppOverview[];
321
+ get apps(): Set<number>;
322
+ get bAllowsDragAndDrop(): boolean;
323
+ get bFiltersOnGameListAppType(): boolean;
324
+ get bIsDeletable(): boolean;
325
+ get bIsDynamic(): boolean;
326
+ get bIsEditable(): boolean;
327
+ get displayName(): string;
328
+ get id(): string;
329
+ get visibleApps(): SteamAppOverview[];
330
+ }
331
+
332
+ export declare class CCollection extends CCollectionBase {
333
+ m_filter: CDynamicCollectionFilter;
334
+ m_setAddedManually: Set<number>;
335
+ m_setRemovedManually: Set<number>;
336
+
337
+ /**
338
+ * Adds provided apps from this collection.
339
+ */
340
+ AddApps(rgApps: SteamAppOverview[]): void;
341
+
342
+ /**
343
+ * Deletes the collection.
344
+ */
345
+ Delete(): Promise<void>;
346
+
347
+ FreezeToStatic(): void;
348
+
349
+ MergeFromStorageFormat(data: CollectionInStorage_t): void;
350
+
351
+ /**
352
+ * Removes provided apps from this collection.
353
+ */
354
+ RemoveApps(rgApps: SteamAppOverview[]): void;
355
+
356
+ Save(): Promise<void>;
357
+
358
+ ToStorageFormat(): CollectionInStorage_t;
359
+
360
+ get internalAddedList(): Set<number>;
361
+ get internalAppFilter(): CDynamicCollectionFilter;
362
+ get internalRemovedList(): Set<number>;
363
+ }
364
+
365
+ export declare class CCollectionStore {
366
+ m_localStorage: CUserLocalStorage;
367
+ m_cloudStorage: CCloudStorage;
368
+ m_cloudStorageMap: CCloudStorageMap;
369
+ m_shortcutCollectionInfo: Record<string, Omit<CollectionInStorageData_t, 'name'>>;
370
+ m_mapSystemCollectionIdToName: Map<ESystemCollection, string>;
371
+ m_mapPartnerCollectionIdToName: Map<string, string>;
372
+ m_mapCollectionsFromStorage: Map<ESystemCollection, CCollection>;
373
+
374
+ /**
375
+ * Adds or removes provided apps to a collection.
376
+ *
377
+ * @param rgAppIDs Apps to add/remove.
378
+ * @param bAdd `true` to add, `false` to remove.
379
+ * @param strCollectionID The collection ID to add the apps to.
380
+ */
381
+ AddOrRemoveApp(rgAppIDs: number[], bAdd: boolean, strCollectionID: string): void;
382
+
383
+ AddPartnerCollection(collectionID: string): Promise<void>;
384
+
385
+ BHasNonGamepadOptions(): boolean;
386
+
387
+ /**
388
+ * @returns `true` if the provided app needs to be included in your family's
389
+ * library.
390
+ */
391
+ BIncludeInFamilyGroupCollection(app: SteamAppOverview): boolean;
392
+
393
+ /**
394
+ * @returns `true` if the provided app is owned by another user in your
395
+ * family.
396
+ */
397
+ BIncludeInSharedLibraryCollection(app: SteamAppOverview): boolean;
398
+
399
+ /**
400
+ * @returns `true` if the provided app is in the "favorite" collection.
401
+ */
402
+ BIsFavorite(app: SteamAppOverview | number): boolean;
403
+
404
+ /**
405
+ * @returns `true` if the provided SteamID 3 is in any dynamic collection.
406
+ */
407
+ BIsFriendInAnyCollection(steamid3: number): boolean;
408
+
409
+ /**
410
+ * @returns `true` if the provided app is hidden.
411
+ */
412
+ BIsHidden(app: SteamAppOverview | number): boolean;
413
+
414
+ /**
415
+ * @returns `true` if the provided ID is a partner collection. (only
416
+ * `partner-ea-access` for now).
417
+ */
418
+ BIsPartnerCollectionId(id: string): boolean;
419
+
420
+ /**
421
+ * @returns `true` if the provided string is a partner collection's localized
422
+ * name.
423
+ */
424
+ BIsPartnerCollectionName(name: string): boolean;
425
+
426
+ /**
427
+ * @returns `true` if the provided ID is a system collection.
428
+ */
429
+ BIsSystemCollectionId(id: string): boolean;
430
+
431
+ /**
432
+ * @returns `true` if the provided string is a system collection's localized
433
+ * name.
434
+ */
435
+ BIsSystemCollectionName(name: string): boolean;
436
+
437
+ /**
438
+ * @returns `true` if the provided app is visible in the collection view.
439
+ */
440
+ BIsVisible(app: SteamAppOverview | number): boolean;
441
+
442
+ CreateSystemCollections(): Promise<void>;
443
+
444
+ /**
445
+ * Deletes a provided collection ID.
446
+ *
447
+ * @throws if the provided ID is of a system collection.
448
+ */
449
+ DeleteCollection(collectionID: string): Promise<EResult>;
450
+
451
+ /**
452
+ * @returns the collection associated with the provided ID.
453
+ */
454
+ GetCollection(collectionID: string): CCollection | null;
455
+
456
+ /**
457
+ * @returns the collection associated with the provided app type.
458
+ */
459
+ GetCollectionForAppType(type: EAppType): CCollectionBase | undefined;
460
+
461
+ /**
462
+ * @returns the collection ID associated with the provided collection name.
463
+ */
464
+ GetCollectionIDByUserTag(collectionName: string): string | null;
465
+
466
+ /**
467
+ * @returns an array of user collections that have a provided app.
468
+ */
469
+ GetCollectionListForAppID(appId: number): CCollection[];
470
+
471
+ GetCurrentGamepadFilter(): EFilterAppFeature;
472
+
473
+ /**
474
+ * @returns an array of user collections filtered by the provided name.
475
+ */
476
+ GetUserCollectionsByName(collectionName: string): CCollection[];
477
+
478
+ NewUnsavedCollection(strName: string, filter: CDynamicCollectionFilter, rgApps: SteamAppOverview[]): CCollection;
479
+
480
+ /**
481
+ * @returns the localized partner collection name from its ID.
482
+ */
483
+ PartnerCollectionIdToName(collectionID: string): string | undefined;
484
+
485
+ /**
486
+ * Saves a provided collection to local & cloud storages. Rewrites the
487
+ * previous one if both have the same name.
488
+ */
489
+ SaveCollection(collection: CCollection): Promise<void>;
490
+
491
+ /**
492
+ * Adds or removes provided apps to the "favorite" collection.
493
+ *
494
+ * @param rgAppIDs Apps to add/remove.
495
+ * @param bAdd `true` to add, `false` to remove.
496
+ */
497
+ SetAppsAsFavorite(rgAppIDs: number[], bAdd: boolean): void;
498
+
499
+ /**
500
+ * Adds or removes provided apps to the "hidden" collection.
501
+ *
502
+ * @param rgAppIDs Apps to add/remove.
503
+ * @param bAdd `true` to add, `false` to remove.
504
+ */
505
+ SetAppsAsHidden(rgAppIDs: number[], bAdd: boolean): void;
506
+
507
+ SetGamepadCollectionFilter(type: EAppType): void;
508
+
509
+ /**
510
+ * @returns the localized system collection name from its ID.
511
+ */
512
+ SystemCollectionIdToName(collectionID: ESystemCollection): string | undefined;
513
+
514
+ WriteLocalStorage(): Promise<void>;
515
+
516
+ get allAppsCollection(): CCollectionBase;
517
+ get allGamesCollection(): CCollectionBase;
518
+ get allRecentAppsCollection(): CCollectionBase;
519
+ get appTypeCollectionMap(): Map<ESystemCollection, CCollectionBase>;
520
+ get appTypeCollections(): CCollectionBase[];
521
+ get collectionsFromStorage(): Map<ESystemCollection, CCollection>;
522
+ get deckDesktopApps(): CCollectionBase;
523
+ get deckGamesCollection(): CCollectionBase;
524
+ // what
525
+ get dtestGamesCollection(): null;
526
+ get localGamesCollection(): CCollectionBase;
527
+ get localPlayedGamesCollection(): CCollectionBase;
528
+ get myGamesCollection(): CCollectionBase;
529
+ get ps4ControllerGamesCollection(): CCollectionBase;
530
+ get ps5ControllerGamesCollection(): CCollectionBase;
531
+ get recentAppCollectionMap(): Map<string, CCollectionBase>;
532
+ get recentAppCollections(): CCollectionBase[];
533
+ get recentAppsCollection(): CCollectionBase;
534
+ get recentPurchasedGamesCollection(): CCollectionBase;
535
+ get remotePlayActiveCollection(): CCollectionBase;
536
+ get remotePlayCollection(): CCollectionBase;
537
+ get sharedLibrariesCollectionMap(): Map<string, CCollectionBase>;
538
+ get sharedLibrariesCollections(): CCollectionBase[];
539
+ get siteLicenseCollection(): CCollectionBase;
540
+ get uncategorizedCollection(): CCollectionBase;
541
+ get userCollections(): CCollectionBase[];
542
+ get vrAppsCollection(): CCollectionBase;
543
+ get xboxControllerGamesCollection(): CCollectionBase;
544
+ }
@@ -0,0 +1,54 @@
1
+ import type { SpewType_t } from '../steam-client/Console';
2
+ import type { Unregisterable } from '../steam-client/shared';
3
+
4
+ export interface ConsoleSpewInfo {
5
+ text: string;
6
+ type: SpewType_t;
7
+ }
8
+
9
+ export interface ConsoleSpew {
10
+ /**
11
+ * Zero-indexed line number.
12
+ */
13
+ line: number;
14
+
15
+ /**
16
+ * Spew info.
17
+ */
18
+ spew: ConsoleSpewInfo[];
19
+
20
+ /**
21
+ * Time at which this got spewed out.
22
+ */
23
+ time: Date;
24
+ }
25
+
26
+ export interface CConsoleStore {
27
+ m_listenHandle: Unregisterable;
28
+ m_rgCommandHistory: string[];
29
+ m_rgConsoleSpew: ConsoleSpew[];
30
+
31
+ /**
32
+ * Adds text to the console.
33
+ *
34
+ * @param text Text to add. Must include `\n` at the end for a newline if
35
+ * `type` isn't "input".
36
+ * @param type Text type. Responsible for colors.
37
+ */
38
+ AddSpewLine(text: string, type?: SpewType_t): void;
39
+
40
+ /**
41
+ * Clears the console history.
42
+ */
43
+ Reset(): void;
44
+
45
+ /**
46
+ * Starts listening for console output.
47
+ */
48
+ StartListening(): void;
49
+
50
+ /**
51
+ * Stops listening for console output.
52
+ */
53
+ StopListening(): void;
54
+ }