lxns-rhythm-api 0.1.4 → 0.1.9

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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,176 @@
1
1
  import { KyInstance } from 'ky';
2
2
 
3
+ interface Notes$1 {
4
+ total: number;
5
+ tap: number;
6
+ hold: number;
7
+ slide: number;
8
+ air: number;
9
+ flick: number;
10
+ }
11
+ declare enum LevelIndex$1 {
12
+ BASIC = 0,
13
+ ADVANCED = 1,
14
+ EXPERT = 2,
15
+ MASTER = 3,
16
+ ULTIMA = 4,
17
+ WORLDS_END = 5
18
+ }
19
+ interface ClassEmblem {
20
+ base: number;
21
+ medal: number;
22
+ }
23
+ type ClearType = "catastrophy" | "absolute" | "brave" | "hard" | "clear" | "failed";
24
+ type RankType = "sssp" | "sss" | "ssp" | "ss" | "sp" | "s" | "aaa" | "aa" | "a" | "bbb" | "bb" | "b" | "c" | "d";
25
+ type FullComboType = "alljusticecritical" | "alljustice" | "fullcombo";
26
+ type FullChainType = "fullchain" | "fullchain2";
27
+ type TrophyColor = "normal" | "copper" | "silver" | "gold" | "platinum" | "rainbow" | "image";
28
+ type SongType$1 = string;
29
+ interface SongDifficulty$1 {
30
+ difficulty: LevelIndex$1;
31
+ level: string;
32
+ level_value: number;
33
+ note_designer: string;
34
+ version: number;
35
+ notes?: Notes$1;
36
+ origin_id?: number;
37
+ kanji?: string;
38
+ star?: number;
39
+ }
40
+ interface Song$2 {
41
+ id: number;
42
+ title: string;
43
+ artist: string;
44
+ genre: string;
45
+ bpm: number;
46
+ map?: string;
47
+ version: number;
48
+ rights?: string;
49
+ disabled?: boolean;
50
+ locked?: boolean;
51
+ difficulties: SongDifficulty$1[];
52
+ aliases?: string[];
53
+ }
54
+ interface Genre$1 {
55
+ id: number;
56
+ genre: string;
57
+ }
58
+ interface Version$1 {
59
+ id: number;
60
+ title: string;
61
+ version: number;
62
+ }
63
+ interface Alias$1 {
64
+ song_id: number;
65
+ aliases: string[];
66
+ }
67
+ interface Player$1 {
68
+ name: string;
69
+ level: number;
70
+ rating: number;
71
+ rating_possession: string;
72
+ friend_code: number;
73
+ class_emblem: ClassEmblem;
74
+ reborn_count: number;
75
+ over_power: number;
76
+ over_power_progress: number;
77
+ currency: number;
78
+ total_currency: number;
79
+ total_play_count: number;
80
+ team?: Team;
81
+ trophy?: Trophy$1;
82
+ character?: Character;
83
+ name_plate?: NamePlate$1;
84
+ map_icon?: MapIcon;
85
+ upload_time?: string;
86
+ }
87
+ interface Team {
88
+ id: number;
89
+ name: string;
90
+ }
91
+ interface Collection$1 {
92
+ id: number;
93
+ name: string;
94
+ color?: TrophyColor;
95
+ level?: number;
96
+ required?: CollectionRequired$1[];
97
+ }
98
+ interface CollectionRequired$1 {
99
+ difficulties?: LevelIndex$1[];
100
+ rank?: RankType;
101
+ clear?: ClearType;
102
+ full_combo?: FullComboType;
103
+ full_chain?: FullChainType;
104
+ songs?: CollectionRequiredSong$1[];
105
+ completed?: boolean;
106
+ }
107
+ interface CollectionRequiredSong$1 {
108
+ id: number;
109
+ title: string;
110
+ type: SongType$1;
111
+ completed?: boolean;
112
+ completed_difficulties?: LevelIndex$1[];
113
+ }
114
+ interface Score$1 {
115
+ id: number;
116
+ song_name?: string;
117
+ level?: string;
118
+ level_index: LevelIndex$1;
119
+ score: number;
120
+ over_power?: number;
121
+ clear?: ClearType;
122
+ rank?: RankType;
123
+ full_combo?: FullComboType;
124
+ full_chain?: FullChainType;
125
+ chain?: number;
126
+ rating?: number;
127
+ type: SongType$1;
128
+ play_time?: string;
129
+ upload_time?: string;
130
+ last_played_time?: string;
131
+ }
132
+ interface SimpleScore$1 {
133
+ id: number;
134
+ song_name: string;
135
+ level: string;
136
+ level_index: LevelIndex$1;
137
+ clear: ClearType;
138
+ rank: RankType;
139
+ full_combo?: FullComboType;
140
+ full_chain?: FullChainType;
141
+ type: SongType$1;
142
+ }
143
+ interface RatingTrend$1 {
144
+ rating: number;
145
+ bests_rating: number;
146
+ selections_rating: number;
147
+ recents_rating?: number;
148
+ new_bests_rating?: number;
149
+ date: string;
150
+ }
151
+ interface Trophy$1 extends Collection$1 {
152
+ }
153
+ interface Character extends Collection$1 {
154
+ }
155
+ interface NamePlate$1 extends Collection$1 {
156
+ }
157
+ interface MapIcon extends Collection$1 {
158
+ }
159
+ type AssetType$1 = "character" | "trophy" | "plate" | "icon" | "jacket" | "music";
160
+
161
+ type models$1_Character = Character;
162
+ type models$1_ClassEmblem = ClassEmblem;
163
+ type models$1_ClearType = ClearType;
164
+ type models$1_FullChainType = FullChainType;
165
+ type models$1_FullComboType = FullComboType;
166
+ type models$1_MapIcon = MapIcon;
167
+ type models$1_RankType = RankType;
168
+ type models$1_Team = Team;
169
+ type models$1_TrophyColor = TrophyColor;
170
+ declare namespace models$1 {
171
+ export { type Alias$1 as Alias, type AssetType$1 as AssetType, type models$1_Character as Character, type models$1_ClassEmblem as ClassEmblem, type models$1_ClearType as ClearType, type Collection$1 as Collection, type CollectionRequired$1 as CollectionRequired, type CollectionRequiredSong$1 as CollectionRequiredSong, type models$1_FullChainType as FullChainType, type models$1_FullComboType as FullComboType, type Genre$1 as Genre, LevelIndex$1 as LevelIndex, type models$1_MapIcon as MapIcon, type NamePlate$1 as NamePlate, type Notes$1 as Notes, type Player$1 as Player, type models$1_RankType as RankType, type RatingTrend$1 as RatingTrend, type Score$1 as Score, type SimpleScore$1 as SimpleScore, type Song$2 as Song, type SongDifficulty$1 as SongDifficulty, type SongType$1 as SongType, type models$1_Team as Team, type Trophy$1 as Trophy, type models$1_TrophyColor as TrophyColor, type Version$1 as Version };
172
+ }
173
+
3
174
  interface Notes {
4
175
  total: number;
5
176
  tap: number;
@@ -285,97 +456,144 @@ declare namespace models {
285
456
  export { type models_Alias as Alias, type models_AssetType as AssetType, type models_BuddyNotes as BuddyNotes, type models_Collection as Collection, type models_CollectionGenre as CollectionGenre, type models_CollectionRequired as CollectionRequired, type models_CollectionRequiredSong as CollectionRequiredSong, type models_FCType as FCType, type models_FSType as FSType, type models_Frame as Frame, type models_Genre as Genre, type models_Icon as Icon, models_LevelIndex as LevelIndex, type models_NamePlate as NamePlate, type models_Notes as Notes, type models_Player as Player, type models_RateType as RateType, type models_RatingTrend as RatingTrend, type models_Score as Score, type models_SimpleScore as SimpleScore, type Song$1 as Song, type models_SongDifficulties as SongDifficulties, type models_SongDifficulty as SongDifficulty, type models_SongDifficultyUtage as SongDifficultyUtage, type models_SongType as SongType, type models_Trophy as Trophy, type models_Version as Version };
286
457
  }
287
458
 
288
- interface SongList {
289
- songs: Song$1[];
290
- genres: Genre[];
291
- versions: Version[];
292
- }
293
- interface AliasList {
294
- aliases: Alias[];
459
+ interface Bests$1 {
460
+ bests: Score$1[];
461
+ selections: Score$1[];
462
+ new_bests: Score$1[];
463
+ }
464
+ type RecentList$1 = Score$1[];
465
+ type BestScoreList$1 = SimpleScore$1[];
466
+ type Heatmap$1 = Record<string, number>;
467
+ type TrendList$1 = RatingTrend$1[];
468
+ type ScoreHistory$1 = Score$1[];
469
+
470
+ /**
471
+ * chunithm 开发者 API
472
+ */
473
+ declare class ChunithmDevApi {
474
+ readonly http: KyInstance;
475
+ constructor(http: KyInstance);
476
+ /**
477
+ * 创建或修改玩家信息
478
+ */
479
+ postPlayer(body: Player$1): Promise<Player$1>;
480
+ /**
481
+ * 获取玩家信息(通过好友码)
482
+ */
483
+ getPlayer(friendCode: number): Promise<Player$1>;
484
+ /**
485
+ * 获取玩家信息(通过 QQ 号)
486
+ */
487
+ getPlayerByQQ(qq: number): Promise<Player$1>;
488
+ /**
489
+ * 获取 Best 30(old 15 + new 15)
490
+ */
491
+ getBests(friendCode: number): Promise<Bests$1>;
492
+ /**
493
+ * 获取玩家缓存谱面的最佳成绩
494
+ */
495
+ getBest(friendCode: number, options: {
496
+ songId?: number;
497
+ songName?: string;
498
+ levelIndex?: LevelIndex$1;
499
+ }): Promise<Score$1>;
500
+ /**
501
+ * 获取玩家缓存的所有最佳成绩(简化)
502
+ */
503
+ getAllBestScores(friendCode: number): Promise<BestScoreList$1>;
504
+ /**
505
+ * 获取 Recent 50
506
+ */
507
+ getRecents(friendCode: number): Promise<RecentList$1>;
508
+ /**
509
+ * 获取成绩游玩历史记录
510
+ */
511
+ getScoreHistory(friendCode: number, options?: {
512
+ songId?: number;
513
+ levelIndex?: LevelIndex$1;
514
+ }): Promise<ScoreHistory$1>;
515
+ /**
516
+ * 成绩上传热力图
517
+ */
518
+ getHeatmap(friendCode: number): Promise<Heatmap$1>;
519
+ /**
520
+ * Rating 趋势
521
+ */
522
+ getTrend(friendCode: number, version?: number): Promise<TrendList$1>;
523
+ /**
524
+ * 获取玩家收藏品进度
525
+ */
526
+ getCollectionProgress(friendCode: number, collectionType: "trophy" | "character" | "plate" | "icon", collectionId: number): Promise<Collection$1>;
527
+ /**
528
+ * 上传玩家成绩
529
+ */
530
+ postScores(friendCode: number, scores: Score$1[]): Promise<unknown>;
531
+ /**
532
+ * 通过 NET 的 HTML 源代码上传玩家数据
533
+ */
534
+ postHtml(friendCode: number, htmlSource: string): Promise<unknown>;
295
535
  }
296
- interface CollectionGenreList {
297
- collectionGenres: CollectionGenre[];
536
+
537
+ type PlayerScores$1 = Score$1[];
538
+
539
+ /**
540
+ * chunithm 个人 API(需用户身份)
541
+ */
542
+ declare class ChunithmPersonalApi {
543
+ readonly http: KyInstance;
544
+ constructor(http: KyInstance);
545
+ /**
546
+ * 获取玩家信息
547
+ * GET /api/v0/user/chunithm/player
548
+ */
549
+ getPlayer(): Promise<Player$1>;
550
+ /**
551
+ * 获取玩家所有成绩
552
+ * GET /api/v0/user/chunithm/player/scores
553
+ */
554
+ getScores(): Promise<PlayerScores$1>;
555
+ /**
556
+ * 上传玩家成绩
557
+ * POST /api/v0/user/chunithm/player/scores
558
+ */
559
+ postScores(scores: Score$1[]): Promise<unknown>;
298
560
  }
299
561
 
300
- declare class Song implements Song$1 {
301
- readonly id: Song$1["id"];
302
- readonly title: Song$1["title"];
303
- readonly artist: Song$1["artist"];
304
- readonly genre: Song$1["genre"];
305
- readonly version: Song$1["version"];
306
- readonly bpm: Song$1["bpm"];
307
- readonly difficulties: Song$1["difficulties"];
308
- readonly locked: boolean;
309
- readonly disabled: boolean;
310
- readonly rights: Song$1["rights"];
311
- constructor(song: Song$1);
312
- get standard(): Record<"basic" | "advanced" | "expert" | "master" | "remaster", SongDifficulty> | null;
313
- get dx(): Record<"basic" | "advanced" | "expert" | "master" | "remaster", SongDifficulty> | null;
314
- get utage(): Record<"basic" | "advanced" | "expert" | "master" | "remaster", SongDifficultyUtage> | null;
562
+ interface SongList$1 {
563
+ songs: Song$2[];
564
+ genres: Genre$1[];
565
+ versions: Version$1[];
566
+ }
567
+ interface AliasList$1 {
568
+ aliases: Alias$1[];
315
569
  }
316
570
 
317
571
  /**
318
- * maimai 公共 API
572
+ * chunithm 公共 API
319
573
  */
320
- declare class MaimaiPublicApi {
321
- private readonly http;
574
+ declare class ChunithmPublicApi {
575
+ readonly http: KyInstance;
322
576
  constructor(http: KyInstance);
323
577
  /**
324
578
  * 获取歌曲列表
325
- * @param version 版本,不填写遵循api默认行为
326
- * @param notes 是否包含谱面信息,不填写遵循api默认行为
327
- * @returns 歌曲列表
328
579
  */
329
- getSongList(version?: number, notes?: boolean): Promise<SongList>;
580
+ getSongList(version?: number, notes?: boolean): Promise<SongList$1>;
330
581
  /**
331
582
  * 获取歌曲信息
332
- * @param id 歌曲 ID
333
- * @returns 歌曲信息
334
583
  */
335
- getSong(id: number): Promise<Song>;
584
+ getSong(id: number, version?: number): Promise<Song$2>;
336
585
  /**
337
586
  * 获取歌曲别名列表
338
- * @returns 歌曲别名列表
339
587
  */
340
- getAliasList(): Promise<AliasList>;
588
+ getAliasList(): Promise<AliasList$1>;
341
589
  /**
342
590
  * 获取收藏品列表
343
- * @param collectionType trophy | icon | plate | frame
344
- * @param options.version 版本,不填写遵循api默认行为
345
- * @param options.required 是否包含曲目需求,默认值为 false
346
- * @returns 收藏品列表
347
591
  */
348
- getCollectionList(collectionType: "trophy" | "icon" | "plate" | "frame", options?: {
349
- version?: number;
350
- required?: boolean;
351
- }): Promise<Collection[] | undefined>;
592
+ getCollectionList(collectionType: "trophy" | "character" | "plate" | "icon", version?: number): Promise<Collection$1[] | undefined>;
352
593
  /**
353
594
  * 获取收藏品信息
354
- * @param collectionType trophy | icon | plate | frame
355
- * @param id 收藏品 ID
356
- * @param options.version 版本,不填写遵循api默认行为
357
- * @returns 收藏品信息
358
- */
359
- getCollectionInfo(collectionType: "trophy" | "icon" | "plate" | "frame", id: number, options?: {
360
- version?: number;
361
- }): Promise<Collection>;
362
- /**
363
- * 获取收藏品分类列表
364
- * @param options.version 版本,不填写遵循api默认行为
365
- * @returns 收藏品分类列表
366
595
  */
367
- getCollectionGenreList(options?: {
368
- version?: number;
369
- }): Promise<CollectionGenreList>;
370
- /**
371
- * 获取收藏品分类信息
372
- * @param id 收藏品分类 ID
373
- * @param options.version 版本,不填写遵循api默认行为
374
- * @returns 收藏品分类信息
375
- */
376
- getCollectionGenreInfo(id: number, options?: {
377
- version?: number;
378
- }): Promise<CollectionGenre>;
596
+ getCollectionInfo(collectionType: "trophy" | "character" | "plate" | "icon", id: number, version?: number): Promise<Collection$1>;
379
597
  }
380
598
 
381
599
  interface Bests {
@@ -394,7 +612,7 @@ type ScoreHistory = Score[];
394
612
  * maimai 开发者 API(路径风格,与文档一致,不使用查询参数)
395
613
  */
396
614
  declare class MaimaiDevApi {
397
- private readonly http;
615
+ readonly http: KyInstance;
398
616
  constructor(http: KyInstance);
399
617
  /**
400
618
  * 创建或修改玩家信息
@@ -486,7 +704,7 @@ type PlayerScores = Score[];
486
704
  * maimai 个人 API(需用户身份,路径遵循文档)
487
705
  */
488
706
  declare class MaimaiPersonalApi {
489
- private readonly http;
707
+ readonly http: KyInstance;
490
708
  constructor(http: KyInstance);
491
709
  /**
492
710
  * 获取玩家信息
@@ -509,29 +727,145 @@ declare class MaimaiPersonalApi {
509
727
  postScores(scores: Score[]): Promise<unknown>;
510
728
  }
511
729
 
512
- type LxnsApiClientTokens = Omit<LxnsApiClientOptions, "baseURL">;
513
- type Flags = Readonly<LxnsApiClientTokens>;
514
- type Simplify<T> = {
515
- [K in keyof T]: T[K];
516
- } & {};
517
- type IfDefined<T, Then, Else = {}> = [T] extends [NonNullable<T>] ? Then : Else;
518
- type MaiMai = {
519
- public: MaimaiPublicApi;
520
- dev?: MaimaiDevApi;
521
- personal?: MaimaiPersonalApi;
522
- getAsset: (type: AssetType, id: number) => Promise<Buffer>;
730
+ type DifficultyMap<T> = {
731
+ 0: T;
732
+ 1: T;
733
+ 2: T;
734
+ 3: T;
735
+ 4?: T;
736
+ basic: T;
737
+ advanced: T;
738
+ expert: T;
739
+ master: T;
740
+ remaster?: T;
523
741
  };
524
- type MaiMaiOf<O extends Flags> = Simplify<Omit<MaiMai, "dev" | "personal"> & IfDefined<O["devAccessToken"], {
525
- dev: MaimaiDevApi;
526
- }> & IfDefined<O["personalAccessToken"], {
527
- personal: MaimaiPersonalApi;
528
- }>>;
742
+ declare class Song implements Song$1 {
743
+ readonly id: Song$1["id"];
744
+ readonly title: Song$1["title"];
745
+ readonly artist: Song$1["artist"];
746
+ readonly genre: Song$1["genre"];
747
+ readonly version: Song$1["version"];
748
+ readonly bpm: Song$1["bpm"];
749
+ readonly difficulties: Song$1["difficulties"];
750
+ readonly locked: boolean;
751
+ readonly disabled: boolean;
752
+ readonly rights: Song$1["rights"];
753
+ constructor(song: Song$1);
754
+ get standard(): DifficultyMap<SongDifficulty> | null;
755
+ get dx(): DifficultyMap<SongDifficulty> | null;
756
+ get utage(): SongDifficultyUtage[] | null;
757
+ }
758
+
759
+ interface SongList {
760
+ songs: Song$1[];
761
+ genres: Genre[];
762
+ versions: Version[];
763
+ }
764
+ interface AliasList {
765
+ aliases: Alias[];
766
+ }
767
+ interface CollectionGenreList {
768
+ collectionGenres: CollectionGenre[];
769
+ }
529
770
 
530
- interface LxnsApiClientOptions {
771
+ /**
772
+ * maimai 公共 API
773
+ */
774
+ declare class MaimaiPublicApi {
775
+ readonly http: KyInstance;
776
+ constructor(http: KyInstance);
777
+ /**
778
+ * 获取歌曲列表
779
+ * @param version 版本,不填写遵循api默认行为
780
+ * @param notes 是否包含谱面信息,不填写遵循api默认行为
781
+ * @returns 歌曲列表
782
+ */
783
+ getSongList(version?: number, notes?: boolean): Promise<SongList>;
784
+ /**
785
+ * 获取歌曲信息
786
+ * @param id 歌曲 ID
787
+ * @returns 歌曲信息
788
+ */
789
+ getSong(id: number): Promise<Song>;
790
+ /**
791
+ * 获取歌曲别名列表
792
+ * @returns 歌曲别名列表
793
+ */
794
+ getAliasList(): Promise<AliasList>;
795
+ /**
796
+ * 获取收藏品列表
797
+ * @param collectionType trophy | icon | plate | frame
798
+ * @param options.version 版本,不填写遵循api默认行为
799
+ * @param options.required 是否包含曲目需求,默认值为 false
800
+ * @returns 收藏品列表
801
+ */
802
+ getCollectionList(collectionType: "trophy" | "icon" | "plate" | "frame", options?: {
803
+ version?: number;
804
+ required?: boolean;
805
+ }): Promise<Collection[] | undefined>;
806
+ /**
807
+ * 获取收藏品信息
808
+ * @param collectionType trophy | icon | plate | frame
809
+ * @param id 收藏品 ID
810
+ * @param options.version 版本,不填写遵循api默认行为
811
+ * @returns 收藏品信息
812
+ */
813
+ getCollectionInfo(collectionType: "trophy" | "icon" | "plate" | "frame", id: number, options?: {
814
+ version?: number;
815
+ }): Promise<Collection>;
816
+ /**
817
+ * 获取收藏品分类列表
818
+ * @param options.version 版本,不填写遵循api默认行为
819
+ * @returns 收藏品分类列表
820
+ */
821
+ getCollectionGenreList(options?: {
822
+ version?: number;
823
+ }): Promise<CollectionGenreList>;
824
+ /**
825
+ * 获取收藏品分类信息
826
+ * @param id 收藏品分类 ID
827
+ * @param options.version 版本,不填写遵循api默认行为
828
+ * @returns 收藏品分类信息
829
+ */
830
+ getCollectionGenreInfo(id: number, options?: {
831
+ version?: number;
832
+ }): Promise<CollectionGenre>;
833
+ }
834
+
835
+ type DataValue = Record<string, unknown> | Array<unknown> | null;
836
+ type ApiResponse<TData = DataValue> = {
837
+ success: boolean;
838
+ code: number;
839
+ message?: string;
840
+ data?: TData;
841
+ };
842
+ interface LxnsApiClientOptions$1 {
531
843
  personalAccessToken?: string;
532
844
  devAccessToken?: string;
533
845
  baseURL?: string;
534
846
  }
847
+ type LxnsApiClientTokenFlags = Readonly<Omit<LxnsApiClientOptions$1, "baseURL">>;
848
+ type IfDefined<T, Then, Else = object> = [T] extends [NonNullable<T>] ? Then : Else;
849
+ type Simplify<T> = {
850
+ [K in keyof T]: T[K];
851
+ };
852
+ type GameApi<O extends LxnsApiClientTokenFlags, TPublic, TDev, TPersonal, TExtra extends object = object> = Simplify<{
853
+ public: TPublic;
854
+ } & TExtra & IfDefined<O["devAccessToken"], {
855
+ dev: TDev;
856
+ }> & IfDefined<O["personalAccessToken"], {
857
+ personal: TPersonal;
858
+ }>>;
859
+ type MaimaiApiExtra = {
860
+ getAsset: (type: AssetType, id: number) => Promise<Uint8Array>;
861
+ };
862
+ type MaimaiApiOf<O extends LxnsApiClientTokenFlags> = GameApi<O, MaimaiPublicApi, MaimaiDevApi, MaimaiPersonalApi, MaimaiApiExtra>;
863
+ type ChunithmApiExtra = {
864
+ getAsset: (type: AssetType$1, id: number) => Promise<Uint8Array>;
865
+ };
866
+ type ChunithmApiOf<O extends LxnsApiClientTokenFlags> = GameApi<O, ChunithmPublicApi, ChunithmDevApi, ChunithmPersonalApi, ChunithmApiExtra>;
867
+
868
+ type LxnsApiClientOptions = LxnsApiClientOptions$1;
535
869
  declare class LxnsApiClient<O extends LxnsApiClientOptions> {
536
870
  config: LxnsApiClientOptions & {
537
871
  baseURL: string;
@@ -539,8 +873,27 @@ declare class LxnsApiClient<O extends LxnsApiClientOptions> {
539
873
  /**
540
874
  * maimai API
541
875
  */
542
- readonly maimai: MaiMaiOf<O>;
876
+ readonly maimai: MaimaiApiOf<O>;
877
+ /**
878
+ * chunithm API
879
+ */
880
+ readonly chunithm: ChunithmApiOf<O>;
881
+ private static readonly BASE_OPTIONS;
882
+ private mountGameApi;
543
883
  constructor(config?: Readonly<O>);
544
884
  }
545
885
 
546
- export { LxnsApiClient, models as MaimaiModels };
886
+ declare class LxnsApiError extends Error {
887
+ readonly code: number;
888
+ readonly status?: number;
889
+ readonly success: boolean;
890
+ readonly data?: DataValue;
891
+ constructor(payload: ApiResponse, status?: number);
892
+ }
893
+ declare function isLxnsApiError(error: unknown): error is LxnsApiError;
894
+ declare function isNotFoundError(error: unknown): error is LxnsApiError;
895
+ declare function isAuthError(error: unknown): error is LxnsApiError;
896
+ declare function isRateLimitError(error: unknown): error is LxnsApiError;
897
+ declare function isServerError(error: unknown): error is LxnsApiError;
898
+
899
+ export { models$1 as ChunithmModels, LxnsApiClient, LxnsApiError, models as MaimaiModels, isAuthError, isLxnsApiError, isNotFoundError, isRateLimitError, isServerError };