@ejercito-fam/habbo-api 1.0.2 → 1.2.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.
@@ -0,0 +1,810 @@
1
+ import { FetchResult } from '@skyra/safe-fetch';
2
+
3
+ declare enum HotelDomainTLD {
4
+ Brazilian = ".com.br",
5
+ Danish = ".dk",
6
+ Dutch = ".nl",
7
+ Finnish = ".fi",
8
+ French = ".fr",
9
+ German = ".de",
10
+ International = ".com",
11
+ Italian = ".it",
12
+ Spanish = ".es",
13
+ Turkish = ".com.tr"
14
+ }
15
+ declare const HotelDomainURL: {
16
+ readonly Brazilian: "https://www.habbo.com.br";
17
+ readonly Danish: "https://www.habbo.dk";
18
+ readonly Dutch: "https://www.habbo.nl";
19
+ readonly Finnish: "https://www.habbo.fi";
20
+ readonly French: "https://www.habbo.fr";
21
+ readonly German: "https://www.habbo.de";
22
+ readonly International: "https://www.habbo.com";
23
+ readonly Italian: "https://www.habbo.it";
24
+ readonly Spanish: "https://www.habbo.es";
25
+ readonly Turkish: "https://www.habbo.com.tr";
26
+ };
27
+
28
+ declare abstract class BaseAPI {
29
+ #private;
30
+ protected readonly baseURL: string;
31
+ protected readonly timeout: number | null;
32
+ constructor(baseURL: string, timeout?: number | null | undefined);
33
+ protected formatURL(route: string): URL;
34
+ protected fetch(url: string | URL, options?: APIOptions): Promise<FetchResult<Response>>;
35
+ }
36
+ interface APIOptions {
37
+ signal?: AbortSignal | number | null | undefined;
38
+ }
39
+
40
+ declare class GroupsAPI extends BaseAPI {
41
+ /**
42
+ * Get the data for a group given its identifier
43
+ *
44
+ * @param id - The ID of the group
45
+ * @param options - The options for the API call
46
+ */
47
+ getByUniqueId(id: HabboGroupId, options?: APIOptions): Promise<FetchResult<HabboGroup>>;
48
+ /**
49
+ * Get the members from a group given its identifier
50
+ *
51
+ * @param id - The ID of the group
52
+ * @param options - The options for the API call
53
+ */
54
+ getGroupMembers(id: HabboGroupId, options?: APIOptions): Promise<FetchResult<HabboGroupMember[]>>;
55
+ /**
56
+ * Get the image URL for a badge
57
+ *
58
+ * @param badgeCode - The badge's code, retrieved from {@linkcode HabboGroup.badgeCode}
59
+ *
60
+ * @unstable This feature is not documented, use at your own risk
61
+ */
62
+ getGroupBadgeImageURL(badgeCode: string): URL;
63
+ }
64
+ type HabboGroupId = `g-hh${string}-${string};`;
65
+ /**
66
+ * Represents a Habbo group.
67
+ */
68
+ interface HabboGroup {
69
+ /**
70
+ * The unique identifier of the group.
71
+ */
72
+ id: HabboGroupId;
73
+ /**
74
+ * The name of the group.
75
+ */
76
+ name: string;
77
+ /**
78
+ * The description of the group.
79
+ */
80
+ description: string;
81
+ /**
82
+ * The type of the group.
83
+ */
84
+ type: HabboGroupType;
85
+ /**
86
+ * The ID of the room associated with the group, or null if no room is associated.
87
+ */
88
+ roomId: number | null;
89
+ /**
90
+ * The badge code of the group.
91
+ */
92
+ badgeCode: string;
93
+ }
94
+ /**
95
+ * Enum representing the type of a Habbo group.
96
+ */
97
+ declare enum HabboGroupType {
98
+ /**
99
+ * A normal group (public).
100
+ */
101
+ NORMAL = "NORMAL",
102
+ /**
103
+ * A favourite (exclusive) group.
104
+ */
105
+ FAVOURITE = "EXCLUSIVE",
106
+ /**
107
+ * A private (closed) group.
108
+ */
109
+ PRIVATE = "CLOSED"
110
+ }
111
+ /**
112
+ * Represents a member of a Habbo group.
113
+ */
114
+ interface HabboGroupMember {
115
+ /**
116
+ * Indicates whether the member is online.
117
+ */
118
+ online: boolean;
119
+ /**
120
+ * The gender of the member.
121
+ */
122
+ gender: 'm' | 'f';
123
+ /**
124
+ * The motto of the member.
125
+ */
126
+ motto: string;
127
+ /**
128
+ * The figure of the member in the Habbo world.
129
+ */
130
+ habboFigure: string;
131
+ /**
132
+ * The date since the member joined the group.
133
+ */
134
+ memberSince: string;
135
+ /**
136
+ * The unique identifier of the member.
137
+ */
138
+ uniqueId: string;
139
+ /**
140
+ * The name of the member.
141
+ */
142
+ name: string;
143
+ /**
144
+ * Indicates whether the member is an admin of the group.
145
+ */
146
+ isAdmin: boolean;
147
+ }
148
+
149
+ declare class UsersAPI extends BaseAPI {
150
+ /**
151
+ * Get a user by its username
152
+ *
153
+ * @param username - The username to search a Habbo user by
154
+ * @param options - The options for the API call
155
+ */
156
+ getByUsername(username: string, options?: APIOptions): Promise<FetchResult<HabboUser>>;
157
+ /**
158
+ * Get a user by its ID
159
+ *
160
+ * @param uniqueId - The ID to search a Habbo user by
161
+ * @param options - The options for the API call
162
+ */
163
+ getByUniqueId(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUser>>;
164
+ /**
165
+ * Get a user's friends
166
+ *
167
+ * @param uniqueId - The ID to search a Habbo user by
168
+ * @param options - The options for the API call
169
+ */
170
+ getUserFriends(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserFriend[]>>;
171
+ /**
172
+ * Get a user's groups
173
+ *
174
+ * @param uniqueId - The ID to search a Habbo user by
175
+ * @param options - The options for the API call
176
+ */
177
+ getUserGroups(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserGroup[]>>;
178
+ /**
179
+ * Get a user's rooms
180
+ *
181
+ * @param uniqueId - The ID to search a Habbo user by
182
+ * @param options - The options for the API call
183
+ */
184
+ getUserRooms(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserRoom[]>>;
185
+ /**
186
+ * Get a user's badges
187
+ *
188
+ * @param uniqueId - The ID to search a Habbo user by
189
+ * @param options - The options for the API call
190
+ */
191
+ getUserBadges(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserBadge[]>>;
192
+ /**
193
+ * Get a user's profile
194
+ *
195
+ * @param uniqueId - The ID to search a Habbo user by
196
+ * @param options - The options for the API call
197
+ */
198
+ getUserProfile(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserProfile>>;
199
+ /**
200
+ * Get a user's photos
201
+ *
202
+ * @param uniqueId - The ID to search a Habbo user by
203
+ * @param options - The options for the API call
204
+ */
205
+ getUserPhotos(uniqueId: string, options?: APIOptions): Promise<FetchResult<HabboUserPhotos[]>>;
206
+ /**
207
+ * Get a user's figure
208
+ *
209
+ * @param options - The options for the image
210
+ */
211
+ getUserFigureImageURL(options: HabboFigureName | HabboFigureStatic): URL;
212
+ }
213
+ type HabboUserId = `hh${string}-${string}`;
214
+ /**
215
+ * Represents a Habbo user.
216
+ */
217
+ interface HabboUser {
218
+ /**
219
+ * The unique identifier of the user.
220
+ */
221
+ uniqueId: HabboUserId;
222
+ /**
223
+ * The name of the user.
224
+ */
225
+ name: string;
226
+ /**
227
+ * The figure string of the user.
228
+ */
229
+ figureString: string;
230
+ /**
231
+ * The motto of the user.
232
+ */
233
+ motto: string;
234
+ /**
235
+ * Indicates whether the user is online.
236
+ */
237
+ online: boolean;
238
+ /**
239
+ * The last access time of the user.
240
+ */
241
+ lastAccessTime: string;
242
+ /**
243
+ * The date when the user became a member.
244
+ */
245
+ memberSince: string;
246
+ /**
247
+ * Indicates whether the user's profile is visible.
248
+ */
249
+ profileVisible: boolean;
250
+ /**
251
+ * The current level of the user.
252
+ */
253
+ currentLevel: number;
254
+ /**
255
+ * The percentage of the current level completed by the user.
256
+ */
257
+ currentLevelCompletePercent: number;
258
+ /**
259
+ * The total experience points of the user.
260
+ */
261
+ totalExperience: number;
262
+ /**
263
+ * The number of star gems the user has.
264
+ */
265
+ starGemCount: number;
266
+ /**
267
+ * The badges selected by the user.
268
+ */
269
+ selectedBadges: HabboUserSelectedBadge[];
270
+ }
271
+ /**
272
+ * Represents a room owned by a Habbo user.
273
+ */
274
+ interface HabboUserRoom {
275
+ /**
276
+ * The unique identifier of the room.
277
+ */
278
+ id: number;
279
+ /**
280
+ * The name of the room.
281
+ */
282
+ name: string;
283
+ /**
284
+ * The description of the room.
285
+ */
286
+ description: string;
287
+ /**
288
+ * The creation time of the room.
289
+ */
290
+ creationTime: string;
291
+ /**
292
+ * The unique identifier of the Habbo group associated with the room.
293
+ */
294
+ habboGroupId: string;
295
+ /**
296
+ * The tags associated with the room.
297
+ */
298
+ tags: string[];
299
+ /**
300
+ * The maximum number of visitors allowed in the room.
301
+ */
302
+ maximumVisitors: number;
303
+ /**
304
+ * Indicates whether the owner's name is shown.
305
+ */
306
+ showOwnerName: boolean;
307
+ /**
308
+ * The name of the room owner.
309
+ */
310
+ ownerName: string;
311
+ /**
312
+ * The unique identifier of the room owner.
313
+ */
314
+ ownerUniqueId: string;
315
+ /**
316
+ * The categories associated with the room.
317
+ */
318
+ categories: string[];
319
+ /**
320
+ * The URL of the room's thumbnail image.
321
+ */
322
+ thumbnailUrl: string;
323
+ /**
324
+ * The URL of the room's image.
325
+ */
326
+ imageUrl: string;
327
+ /**
328
+ * The rating of the room.
329
+ */
330
+ rating: number;
331
+ /**
332
+ * The unique identifier of the room.
333
+ */
334
+ uniqueId: string;
335
+ }
336
+ /**
337
+ * Represents a group associated with a Habbo user.
338
+ */
339
+ interface HabboUserGroup {
340
+ /**
341
+ * Indicates whether the group is online.
342
+ */
343
+ online: boolean;
344
+ /**
345
+ * The unique identifier of the group.
346
+ */
347
+ id: string;
348
+ /**
349
+ * The name of the group.
350
+ */
351
+ name: string;
352
+ /**
353
+ * The description of the group.
354
+ */
355
+ description: string;
356
+ /**
357
+ * The type of the group.
358
+ */
359
+ type: HabboGroupType;
360
+ /**
361
+ * The unique identifier of the room associated with the group.
362
+ */
363
+ roomId: string;
364
+ /**
365
+ * The badge code of the group.
366
+ */
367
+ badgeCode: string;
368
+ /**
369
+ * The primary color of the group.
370
+ */
371
+ primaryColour: string;
372
+ /**
373
+ * The secondary color of the group.
374
+ */
375
+ secondaryColour: string;
376
+ /**
377
+ * Indicates whether the user is an admin of the group.
378
+ */
379
+ isAdmin: boolean;
380
+ }
381
+ /**
382
+ * Represents a badge owned by a Habbo user.
383
+ */
384
+ interface HabboUserBadge {
385
+ /**
386
+ * The code of the badge.
387
+ */
388
+ code: string;
389
+ /**
390
+ * The name of the badge.
391
+ */
392
+ name: string;
393
+ /**
394
+ * The description of the badge.
395
+ */
396
+ description: string;
397
+ }
398
+ /**
399
+ * Represents a selected badge of a Habbo user.
400
+ */
401
+ interface HabboUserSelectedBadge extends HabboUserBadge {
402
+ /**
403
+ * The index of the badge.
404
+ */
405
+ badgeIndex: number;
406
+ }
407
+ /**
408
+ * Represents a friend of a Habbo user.
409
+ */
410
+ interface HabboUserFriend {
411
+ /**
412
+ * The unique identifier of the friend.
413
+ */
414
+ uniqueId: string;
415
+ /**
416
+ * The name of the friend.
417
+ */
418
+ name: string;
419
+ /**
420
+ * The figure string of the friend.
421
+ */
422
+ figureString: string;
423
+ /**
424
+ * The motto of the friend.
425
+ */
426
+ motto: string;
427
+ /**
428
+ * Indicates whether the friend is online.
429
+ */
430
+ online: boolean;
431
+ }
432
+ /**
433
+ * Represents the profile of a Habbo user.
434
+ */
435
+ interface HabboUserProfile {
436
+ /**
437
+ * The unique identifier of the user.
438
+ */
439
+ uniqueId: string;
440
+ /**
441
+ * The name of the user.
442
+ */
443
+ name: string;
444
+ /**
445
+ * The figure string of the user.
446
+ */
447
+ figureString: string;
448
+ /**
449
+ * The motto of the user.
450
+ */
451
+ motto: string;
452
+ /**
453
+ * Indicates whether the user is online.
454
+ */
455
+ online: boolean;
456
+ /**
457
+ * The last access time of the user.
458
+ */
459
+ lastAccessTime: string;
460
+ /**
461
+ * The date when the user became a member.
462
+ */
463
+ memberSince: string;
464
+ /**
465
+ * Indicates whether the user's profile is visible.
466
+ */
467
+ profileVisible: boolean;
468
+ /**
469
+ * The current level of the user.
470
+ */
471
+ currentLevel: number;
472
+ /**
473
+ * The percentage of the current level completed by the user.
474
+ */
475
+ currentLevelCompletePercent: number;
476
+ /**
477
+ * The total experience points of the user.
478
+ */
479
+ totalExperience: number;
480
+ /**
481
+ * The number of star gems the user has.
482
+ */
483
+ starGemCount: number;
484
+ /**
485
+ * The badges selected by the user.
486
+ */
487
+ selectedBadges: HabboUserSelectedBadge[];
488
+ /**
489
+ * The groups the user is a member of.
490
+ */
491
+ groups: HabboUserGroup[];
492
+ /**
493
+ * The badges owned by the user.
494
+ */
495
+ badges: HabboUserBadge[];
496
+ /**
497
+ * The friends of the user.
498
+ */
499
+ friends: HabboUserFriend[];
500
+ /**
501
+ * The rooms owned by the user.
502
+ */
503
+ rooms: HabboUserRoom[];
504
+ }
505
+ /**
506
+ * Represents photos associated with a Habbo user.
507
+ */
508
+ interface HabboUserPhotos {
509
+ /**
510
+ * The unique identifier of the room where the photo was taken.
511
+ */
512
+ room_id: number;
513
+ /**
514
+ * The unique identifier of the photo creator.
515
+ */
516
+ creator_id: number;
517
+ /**
518
+ * The name of the photo creator.
519
+ */
520
+ creator_name: string;
521
+ /**
522
+ * The time when the photo was taken.
523
+ */
524
+ time: number;
525
+ /**
526
+ * The version of the photo.
527
+ */
528
+ version: number;
529
+ /**
530
+ * The URL of the photo.
531
+ */
532
+ url: string;
533
+ /**
534
+ * The type of the photo.
535
+ */
536
+ type: string;
537
+ /**
538
+ * The unique identifier of the photo creator.
539
+ */
540
+ creator_uniqueId: string;
541
+ /**
542
+ * The tags associated with the photo.
543
+ */
544
+ tags: string[];
545
+ /**
546
+ * The URL of the photo preview.
547
+ */
548
+ previewUrl: string;
549
+ /**
550
+ * The unique identifier of the photo.
551
+ */
552
+ id: string;
553
+ /**
554
+ * The likes associated with the photo.
555
+ */
556
+ likes: string[];
557
+ }
558
+ interface HabboFigureName extends HabboFigureBase {
559
+ /**
560
+ * The Habbo username.
561
+ */
562
+ user: string;
563
+ }
564
+ interface HabboFigureStatic extends HabboFigureBase {
565
+ /**
566
+ * The Habbo figure to use.
567
+ */
568
+ figure: string;
569
+ /**
570
+ * The Habbo's gender.
571
+ */
572
+ gender?: keyof typeof HabboFigureGender | undefined | null;
573
+ }
574
+ interface HabboFigureBase {
575
+ /**
576
+ * The action the user should perform.
577
+ */
578
+ action?: keyof typeof HabboFigureAction | undefined | null;
579
+ /**
580
+ * The hand item, will override {@linkcode HabboFigureBase.action} to `'crr'`.
581
+ */
582
+ hand?: keyof typeof HabboFigureHand | undefined | null;
583
+ /**
584
+ * The Habbo's direction.
585
+ */
586
+ direction?: keyof typeof HabboFigureDirection | undefined | null;
587
+ /**
588
+ * The Habbo's head direction.
589
+ */
590
+ headDirection?: keyof typeof HabboFigureDirection | undefined | null;
591
+ /**
592
+ * The gesture, if any.
593
+ */
594
+ gesture?: keyof typeof HabboFigureGesture | undefined | null;
595
+ /**
596
+ * The size of the character.
597
+ */
598
+ size?: keyof typeof HabboFigureSize | undefined | null;
599
+ /**
600
+ * Whether or not to render only the head.
601
+ */
602
+ headOnly?: boolean | undefined | null;
603
+ }
604
+ declare const HabboFigureAction: {
605
+ readonly lay: "lay";
606
+ readonly sit: "sit";
607
+ readonly respect: "respect";
608
+ readonly walk: "wlk";
609
+ readonly wave: "wav";
610
+ readonly carry: "crr";
611
+ readonly drink: "drk";
612
+ readonly sign: "sig";
613
+ readonly blow: "blw";
614
+ readonly laugh: "laugh";
615
+ };
616
+ declare const HabboFigureHand: {
617
+ readonly nothing: "0";
618
+ readonly carrot: "2";
619
+ readonly coffee: "6";
620
+ readonly cocktail: "667";
621
+ readonly habbo_cola: "5";
622
+ readonly ice_cream: "3";
623
+ readonly japanese_tea: "42";
624
+ readonly love_potion: "9";
625
+ readonly radioactive: "44";
626
+ readonly tomato: "43";
627
+ readonly water: "1";
628
+ };
629
+ declare const HabboFigureGesture: {
630
+ readonly nothing: "nrm";
631
+ readonly happy: "sml";
632
+ readonly sad: "sad";
633
+ readonly angry: "agr";
634
+ readonly surprised: "srp";
635
+ readonly sleeping: "eyb";
636
+ readonly speaking: "spk";
637
+ };
638
+ declare const HabboFigureSize: {
639
+ readonly small: "s";
640
+ readonly normal: "m";
641
+ readonly large: "l";
642
+ };
643
+ declare const HabboFigureDirection: {
644
+ readonly nw: "0";
645
+ readonly w: "1";
646
+ readonly sw: "2";
647
+ readonly s: "3";
648
+ readonly se: "4";
649
+ readonly e: "5";
650
+ readonly ne: "6";
651
+ readonly n: "7";
652
+ };
653
+ declare const HabboFigureGender: {
654
+ readonly male: "M";
655
+ readonly female: "F";
656
+ };
657
+ declare const HabboFigureGestureKeys: (keyof typeof HabboFigureGesture)[];
658
+ declare const HabboFigureActionKeys: (keyof typeof HabboFigureAction)[];
659
+ declare const HabboFigureHandKeys: (keyof typeof HabboFigureHand)[];
660
+ declare const HabboFigureSizeKeys: (keyof typeof HabboFigureSize)[];
661
+ declare const HabboFigureDirectionKeys: (keyof typeof HabboFigureDirection)[];
662
+ declare const HabboFigureGenderKeys: (keyof typeof HabboFigureGender)[];
663
+
664
+ declare class AchievementsAPI extends BaseAPI {
665
+ /**
666
+ * Get all achievements
667
+ *
668
+ * @param options - The options for the API call
669
+ */
670
+ getAll(options?: APIOptions): Promise<FetchResult<Achievement[]>>;
671
+ /**
672
+ * Get the achievements from a specified user ID
673
+ *
674
+ * @param id - The ID of the user
675
+ * @param options - The options for the API call
676
+ */
677
+ getByUserId(id: HabboUserId, options?: APIOptions): Promise<FetchResult<UserAchievement[]>>;
678
+ /**
679
+ * Get the image URL for an achievement
680
+ *
681
+ * @param achievementName - The name of the achievement, retrieved from {@linkcode AchievementData.name}
682
+ *
683
+ * @unstable This feature is not documented, use at your own risk
684
+ */
685
+ getImageURL(achievementName: string): URL;
686
+ }
687
+ interface Achievement {
688
+ achievement: AchievementData;
689
+ levelRequirements: AchievementRequirements;
690
+ }
691
+ interface UserAchievement {
692
+ achievement: AchievementData;
693
+ level: number;
694
+ score: number;
695
+ }
696
+ interface AchievementData {
697
+ id: number;
698
+ name: string;
699
+ creationTime: `${bigint}-${bigint}-${bigint}`;
700
+ state: AchievementDataState;
701
+ category: string;
702
+ }
703
+ declare enum AchievementDataState {
704
+ Enabled = "ENABLED",
705
+ Archived = "ARCHIVED",
706
+ OffSeason = "OFF_SEASON"
707
+ }
708
+ interface AchievementRequirements {
709
+ level: number;
710
+ requiredScore: number;
711
+ }
712
+
713
+ declare class ListsAPI extends BaseAPI {
714
+ #private;
715
+ /**
716
+ * Get the hot looks from the hotel
717
+ *
718
+ * @param options - The options for the API call
719
+ */
720
+ getHotLooks(options: APIOptions): Promise<FetchResult<HabboHotLookList>>;
721
+ }
722
+ interface HabboHotLookList {
723
+ url: string;
724
+ entries: HabboHotLookListItem[];
725
+ }
726
+ interface HabboHotLookListItem {
727
+ gender: 'f' | 'm';
728
+ figure: string;
729
+ hash: string;
730
+ }
731
+
732
+ declare class MarketplaceAPI extends BaseAPI {
733
+ /**
734
+ * Get the marketplace stats for a room item
735
+ *
736
+ * @param roomItemName - The name of the room item
737
+ * @param options - The options for the API call
738
+ */
739
+ getRoomItemStats(roomItemName: string, options?: APIOptions): Promise<FetchResult<MarketplaceStats>>;
740
+ /**
741
+ * Get the marketplace stats for a wall item
742
+ *
743
+ * @param wallItemName - The name of the wall item
744
+ * @param options - The options for the API call
745
+ */
746
+ getWallItemStats(wallItemName: string, options?: APIOptions): Promise<FetchResult<MarketplaceStats>>;
747
+ }
748
+ interface MarketplaceStats {
749
+ status: 'OK';
750
+ statsDate: `${bigint}-${bigint}-${bigint}`;
751
+ soldItemCount: number;
752
+ creditSum: number;
753
+ averagePrice: number;
754
+ totalOpenOffers: number;
755
+ historyLimitInDays: number;
756
+ }
757
+
758
+ declare class PingAPI extends BaseAPI {
759
+ /**
760
+ * Pings Habbo, returning the measured time using {@linkcode performance.now()}
761
+ *
762
+ * @param options - The options for the API call
763
+ */
764
+ get(options?: APIOptions): Promise<number | null>;
765
+ }
766
+
767
+ declare class RoomsAPI extends BaseAPI {
768
+ /**
769
+ * Get a room by its ID
770
+ *
771
+ * @param roomId - The ID of the room
772
+ * @param options - The options for the API call
773
+ */
774
+ getById(roomId: number, options?: APIOptions): Promise<FetchResult<HabboRoom>>;
775
+ }
776
+ interface HabboRoom {
777
+ id: number;
778
+ name: string;
779
+ description: string;
780
+ creationTime: `${bigint}-${bigint}-${bigint}T${string}`;
781
+ habboGroupId: string;
782
+ tags: string[];
783
+ maximumVisitors: number;
784
+ showOwnerName: boolean;
785
+ ownerName: string;
786
+ ownerUniqueId: string;
787
+ categories: string[];
788
+ thumbnailUrl: string;
789
+ imageUrl: string;
790
+ rating: number;
791
+ uniqueId: HabboRoomUniqueId;
792
+ }
793
+ type HabboRoomUniqueId = `r-hh${string}-${string}`;
794
+
795
+ declare class Habbo {
796
+ readonly achievements: AchievementsAPI;
797
+ readonly groups: GroupsAPI;
798
+ readonly lists: ListsAPI;
799
+ readonly marketplace: MarketplaceAPI;
800
+ readonly ping: PingAPI;
801
+ readonly rooms: RoomsAPI;
802
+ readonly users: UsersAPI;
803
+ constructor(options?: HabboOptions);
804
+ }
805
+ interface HabboOptions {
806
+ baseURL?: string | null | undefined;
807
+ timeout?: number | null | undefined;
808
+ }
809
+
810
+ export { type Achievement, type AchievementData, AchievementDataState, type AchievementRequirements, AchievementsAPI, GroupsAPI, Habbo, HabboFigureAction, HabboFigureActionKeys, type HabboFigureBase, HabboFigureDirection, HabboFigureDirectionKeys, HabboFigureGender, HabboFigureGenderKeys, HabboFigureGesture, HabboFigureGestureKeys, HabboFigureHand, HabboFigureHandKeys, type HabboFigureName, HabboFigureSize, HabboFigureSizeKeys, type HabboFigureStatic, type HabboGroup, type HabboGroupId, type HabboGroupMember, HabboGroupType, type HabboHotLookList, type HabboHotLookListItem, type HabboOptions, type HabboRoom, type HabboRoomUniqueId, type HabboUser, type HabboUserBadge, type HabboUserFriend, type HabboUserGroup, type HabboUserId, type HabboUserPhotos, type HabboUserProfile, type HabboUserRoom, type HabboUserSelectedBadge, HotelDomainTLD, HotelDomainURL, ListsAPI, MarketplaceAPI, type MarketplaceStats, PingAPI, RoomsAPI, type UserAchievement, UsersAPI };