@dompling/trollscript-types 1.0.47 → 1.0.48

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 (2) hide show
  1. package/index.d.ts +473 -733
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -33,12 +33,6 @@ interface Console {
33
33
  */
34
34
  debug(...args: any[]): void;
35
35
 
36
- /**
37
- * 以表格形式输出
38
- * @param data 要显示的表格数据
39
- */
40
- table(data: any): void;
41
-
42
36
  /**
43
37
  * 清空控制台
44
38
  */
@@ -89,6 +83,12 @@ interface Clipboard {
89
83
  */
90
84
  clear(): void;
91
85
 
86
+ /**
87
+ * 检查剪贴板是否包含文本
88
+ * @returns 剪贴板是否有文本内容
89
+ */
90
+ hasText(): boolean;
91
+
92
92
  }
93
93
 
94
94
  declare const clipboard: Clipboard;
@@ -126,17 +126,17 @@ interface Storage {
126
126
  */
127
127
  has(key: string): boolean;
128
128
 
129
+ /**
130
+ * 获取所有存储的键
131
+ * @returns 所有键名的数组
132
+ */
133
+ keys(): any;
134
+
129
135
  }
130
136
 
131
137
  declare const storage: Storage;
132
138
 
133
139
  interface Icloud {
134
- /**
135
- * 检查 iCloud 是否可用
136
- * @returns 是否可用
137
- */
138
- isAvailable(): boolean;
139
-
140
140
  /**
141
141
  * 获取 iCloud 容器路径
142
142
  * @returns iCloud 容器的本地路径,不可用时返回 null
@@ -170,7 +170,7 @@ interface Icloud {
170
170
  * @param path 目录路径,默认为根目录
171
171
  * @returns 文件名列表数组
172
172
  */
173
- list(path: string): any;
173
+ list(path?: string): any;
174
174
 
175
175
  }
176
176
 
@@ -331,62 +331,69 @@ declare const file: File;
331
331
 
332
332
  interface Http {
333
333
  /**
334
- * 发送 GET 请求
334
+ * 发送 GET 请求(异步,返回 Promise)
335
335
  * @param url 请求地址
336
- * @param options 请求选项 { headers, timeout }
337
- * @returns 包含状态码、响应数据、响应头的对象
336
+ * @param options 请求选项 { headers, timeout, insecure, sync }
337
+ * @returns 返回 Promise,resolve 时包含成功状态、状态码、响应数据、响应头的对象。设置 sync: true 可使用同步模式
338
338
  */
339
- get(url: string, options: Record<string, any>): any;
339
+ get(url: string, options?: Record<string, any>): any;
340
340
 
341
341
  /**
342
- * 发送 POST 请求
342
+ * 发送 POST 请求(异步,返回 Promise)
343
343
  * @param url 请求地址
344
- * @param options 请求选项 { body, headers, timeout }
344
+ * @param options 请求选项 { body, headers, timeout, insecure, sync }
345
+ * @returns 返回 Promise,resolve 时包含响应结果。设置 sync: true 可使用同步模式
345
346
  */
346
- post(url: string, options: Record<string, any>): any;
347
+ post(url: string, options?: Record<string, any>): any;
347
348
 
348
349
  /**
349
- * 发送 PUT 请求
350
+ * 发送 PUT 请求(异步,返回 Promise)
350
351
  * @param url 请求地址
351
- * @param options 请求选项 { body, headers, timeout }
352
+ * @param options 请求选项 { body, headers, timeout, insecure, sync }
353
+ * @returns 返回 Promise,resolve 时包含响应结果
352
354
  */
353
- put(url: string, options: Record<string, any>): any;
355
+ put(url: string, options?: Record<string, any>): any;
354
356
 
355
357
  /**
356
- * 发送 DELETE 请求
358
+ * 发送 DELETE 请求(异步,返回 Promise)
357
359
  * @param url 请求地址
358
- * @param options 请求选项 { headers, timeout }
360
+ * @param options 请求选项 { headers, timeout, insecure, sync }
361
+ * @returns 返回 Promise,resolve 时包含响应结果
359
362
  */
360
- delete(url: string, options: Record<string, any>): any;
363
+ delete(url: string, options?: Record<string, any>): any;
361
364
 
362
365
  /**
363
- * 发送 PATCH 请求
366
+ * 发送 PATCH 请求(异步,返回 Promise)
364
367
  * @param url 请求地址
365
- * @param options 请求选项 { body, headers, timeout }
368
+ * @param options 请求选项 { body, headers, timeout, insecure, sync }
369
+ * @returns 返回 Promise,resolve 时包含响应结果
366
370
  */
367
- patch(url: string, options: Record<string, any>): any;
371
+ patch(url: string, options?: Record<string, any>): any;
368
372
 
369
373
  /**
370
- * 发送 HEAD 请求
374
+ * 发送 HEAD 请求(异步,返回 Promise)
371
375
  * @param url 请求地址
372
- * @param options 请求选项 { headers, timeout }
376
+ * @param options 请求选项 { headers, timeout, insecure, sync }
377
+ * @returns 返回 Promise,resolve 时包含响应结果(HEAD 请求通常 data 为空)
373
378
  */
374
- head(url: string, options: Record<string, any>): any;
379
+ head(url: string, options?: Record<string, any>): any;
375
380
 
376
381
  /**
377
- * 发送自定义请求
382
+ * 发送自定义 HTTP 请求(异步,返回 Promise)
378
383
  * @param url 请求地址
379
- * @param options 请求选项 { method, body, headers, timeout }
384
+ * @param options 请求选项 { method, body, headers, timeout, insecure, sync }
385
+ * @returns 返回 Promise,resolve 时包含响应结果
380
386
  */
381
387
  request(url: string, options: Record<string, any>): any;
382
388
 
383
389
  /**
384
- * 下载文件
390
+ * 下载文件(异步,返回 Promise)
385
391
  * @param url 下载地址
386
392
  * @param path 保存路径
387
- * @returns 包含本地文件路径的对象
393
+ * @param options 请求选项 { insecure, sync }
394
+ * @returns 返回 Promise,resolve 时包含成功状态和本地文件路径
388
395
  */
389
- download(url: string, path: string): any;
396
+ download(url: string, path: string, options?: Record<string, any>): any;
390
397
 
391
398
  }
392
399
 
@@ -411,12 +418,6 @@ interface Network {
411
418
  */
412
419
  getIPAddress(): any;
413
420
 
414
- /**
415
- * 获取 WiFi 信息
416
- * @returns 包含 SSID 和 BSSID 的对象
417
- */
418
- getWiFiInfo(): any;
419
-
420
421
  /**
421
422
  * URL 编码
422
423
  * @param string 要编码的字符串
@@ -444,12 +445,12 @@ interface Network {
444
445
  * @param params 查询参数
445
446
  * @returns 构建的 URL 字符串
446
447
  */
447
- buildURL(baseURL: string, params: Record<string, any>): string;
448
+ buildURL(baseURL: string, params?: Record<string, any>): string;
448
449
 
449
450
  /**
450
451
  * Ping 主机
451
452
  * @param host 主机名或 IP
452
- * @returns 包含延迟和成功状态的对象
453
+ * @returns 包含成功状态和延迟(毫秒)的对象
453
454
  */
454
455
  ping(host: string): any;
455
456
 
@@ -457,22 +458,9 @@ interface Network {
457
458
  * 下载文件
458
459
  * @param url 下载地址
459
460
  * @param filename 保存文件名
460
- * @returns 包含本地文件路径的对象
461
- */
462
- download(url: string, filename: string): any;
463
-
464
- /**
465
- * 获取飞行模式状态
466
- * @returns 是否开启
467
- */
468
- getAirplaneMode(): boolean;
469
-
470
- /**
471
- * 设置飞行模式
472
- * @param enabled 是否开启
473
- * @returns 是否设置成功
461
+ * @returns 包含成功状态和本地文件路径的对象
474
462
  */
475
- setAirplaneMode(enabled: boolean): boolean;
463
+ download(url: string, filename?: string): any;
476
464
 
477
465
  /**
478
466
  * 列出 VPN 配置
@@ -485,7 +473,7 @@ interface Network {
485
473
  * @param name VPN 名称,默认第一个
486
474
  * @returns 是否发起连接成功
487
475
  */
488
- connectVPN(name: string): boolean;
476
+ connectVPN(name?: string): boolean;
489
477
 
490
478
  /**
491
479
  * 断开 VPN
@@ -499,25 +487,12 @@ interface Network {
499
487
  */
500
488
  getVPNStatus(): any;
501
489
 
502
- /**
503
- * 获取 WiFi 开关状态
504
- * @returns 是否开启
505
- */
506
- getWiFiEnabled(): boolean;
507
-
508
- /**
509
- * 设置 WiFi 开关
510
- * @param enabled 是否开启
511
- * @returns 是否设置成功
512
- */
513
- setWiFi(enabled: boolean): boolean;
514
-
515
490
  /**
516
491
  * 打开系统设置
517
492
  * @param section 设置页面(如 'WIFI')
518
493
  * @returns 是否成功打开
519
494
  */
520
- openSettings(section: string): boolean;
495
+ openSettings(section?: string): boolean;
521
496
 
522
497
  }
523
498
 
@@ -530,12 +505,30 @@ interface App {
530
505
  */
531
506
  version(): string;
532
507
 
508
+ /**
509
+ * 获取应用构建号
510
+ * @returns 应用构建号 (CFBundleVersion)
511
+ */
512
+ build(): string;
513
+
514
+ /**
515
+ * 获取应用 Bundle ID
516
+ * @returns 应用的 Bundle Identifier
517
+ */
518
+ bundleId(): string;
519
+
520
+ /**
521
+ * 获取应用完整信息
522
+ * @returns 包含 name, version, build, bundleId, language 的应用信息对象
523
+ */
524
+ info(): any;
525
+
533
526
  /**
534
527
  * 打开 URL/Scheme
535
528
  * @param url 要打开的 URL
536
529
  * @returns 是否成功打开
537
530
  */
538
- open(url: string): any;
531
+ open(url: string): boolean;
539
532
 
540
533
  /**
541
534
  * 检查是否能打开
@@ -554,7 +547,7 @@ interface App {
554
547
  * @param limit 返回的日志条数
555
548
  * @returns 日志对象数组
556
549
  */
557
- getLogs(limit: number): any;
550
+ getLogs(limit?: number): any;
558
551
 
559
552
  /**
560
553
  * 导出日志为字符串
@@ -579,6 +572,59 @@ interface App {
579
572
  */
580
573
  clearLogs(): void;
581
574
 
575
+ /**
576
+ * 退出应用(仅用于调试)
577
+ * @param code 退出码,默认为 0
578
+ */
579
+ exit(code?: number): void;
580
+
581
+ /**
582
+ * 打开应用设置页面
583
+ * @returns 是否成功打开设置
584
+ */
585
+ openSettings(): boolean;
586
+
587
+ /**
588
+ * 获取所有已安装应用列表 (TrollStore 权限)
589
+ * @returns 应用信息数组,包含 bundleIdentifier, name, version, type 等字段
590
+ */
591
+ list(): any;
592
+
593
+ /**
594
+ * 获取指定应用的详细信息 (TrollStore 权限)
595
+ * @param bundleId 应用的 Bundle Identifier
596
+ * @returns 应用信息对象,包含 bundleIdentifier, name, version, build, type, teamID, bundlePath, dataContainerPath, urlSchemes 等
597
+ */
598
+ getAppInfo(bundleId: string): any;
599
+
600
+ /**
601
+ * 启动指定应用 (TrollStore 权限)
602
+ * @param bundleId 应用的 Bundle Identifier
603
+ * @returns 是否成功启动
604
+ */
605
+ launch(bundleId: string): boolean;
606
+
607
+ /**
608
+ * 终止指定应用 (TrollStore 权限,需要后台权限)
609
+ * @param bundleId 应用的 Bundle Identifier
610
+ * @returns 是否成功终止
611
+ */
612
+ terminate(bundleId: string): boolean;
613
+
614
+ /**
615
+ * 检查应用是否已安装
616
+ * @param bundleId 应用的 Bundle Identifier
617
+ * @returns 是否已安装
618
+ */
619
+ isInstalled(bundleId: string): boolean;
620
+
621
+ /**
622
+ * 获取应用数据容器路径 (TrollStore 权限)
623
+ * @param bundleId 应用的 Bundle Identifier
624
+ * @returns 数据容器路径,未找到返回 null
625
+ */
626
+ getDataContainer(bundleId: string): any;
627
+
582
628
  }
583
629
 
584
630
  declare const app: App;
@@ -588,7 +634,7 @@ interface Haptic {
588
634
  * 触觉冲击反馈
589
635
  * @param style 'light' | 'medium' | 'heavy' | 'soft' | 'rigid'
590
636
  */
591
- impact(style: string): void;
637
+ impact(style?: string): void;
592
638
 
593
639
  /**
594
640
  * 通知触觉反馈
@@ -650,24 +696,27 @@ interface Display {
650
696
  /**
651
697
  * 设置屏幕亮度
652
698
  * @param value 亮度值 (0.0 - 1.0)
699
+ * @returns 是否设置成功
653
700
  */
654
- setBrightness(value: number): void;
701
+ setBrightness(value: number): boolean;
655
702
 
656
703
  /**
657
704
  * 增加亮度
658
705
  * @param amount 增加量 (默认 0.1)
706
+ * @returns 是否设置成功
659
707
  */
660
- increaseBrightness(amount: number): void;
708
+ increaseBrightness(amount?: number): boolean;
661
709
 
662
710
  /**
663
711
  * 降低亮度
664
712
  * @param amount 减少量 (默认 0.1)
713
+ * @returns 是否设置成功
665
714
  */
666
- decreaseBrightness(amount: number): void;
715
+ decreaseBrightness(amount?: number): boolean;
667
716
 
668
717
  /**
669
718
  * 获取屏幕信息
670
- * @returns 包含宽度、高度、缩放比例的对象
719
+ * @returns 包含宽度、高度、缩放比例和原生分辨率的对象
671
720
  */
672
721
  getScreenInfo(): any;
673
722
 
@@ -691,72 +740,70 @@ interface Display {
691
740
  setLowPowerMode(enabled: boolean): boolean;
692
741
 
693
742
  /**
694
- * 获取夜览状态
743
+ * 自动亮度是否开启
695
744
  * @returns 是否开启
696
745
  */
697
- getNightShiftStatus(): boolean;
746
+ isAutoBrightnessEnabled(): boolean;
698
747
 
699
748
  /**
700
- * 设置夜览
749
+ * 设置自动亮度
701
750
  * @param enabled 是否开启
702
751
  * @returns 是否设置成功
703
752
  */
704
- setNightShift(enabled: boolean): boolean;
753
+ setAutoBrightness(enabled: boolean): boolean;
705
754
 
706
755
  /**
707
- * 获取原彩显示状态
708
- * @returns 是否开启
756
+ * 打开显示设置
757
+ * @returns 是否成功打开
709
758
  */
710
- getTrueToneStatus(): boolean;
759
+ openSettings(): boolean;
711
760
 
712
761
  /**
713
- * 设置原彩显示
714
- * @param enabled 是否开启
762
+ * 保持屏幕常亮
763
+ * @param enabled 是否保持常亮
715
764
  * @returns 是否设置成功
716
765
  */
717
- setTrueTone(enabled: boolean): boolean;
766
+ keepAwake(enabled: boolean): boolean;
718
767
 
719
- /**
720
- * 自动亮度是否开启
721
- * @returns 是否开启
722
- */
723
- isAutoBrightnessEnabled(): boolean;
768
+ }
724
769
 
770
+ declare const display: Display;
771
+
772
+ interface Hud {
725
773
  /**
726
- * 设置自动亮度
727
- * @param enabled 是否开启
728
- * @returns 是否设置成功
774
+ * 创建 HUD 窗口
775
+ * @param config 窗口配置 { id?, width?, height?, x?, y?, draggable?, dismissible?, autoClear?, style? },style 为 { backgroundColor?, textColor?, fontSize?, fontWeight?, cornerRadius?, padding?, opacity?, shadow? }
776
+ * @returns 窗口对象,可用于添加元素和控制窗口
729
777
  */
730
- setAutoBrightness(enabled: boolean): boolean;
778
+ createWindow(config: Record<string, any>): any;
731
779
 
732
780
  /**
733
- * 打开显示设置
734
- * @returns 是否成功打开
781
+ * 根据 ID 获取已存在的窗口
782
+ * @param id 窗口 ID
783
+ * @returns 窗口对象,未找到返回 null
735
784
  */
736
- openSettings(): boolean;
785
+ getWindow(id: string): any;
737
786
 
738
787
  /**
739
- * 获取自动锁定时间
740
- * @returns 自动锁定时间(秒),0 表示永不
788
+ * 获取屏幕尺寸信息
789
+ * @returns 包含 width, height, scale 的屏幕信息对象
741
790
  */
742
- getAutoLockTime(): number;
791
+ getScreenSize(): any;
743
792
 
744
793
  /**
745
- * 设置自动锁定时间
746
- * @param seconds 锁定时间(秒),0 表示永不
747
- * @returns 是否设置成功
794
+ * 清除所有 HUD 窗口
748
795
  */
749
- setAutoLock(seconds: number): boolean;
796
+ clearAll(): void;
750
797
 
751
798
  /**
752
- * 保持屏幕常亮
753
- * @param enabled 是否保持常亮
799
+ * 获取所有窗口 ID 列表
800
+ * @returns 窗口 ID 数组
754
801
  */
755
- keepAwake(enabled: boolean): void;
802
+ getAllWindows(): any;
756
803
 
757
804
  }
758
805
 
759
- declare const display: Display;
806
+ declare const hud: Hud;
760
807
 
761
808
  interface Util {
762
809
  /**
@@ -787,12 +834,31 @@ interface Util {
787
834
  base64Decode(string: string): string;
788
835
 
789
836
  /**
790
- * 格式化日期
791
- * @param date 日期对象
792
- * @param format 格式字符串 (如 'yyyy-MM-dd')
837
+ * 计算 SHA256 哈希
838
+ * @param string 要计算的字符串
839
+ * @returns SHA256 哈希值
840
+ */
841
+ sha256(string: string): string;
842
+
843
+ /**
844
+ * 格式化时间戳为字符串
845
+ * @param timestamp 时间戳(毫秒)
846
+ * @param format 格式模式(如 'yyyy-MM-dd'),默认为 'yyyy-MM-dd HH:mm:ss'
793
847
  * @returns 格式化后的日期字符串
794
848
  */
795
- formatDate(date: any, format: string): string;
849
+ formatDate(timestamp: number, format?: string): string;
850
+
851
+ /**
852
+ * 获取当前时间戳(毫秒)
853
+ * @returns 当前时间戳
854
+ */
855
+ now(): number;
856
+
857
+ /**
858
+ * 休眠指定时长
859
+ * @param ms 休眠时长(毫秒)
860
+ */
861
+ sleep(ms: number): void;
796
862
 
797
863
  }
798
864
 
@@ -818,13 +884,13 @@ interface Location {
818
884
 
819
885
  /**
820
886
  * 获取当前位置
821
- * @returns 位置信息对象(包含经纬度、海拔等)
887
+ * @returns 位置信息对象(包含经纬度、海拔、精度等),失败返回 null
822
888
  */
823
889
  getCurrent(): any;
824
890
 
825
891
  /**
826
892
  * 获取当前位置(别名)
827
- * @returns 位置信息对象
893
+ * @returns 位置信息对象,失败返回 null
828
894
  */
829
895
  current(): any;
830
896
 
@@ -849,9 +915,10 @@ interface Location {
849
915
  * 坐标转地址
850
916
  * @param lat 纬度
851
917
  * @param lng 经度
918
+ * @param locale 语言区域标识(可选,如 'zh_CN'、'en_US',默认使用系统语言)
852
919
  * @returns 地址信息对象数组
853
920
  */
854
- reverseGeocode(lat: number, lng: number): any;
921
+ reverseGeocode(lat: number, lng: number, locale?: string): any;
855
922
 
856
923
  /**
857
924
  * 定位服务是否开启
@@ -859,6 +926,25 @@ interface Location {
859
926
  */
860
927
  isLocationServicesEnabled(): boolean;
861
928
 
929
+ /**
930
+ * 检查是否有 TrollStore 权限
931
+ * @returns 是否有权限
932
+ */
933
+ hasTrollStorePermission(): boolean;
934
+
935
+ /**
936
+ * 开关系统定位服务(需要 TrollStore 权限)
937
+ * @param enabled true 开启,false 关闭
938
+ * @returns 操作结果(success 表示是否成功,enabled 为当前状态)
939
+ */
940
+ setLocationServicesEnabled(enabled: boolean): any;
941
+
942
+ /**
943
+ * 切换定位服务状态(需要 TrollStore 权限)
944
+ * @returns 操作结果(success 表示是否成功,enabled 为切换后状态)
945
+ */
946
+ toggleLocationServices(): any;
947
+
862
948
  }
863
949
 
864
950
  declare const location: Location;
@@ -873,7 +959,7 @@ interface Calendar {
873
959
  * 请求日历权限
874
960
  * @returns 是否授权成功
875
961
  */
876
- requestAccess(): any;
962
+ requestAccess(): boolean;
877
963
 
878
964
  /**
879
965
  * 获取所有日历
@@ -894,7 +980,7 @@ interface Calendar {
894
980
  * @param calendarId 日历 ID
895
981
  * @returns 事件数组
896
982
  */
897
- getEvents(start: number, end: number, calendarId: string): any;
983
+ getEvents(start: number, end: number, calendarId?: string): any;
898
984
 
899
985
  /**
900
986
  * 创建日历事件
@@ -902,16 +988,16 @@ interface Calendar {
902
988
  * @param start 开始时间戳
903
989
  * @param end 结束时间戳
904
990
  * @param options 选项 { calendarId, notes, location, url, allDay }
905
- * @returns 创建的事件 ID
991
+ * @returns 创建的事件 ID,失败返回 null
906
992
  */
907
- create(title: string, start: number, end: number, options: Record<string, any>): any;
993
+ create(title: string, start: number, end: number, options?: Record<string, any>): any;
908
994
 
909
995
  /**
910
996
  * 删除日历事件
911
997
  * @param id 事件 ID
912
998
  * @returns 是否删除成功
913
999
  */
914
- delete(id: string): any;
1000
+ delete(id: string): boolean;
915
1001
 
916
1002
  }
917
1003
 
@@ -928,7 +1014,7 @@ interface Reminder {
928
1014
  * 请求提醒事项权限
929
1015
  * @returns 是否授权成功
930
1016
  */
931
- requestAccess(): any;
1017
+ requestAccess(): boolean;
932
1018
 
933
1019
  /**
934
1020
  * 获取所有提醒列表
@@ -941,43 +1027,43 @@ interface Reminder {
941
1027
  * @param listId 列表 ID
942
1028
  * @returns 提醒事项数组
943
1029
  */
944
- getAll(listId: string): any;
1030
+ getAll(listId?: string): any;
945
1031
 
946
1032
  /**
947
1033
  * 创建提醒事项
948
1034
  * @param title 标题
949
- * @param options 选项 { listId, notes, dueDate, priority, sortOrder, isPinned }
950
- * @returns 创建的提醒 ID
1035
+ * @param options 选项 { listId, notes, dueDate, priority, location: { latitude, longitude, radius, onArrive, name } }
1036
+ * @returns 创建的提醒 ID,如果是位置提醒则返回详细对象
951
1037
  */
952
- create(title: string, options: Record<string, any>): any;
1038
+ create(title: string, options?: Record<string, any>): any;
953
1039
 
954
1040
  /**
955
1041
  * 标记为已完成
956
1042
  * @param id 提醒事项 ID
957
1043
  * @returns 是否成功
958
1044
  */
959
- complete(id: string): any;
1045
+ complete(id: string): boolean;
960
1046
 
961
1047
  /**
962
1048
  * 删除提醒事项
963
1049
  * @param id 提醒事项 ID
964
1050
  * @returns 是否成功
965
1051
  */
966
- delete(id: string): any;
1052
+ delete(id: string): boolean;
967
1053
 
968
1054
  /**
969
1055
  * 获取排序后的提醒
970
1056
  * @param options { sortBy: 'createdAt'|'dueDate'|'priority'|'title', ascending: boolean, completed: boolean }
971
1057
  * @returns 排序后的提醒列表
972
1058
  */
973
- getSorted(options: Record<string, any>): any;
1059
+ getSorted(options?: Record<string, any>): any;
974
1060
 
975
1061
  /**
976
1062
  * 获取即将到期的提醒
977
1063
  * @param days 未来几天,默认 7 天
978
1064
  * @returns 即将到期的提醒列表
979
1065
  */
980
- getUpcoming(days: number): any;
1066
+ getUpcoming(days?: number): any;
981
1067
 
982
1068
  /**
983
1069
  * 获取已过期的提醒
@@ -988,20 +1074,20 @@ interface Reminder {
988
1074
  /**
989
1075
  * 批量重排序
990
1076
  * @param ids 按顺序排列的 ID 数组
991
- * @returns { success: boolean, count: number }
1077
+ * @returns 操作结果(注意:系统提醒不支持重排序)
992
1078
  */
993
1079
  reorder(ids: any): any;
994
1080
 
995
1081
  /**
996
- * 创建系统提醒(支持位置触发)
1082
+ * 创建系统提醒(支持位置触发等高级功能)
997
1083
  * @param title 标题
998
1084
  * @param options { listId, notes, dueDate, priority, location: { latitude, longitude, radius, onArrive, name } }
999
- * @returns { success: boolean, id: string, title: string, isSystemReminder: true }
1085
+ * @returns 包含成功状态和系统提醒详情的对象
1000
1086
  */
1001
- createSystemReminder(title: string, options: Record<string, any>): any;
1087
+ createSystemReminder(title: string, options?: Record<string, any>): any;
1002
1088
 
1003
1089
  /**
1004
- * 获取系统提醒列表
1090
+ * 获取系统管理的提醒列表
1005
1091
  * @returns 系统提醒列表数组
1006
1092
  */
1007
1093
  getSystemLists(): any;
@@ -1030,12 +1116,12 @@ interface Contacts {
1030
1116
  isAuthorized(): boolean;
1031
1117
 
1032
1118
  /**
1033
- * 获取所有联系人
1119
+ * 获取所有联系人(支持分页)
1034
1120
  * @param offset 跳过的记录数,默认 0
1035
1121
  * @param limit 返回的最大数量,默认全部
1036
1122
  * @returns 联系人对象数组
1037
1123
  */
1038
- getAll(offset: number, limit: number): any;
1124
+ getAll(offset?: number, limit?: number): any;
1039
1125
 
1040
1126
  /**
1041
1127
  * 获取联系人总数
@@ -1045,597 +1131,236 @@ interface Contacts {
1045
1131
 
1046
1132
  /**
1047
1133
  * 按名字搜索联系人
1048
- * @param query 搜索关键词(匹配姓名)
1049
- * @returns 联系人对象数组
1134
+ * @param query 搜索关键词(匹配姓名字段)
1135
+ * @returns 匹配的联系人对象数组
1050
1136
  */
1051
1137
  search(query: string): any;
1052
1138
 
1053
1139
  /**
1054
- * 按电话搜索联系人
1140
+ * 按电话号码搜索联系人
1055
1141
  * @param phone 电话号码(支持模糊匹配)
1056
- * @returns 联系人对象数组
1142
+ * @returns 匹配的联系人对象数组
1057
1143
  */
1058
1144
  searchByPhone(phone: string): any;
1059
1145
 
1060
1146
  /**
1061
- * 按邮箱搜索联系人
1062
- * @param email 邮箱地址(支持模糊匹配)
1063
- * @returns 联系人对象数组
1064
- */
1065
- searchByEmail(email: string): any;
1066
-
1067
- /**
1068
- * 根据 ID 获取联系人
1147
+ * 根据唯一标识符获取联系人
1069
1148
  * @param id 联系人唯一标识符
1070
- * @returns 联系人对象
1149
+ * @returns 联系人对象,未找到返回 null
1071
1150
  */
1072
1151
  getById(id: string): any;
1073
1152
 
1074
1153
  /**
1075
- * 创建联系人
1076
- * @param data 联系人数据 { givenName, familyName, phoneNumbers?, emailAddresses?, ... }
1077
- * @returns 包含成功状态和 ID 的对象
1154
+ * 创建新联系人
1155
+ * @param data 联系人数据,包含 givenName, familyName, phoneNumbers, emailAddresses
1156
+ * @returns 包含成功状态和新联系人 ID 的对象
1078
1157
  */
1079
1158
  create(data: Record<string, any>): any;
1080
1159
 
1081
1160
  /**
1082
- * 更新联系人
1083
- * @param id 联系人唯一标识符
1084
- * @param data 要更新的字段
1085
- * @returns 包含成功状态的对象
1086
- */
1087
- update(id: string, data: Record<string, any>): any;
1088
-
1089
- /**
1090
- * 删除联系人
1161
+ * 删除指定联系人
1091
1162
  * @param id 联系人唯一标识符
1092
1163
  * @returns 包含成功状态的对象
1093
1164
  */
1094
1165
  delete(id: string): any;
1095
1166
 
1096
1167
  /**
1097
- * 获取所有分组
1098
- * @returns 分组数组
1168
+ * 获取所有联系人分组
1169
+ * @returns 分组对象数组
1099
1170
  */
1100
1171
  getGroups(): any;
1101
1172
 
1102
- /**
1103
- * 获取分组内联系人
1104
- * @param groupId 分组唯一标识符
1105
- * @returns 联系人对象数组
1106
- */
1107
- getContactsInGroup(groupId: string): any;
1108
-
1109
1173
  }
1110
1174
 
1111
1175
  declare const contacts: Contacts;
1112
1176
 
1113
- interface Notification {
1114
- /**
1115
- * 发送通知
1116
- * @param title 通知标题
1117
- * @param body 通知内容
1118
- * @param options 选项 { url, userInfo, sound, badge }
1119
- * @returns 发送的通知 ID
1120
- */
1121
- send(title: string, body: string, options: Record<string, any>): any;
1122
-
1123
- /**
1124
- * 取消通知
1125
- * @param id 通知 ID
1126
- */
1127
- cancel(id: string): void;
1128
-
1129
- /**
1130
- * 取消所有通知
1131
- */
1132
- cancelAll(): void;
1133
-
1134
- /**
1135
- * 获取待发送通知
1136
- * @returns 待发送通知列表
1137
- */
1138
- getPending(): any;
1139
-
1140
- /**
1141
- * 获取已发送通知
1142
- * @returns 已发送通知列表
1143
- */
1144
- getDelivered(): any;
1145
-
1146
- /**
1147
- * 请求通知权限
1148
- * @returns 是否授权成功
1149
- */
1150
- requestPermission(): any;
1151
-
1152
- /**
1153
- * 获取权限状态
1154
- * @returns 权限状态
1155
- */
1156
- getPermissionStatus(): any;
1157
-
1158
- /**
1159
- * 设置角标数字
1160
- * @param count 角标数
1161
- */
1162
- setBadge(count: number): void;
1163
-
1164
- /**
1165
- * 获取角标数字
1166
- * @returns 角标数字
1167
- */
1168
- getBadge(): any;
1169
-
1170
- /**
1171
- * 清除角标
1172
- */
1173
- clearBadge(): void;
1174
-
1175
- /**
1176
- * 定时通知
1177
- * @param title 通知标题
1178
- * @param body 通知内容
1179
- * @param date 触发时间戳
1180
- * @param options 选项 { url, userInfo, sound, badge, repeat: 'daily'|'weekly'|'monthly' }
1181
- * @returns 发送的通知 ID
1182
- */
1183
- schedule(title: string, body: string, date: number, options: Record<string, any>): any;
1184
-
1185
- }
1186
-
1187
- declare const notification: Notification;
1188
-
1189
- interface Alarm {
1190
- /**
1191
- * 请求通知权限
1192
- * @returns 是否授权成功
1193
- */
1194
- requestAccess(): any;
1195
-
1196
- /**
1197
- * 获取权限状态
1198
- * @returns 权限状态
1199
- */
1200
- getAccessStatus(): any;
1201
-
1202
- /**
1203
- * 创建一次性闹钟
1204
- * @param timestamp 触发时间戳
1205
- * @param title 标题
1206
- * @param options 选项 { sound }
1207
- * @returns 创建的闹钟 ID
1208
- */
1209
- createOnce(timestamp: number, title: string, options: Record<string, any>): any;
1210
-
1211
- /**
1212
- * 创建每日重复闹钟
1213
- * @param hour 小时 (0-23)
1214
- * @param minute 分钟 (0-59)
1215
- * @param title 标题
1216
- * @param options 选项 { sound }
1217
- * @returns 创建的闹钟 ID
1218
- */
1219
- createDaily(hour: number, minute: number, title: string, options: Record<string, any>): any;
1220
-
1221
- /**
1222
- * 创建每周重复闹钟
1223
- * @param weekday 周几 (1-7, 周日为1)
1224
- * @param hour 小时 (0-23)
1225
- * @param minute 分钟 (0-59)
1226
- * @param title 标题
1227
- * @param options 选项 { sound }
1228
- * @returns 创建的闹钟 ID
1229
- */
1230
- createWeekly(weekday: number, hour: number, minute: number, title: string, options: Record<string, any>): any;
1231
-
1232
- /**
1233
- * 创建倒计时提醒
1234
- * @param seconds 秒数
1235
- * @param title 标题
1236
- * @param options 选项 { sound }
1237
- * @returns 创建的闹钟 ID
1238
- */
1239
- createCountdown(seconds: number, title: string, options: Record<string, any>): any;
1240
-
1241
- /**
1242
- * 获取待触发的闹钟
1243
- * @returns 待触发闹钟列表
1244
- */
1245
- getPending(): any;
1246
-
1247
- /**
1248
- * 获取闹钟数量
1249
- * @returns 闹钟数量
1250
- */
1251
- getCount(): any;
1252
-
1253
- /**
1254
- * 取消指定闹钟
1255
- * @param id 闹钟 ID
1256
- */
1257
- cancel(id: string): void;
1258
-
1259
- /**
1260
- * 取消所有闹钟
1261
- */
1262
- cancelAll(): void;
1263
-
1264
- /**
1265
- * 打开系统时钟
1266
- */
1267
- openClockApp(): void;
1268
-
1269
- /**
1270
- * 打开计时器
1271
- */
1272
- openTimer(): void;
1273
-
1274
- }
1275
-
1276
- declare const alarm: Alarm;
1277
-
1278
- interface Media {
1279
- /**
1280
- * 播放
1281
- */
1282
- play(): void;
1283
-
1284
- /**
1285
- * 暂停
1286
- */
1287
- pause(): void;
1288
-
1289
- /**
1290
- * 停止
1291
- */
1292
- stop(): void;
1293
-
1294
- /**
1295
- * 切换播放/暂停
1296
- */
1297
- togglePlayPause(): void;
1298
-
1299
- /**
1300
- * 下一首
1301
- */
1302
- next(): void;
1303
-
1304
- /**
1305
- * 上一首
1306
- */
1307
- previous(): void;
1308
-
1309
- /**
1310
- * 跳到开头
1311
- */
1312
- skipToBeginning(): void;
1313
-
1314
- /**
1315
- * 获取播放状态
1316
- * @returns 播放状态
1317
- */
1318
- getPlaybackState(): any;
1319
-
1320
- /**
1321
- * 是否正在播放
1322
- * @returns 是否正在播放
1323
- */
1324
- isPlaying(): boolean;
1325
-
1326
- /**
1327
- * 获取当前播放信息
1328
- * @returns 当前播放信息对象
1329
- */
1330
- getNowPlaying(): any;
1331
-
1332
- /**
1333
- * 获取音量
1334
- * @returns 当前音量(0.0-1.0)
1335
- */
1336
- getVolume(): number;
1337
-
1338
- /**
1339
- * 设置音量
1340
- * @param volume 音量 (0.0 - 1.0)
1341
- */
1342
- setVolume(volume: number): void;
1343
-
1344
- /**
1345
- * 获取重复模式
1346
- * @returns 重复模式
1347
- */
1348
- getRepeatMode(): any;
1349
-
1350
- /**
1351
- * 设置重复模式
1352
- * @param mode 'none' | 'one' | 'all'
1353
- */
1354
- setRepeatMode(mode: string): void;
1355
-
1356
- /**
1357
- * 获取随机播放模式
1358
- * @returns 随机播放模式
1359
- */
1360
- getShuffleMode(): any;
1361
-
1362
- /**
1363
- * 设置随机播放模式
1364
- * @param mode 'off' | 'songs' | 'albums'
1365
- */
1366
- setShuffleMode(mode: string): void;
1367
-
1368
- /**
1369
- * 获取当前播放时间
1370
- * @returns 当前播放时间(秒)
1371
- */
1372
- getCurrentTime(): number;
1373
-
1374
- /**
1375
- * 设置播放时间
1376
- * @param time 时间 (秒)
1377
- */
1378
- setCurrentTime(time: number): void;
1379
-
1380
- /**
1381
- * 快进
1382
- * @param seconds 秒数 (默认 15)
1383
- */
1384
- seekForward(seconds: number): void;
1385
-
1386
- /**
1387
- * 快退
1388
- * @param seconds 秒数 (默认 15)
1389
- */
1390
- seekBackward(seconds: number): void;
1391
-
1392
- /**
1393
- * 请求音乐库权限
1394
- * @returns 是否授权成功
1395
- */
1396
- requestAccess(): any;
1397
-
1398
- /**
1399
- * 获取权限状态
1400
- * @returns 权限状态
1401
- */
1402
- getAccessStatus(): any;
1403
-
1404
- /**
1405
- * 搜索音乐库
1406
- * @param query 搜索关键词
1407
- * @returns 歌曲列表数组
1408
- */
1409
- searchSongs(query: string): any;
1410
-
1411
- /**
1412
- * 播放指定歌曲
1413
- * @param persistentID 歌曲 ID
1414
- */
1415
- playSong(persistentID: string): void;
1416
-
1417
- /**
1418
- * 获取所有歌曲
1419
- * @returns 歌曲列表数组
1420
- */
1421
- getAllSongs(): any;
1422
-
1423
- /**
1424
- * 获取所有专辑
1425
- * @returns 专辑列表数组
1426
- */
1427
- getAlbums(): any;
1428
-
1429
- /**
1430
- * 获取所有艺术家
1431
- * @returns 艺术家列表数组
1432
- */
1433
- getArtists(): any;
1434
-
1435
- /**
1436
- * 获取播放列表
1437
- * @returns 播放列表数组
1438
- */
1439
- getPlaylists(): any;
1440
-
1441
- /**
1442
- * 播放专辑
1443
- * @param id 专辑 ID
1444
- */
1445
- playAlbum(id: string): void;
1446
-
1177
+ interface Sms {
1447
1178
  /**
1448
- * 播放艺术家
1449
- * @param id 艺术家 ID
1179
+ * 检查是否可以访问真实短信数据
1180
+ * @returns 应用是否有权访问短信数据库
1450
1181
  */
1451
- playArtist(id: string): void;
1182
+ isRealDataAvailable(): boolean;
1452
1183
 
1453
1184
  /**
1454
- * 播放播放列表
1455
- * @param id 播放列表 ID
1456
- * @returns 无返回值
1185
+ * 读取最近的短信
1186
+ * @param limit 最大返回数量(默认 50)
1187
+ * @param offset 跳过的消息数(默认 0)
1188
+ * @returns 短信对象数组
1457
1189
  */
1458
- playPlaylist(id: string): void;
1190
+ read(limit?: number, offset?: number): any;
1459
1191
 
1460
- }
1461
-
1462
- declare const media: Media;
1463
-
1464
- interface Mail {
1465
1192
  /**
1466
- * 检查是否能发送邮件
1467
- * @returns 是否能发送
1193
+ * 按关键词搜索短信
1194
+ * @param keyword 搜索关键词
1195
+ * @param limit 最大返回数量(默认 50)
1196
+ * @returns 匹配的短信对象数组
1468
1197
  */
1469
- canSendMail(): boolean;
1198
+ search(keyword: string, limit?: number): any;
1470
1199
 
1471
1200
  /**
1472
- * 获取邮件功能状态
1473
- * @returns 邮件功能状态
1201
+ * 获取指定号码的短信
1202
+ * @param address 发送者号码或地址
1203
+ * @param limit 最大返回数量(默认 50)
1204
+ * @returns 短信对象数组
1474
1205
  */
1475
- getStatus(): any;
1206
+ getByAddress(address: string, limit?: number): any;
1476
1207
 
1477
1208
  /**
1478
- * 发送简单邮件
1479
- * @param to 收件人列表
1480
- * @param subject 主题
1481
- * @param body 正文
1482
- * @returns 是否发送成功
1209
+ * 获取会话列表
1210
+ * @param limit 最大返回数量(默认 50)
1211
+ * @returns 会话对象数组
1483
1212
  */
1484
- send(to: any, subject: string, body: string): any;
1213
+ getChats(limit?: number): any;
1485
1214
 
1486
1215
  /**
1487
- * 发送邮件(完整选项)
1488
- * @param options 选项 { to, cc, bcc, subject, body, isHtml, attachments }
1489
- * @returns 是否发送成功
1216
+ * 获取短信统计信息
1217
+ * @returns 包含统计信息的对象
1490
1218
  */
1491
- sendAdvanced(options: Record<string, any>): any;
1219
+ getStatistics(): any;
1492
1220
 
1493
1221
  /**
1494
- * 打开邮件 App
1495
- * @returns 无返回值
1222
+ * 获取最新短信
1223
+ * @returns 最新短信对象或 null
1496
1224
  */
1497
- openMailApp(): void;
1225
+ getLatest(): any;
1498
1226
 
1499
1227
  /**
1500
- * 打开指定邮件 App
1501
- * @param appName App 名称
1502
- * @returns 无返回值
1228
+ * 获取未读短信
1229
+ * @param limit 最大返回数量(默认 50)
1230
+ * @returns 未读短信对象数组
1503
1231
  */
1504
- openSpecificMailApp(appName: string): void;
1232
+ getUnread(limit?: number): any;
1505
1233
 
1506
1234
  /**
1507
- * 验证邮箱格式
1508
- * @param email 邮箱地址
1509
- * @returns 是否有效
1235
+ * 通过 Root Helper 检查短信数据库访问权限
1236
+ * @returns 访问状态信息
1510
1237
  */
1511
- isValidEmail(email: string): boolean;
1238
+ helperCheck(): Record<string, any>;
1512
1239
 
1513
1240
  /**
1514
- * 检测已安装的邮件 App
1515
- * @returns 已安装的邮件 App 名称数组
1241
+ * 通过 Root Helper 复制短信数据库到临时目录
1242
+ * @returns 复制操作结果
1516
1243
  */
1517
- getInstalledMailApps(): any;
1244
+ helperCopy(): any;
1518
1245
 
1519
1246
  /**
1520
- * 从模板生成邮件
1521
- * @param templateName 模板名称
1522
- * @param variables 变量字典
1523
- * @returns 生成的邮件内容
1247
+ * 通过 Root Helper 列出目录内容
1248
+ * @param path 要列出的目录路径
1249
+ * @returns 目录列表结果
1524
1250
  */
1525
- fromTemplate(templateName: string, variables: Record<string, any>): any;
1251
+ helperList(path: string): Record<string, any>;
1526
1252
 
1527
1253
  /**
1528
- * 获取可用模板列表
1529
- * @returns 模板名称数组
1254
+ * 检查 Root Helper 是否可用
1255
+ * @returns Root Helper 是否可访问
1530
1256
  */
1531
- getTemplates(): any;
1257
+ helperAvailable(): boolean;
1532
1258
 
1533
1259
  }
1534
1260
 
1535
- declare const mail: Mail;
1261
+ declare const sms: Sms;
1536
1262
 
1537
- interface Sms {
1263
+ interface Sql {
1538
1264
  /**
1539
- * 检查短信权限
1540
- * @returns 是否有权限
1265
+ * 打开或创建 SQLite 数据库
1266
+ * @param name 数据库名称(默认为 'default')。文件将在 Documents 目录下创建为 {name}.sqlite
1267
+ * @returns 数据库是否成功打开
1541
1268
  */
1542
- checkAccess(): boolean;
1269
+ open(name?: string): boolean;
1543
1270
 
1544
1271
  /**
1545
- * 尝试直接访问短信数据库(调试用)
1546
- * @returns 是否访问成功
1272
+ * 关闭数据库连接
1273
+ * @param name 数据库名称(默认为 'default')
1274
+ * @returns 始终返回 true
1547
1275
  */
1548
- tryAccess(): boolean;
1276
+ close(name?: string): boolean;
1549
1277
 
1550
1278
  /**
1551
- * 读取最近的短信
1552
- * @param limit 限制条数 (默认 10)
1553
- * @returns 短信对象数组
1279
+ * 执行 INSERT、UPDATE、DELETE 或 DDL 语句
1280
+ * @param name 数据库名称(默认为 'default')
1281
+ * @param sql 要执行的 SQL 语句
1282
+ * @param params 预处理语句的参数(使用 ? 占位符)
1283
+ * @returns 包含成功状态、受影响行数和最后插入行 ID 的结果对象
1554
1284
  */
1555
- read(limit: number): any;
1285
+ execute(name?: string, sql: string, params?: any[]): any;
1556
1286
 
1557
1287
  /**
1558
- * 获取验证码
1559
- * @param minutes 查找最近几分钟内的验证码 (默认 5)
1560
- * @returns 验证码或 null
1288
+ * execute() 的别名
1289
+ * @param name 数据库名称(默认为 'default')
1290
+ * @param sql 要执行的 SQL 语句
1291
+ * @param params 预处理语句的参数
1292
+ * @returns 结果对象
1561
1293
  */
1562
- getVerificationCode(minutes: number): any;
1294
+ exec(name?: string, sql: string, params?: any[]): any;
1563
1295
 
1564
1296
  /**
1565
- * 搜索短信
1566
- * @param keyword 关键词
1567
- * @returns 短信对象数组
1297
+ * 执行 SELECT 查询并返回所有匹配的行
1298
+ * @param name 数据库名称(默认为 'default')
1299
+ * @param sql 要执行的 SELECT 查询
1300
+ * @param params 预处理语句的参数
1301
+ * @returns 行对象数组(列名 -> 值)
1568
1302
  */
1569
- search(keyword: string): any;
1303
+ query(name?: string, sql: string, params?: any[]): any;
1570
1304
 
1571
1305
  /**
1572
- * 按号码获取短信
1573
- * @param address 发送者号码
1574
- * @returns 短信对象数组
1306
+ * 执行 SELECT 查询并返回第一行
1307
+ * @param name 数据库名称(默认为 'default')
1308
+ * @param sql 要执行的 SELECT 查询
1309
+ * @param params 预处理语句的参数
1310
+ * @returns 第一行对象,如果没有结果则返回 null
1575
1311
  */
1576
- getByAddress(address: string): any;
1312
+ queryOne(name?: string, sql: string, params?: any[]): any;
1577
1313
 
1578
1314
  /**
1579
- * 获取会话列表
1580
- * @returns 会话列表数组
1315
+ * 检查数据库中是否存在指定表
1316
+ * @param name 数据库名称(默认为 'default')
1317
+ * @param tableName 要检查的表名
1318
+ * @returns 表是否存在
1581
1319
  */
1582
- getChats(): any;
1320
+ tableExists(name?: string, tableName: string): boolean;
1583
1321
 
1584
1322
  /**
1585
- * 获取短信统计
1586
- * @returns 统计信息对象
1323
+ * 列出数据库中的所有表
1324
+ * @param name 数据库名称(默认为 'default')
1325
+ * @returns 表名数组
1587
1326
  */
1588
- getStatistics(): any;
1327
+ getTables(name?: string): any;
1589
1328
 
1590
1329
  /**
1591
- * 获取最新短信
1592
- * @returns 最新短信对象或 null
1330
+ * 获取表的列信息
1331
+ * @param name 数据库名称(默认为 'default')
1332
+ * @param tableName 表名
1333
+ * @returns 列信息对象数组
1593
1334
  */
1594
- getLatest(): any;
1335
+ getTableInfo(name?: string, tableName: string): any;
1595
1336
 
1596
1337
  /**
1597
- * 获取未读短信
1598
- * @returns 未读短信对象数组
1338
+ * 开始数据库事务
1339
+ * @param name 数据库名称(默认为 'default')
1340
+ * @returns 事务是否成功开始
1599
1341
  */
1600
- getUnread(): any;
1601
-
1602
- }
1342
+ beginTransaction(name?: string): boolean;
1603
1343
 
1604
- declare const sms: Sms;
1605
-
1606
- interface Sql {
1607
1344
  /**
1608
- * 执行 SELECT 查询并返回结果
1609
- * @param dbPath 数据库路径
1610
- * @param sql SQL 语句
1611
- * @param params 参数列表
1612
- * @returns 查询结果数组
1345
+ * 提交当前事务
1346
+ * @param name 数据库名称(默认为 'default')
1347
+ * @returns 提交是否成功
1613
1348
  */
1614
- query(dbPath: string, sql: string, params: any[]): any[];
1349
+ commit(name?: string): boolean;
1615
1350
 
1616
1351
  /**
1617
- * 执行 INSERT/UPDATE/DELETE
1618
- * @param dbPath 数据库路径
1619
- * @param sql SQL 语句
1620
- * @param params 参数列表
1621
- * @returns 执行结果对象
1352
+ * 回滚当前事务
1353
+ * @param name 数据库名称(默认为 'default')
1354
+ * @returns 回滚是否成功
1622
1355
  */
1623
- execute(dbPath: string, sql: string, params: any[]): any;
1356
+ rollback(name?: string): boolean;
1624
1357
 
1625
1358
  /**
1626
- * 列出数据库中的所有表
1627
- * @param dbPath 数据库路径
1628
- * @returns 表名数组
1359
+ * 通过回收未使用的空间来优化数据库
1360
+ * @param name 数据库名称(默认为 'default')
1361
+ * @returns vacuum 操作是否成功
1629
1362
  */
1630
- tables(dbPath: string): any;
1631
-
1632
- /**
1633
- * 获取表结构
1634
- * @param dbPath 数据库路径
1635
- * @param tableName 表名
1636
- * @returns 表结构 SQL
1637
- */
1638
- schema(dbPath: string, tableName: string): string;
1363
+ vacuum(name?: string): boolean;
1639
1364
 
1640
1365
  }
1641
1366
 
@@ -1645,208 +1370,223 @@ interface Shortcuts {
1645
1370
  /**
1646
1371
  * 运行快捷指令
1647
1372
  * @param name 快捷指令名称
1648
- * @returns 快捷指令执行结果
1373
+ * @param input 输入文本(可选)
1374
+ * @returns 是否成功打开快捷指令
1649
1375
  */
1650
- run(name: string): any;
1376
+ run(name: string, input?: string): boolean;
1651
1377
 
1652
1378
  /**
1653
- * 运行快捷指令(带文本输入)
1379
+ * 运行快捷指令(带 x-callback-url 回调)
1654
1380
  * @param name 快捷指令名称
1655
- * @param text 输入文本
1656
- * @returns 快捷指令执行结果
1381
+ * @param input 输入文本(可选)
1382
+ * @returns 是否成功打开快捷指令
1657
1383
  */
1658
- runWithText(name: string, text: string): any;
1384
+ runWithCallback(name: string, input?: string): boolean;
1659
1385
 
1660
1386
  /**
1661
- * 运行快捷指令(剪贴板输入)
1662
- * @param name 快捷指令名称
1663
- */
1664
- runWithClipboard(name: string): any;
1665
-
1666
- /**
1667
- * 运行快捷指令(高级选项)
1668
- * @param name 快捷指令名称
1669
- * @param options 选项 { input, showOutput }
1387
+ * 打开快捷指令 App
1388
+ * @returns 是否成功打开
1670
1389
  */
1671
- runAdvanced(name: string, options: Record<string, any>): any;
1390
+ open(): boolean;
1672
1391
 
1673
1392
  /**
1674
- * 打开快捷指令 App
1675
- * @returns 无返回值
1393
+ * 打开快捷指令中心/库
1394
+ * @returns 是否成功打开
1676
1395
  */
1677
- openApp(): void;
1396
+ openGallery(): boolean;
1678
1397
 
1679
1398
  /**
1680
- * 打开快捷指令库
1681
- * @returns 无返回值
1399
+ * 创建新快捷指令
1400
+ * @param name 快捷指令名称
1401
+ * @returns 是否成功打开创建界面
1682
1402
  */
1683
- openGallery(): void;
1403
+ create(name: string): boolean;
1684
1404
 
1685
1405
  /**
1686
- * 打开指定快捷指令
1687
- * @param name 快捷指令名称
1688
- * @returns 无返回值
1406
+ * 通过链接导入快捷指令
1407
+ * @param url 快捷指令 URL
1408
+ * @returns 是否成功打开导入界面
1689
1409
  */
1690
- openShortcut(name: string): void;
1410
+ import(url: string): boolean;
1691
1411
 
1692
1412
  /**
1693
- * 创建新快捷指令
1694
- * @returns 无返回值
1413
+ * 检查是否安装快捷指令 App
1414
+ * @returns 是否可用
1695
1415
  */
1696
- createNew(): void;
1416
+ isAvailable(): boolean;
1697
1417
 
1698
1418
  /**
1699
- * 通过链接导入快捷指令
1700
- * @param url 快捷指令 URL
1701
- * @returns 无返回值
1419
+ * 捐赠 Siri 建议
1420
+ * @param title 建议标题/调用短语
1421
+ * @param identifier 交互标识符
1422
+ * @returns 是否成功捐赠
1702
1423
  */
1703
- importFromUrl(url: string): void;
1424
+ donateInteraction(title: string, identifier: string): boolean;
1704
1425
 
1705
1426
  /**
1706
- * 检查是否安装快捷指令
1427
+ * 删除指定的 Siri 建议
1428
+ * @param identifier 交互标识符
1429
+ * @returns 是否成功删除
1707
1430
  */
1708
- isAvailable(): boolean;
1431
+ deleteInteraction(identifier: string): boolean;
1709
1432
 
1710
1433
  /**
1711
- * 获取常用快捷指令模板
1434
+ * 删除所有 Siri 建议
1435
+ * @returns 是否成功删除
1712
1436
  */
1713
- getCommonShortcuts(): any;
1437
+ deleteAllInteractions(): boolean;
1714
1438
 
1715
1439
  }
1716
1440
 
1717
1441
  declare const shortcuts: Shortcuts;
1718
1442
 
1719
- interface Bluetooth {
1443
+ interface System {
1720
1444
  /**
1721
- * 蓝牙是否开启
1445
+ * 检查 WiFi 是否开启
1446
+ * @returns WiFi 是否开启
1722
1447
  */
1723
- isEnabled(): boolean;
1448
+ isWiFiEnabled(): boolean;
1724
1449
 
1725
1450
  /**
1726
- * 获取蓝牙状态
1451
+ * 设置 WiFi 开关 (TrollStore 权限)
1452
+ * @param enabled 是否开启 WiFi
1453
+ * @returns 是否设置成功
1727
1454
  */
1728
- getStatus(): any;
1455
+ setWiFi(enabled: boolean): boolean;
1729
1456
 
1730
1457
  /**
1731
- * 设置蓝牙开关
1732
- * @param enabled 是否开启
1733
- * @returns 无返回值
1458
+ * 检查蓝牙是否开启
1459
+ * @returns 蓝牙是否开启
1734
1460
  */
1735
- setEnabled(enabled: boolean): void;
1461
+ isBluetoothEnabled(): boolean;
1736
1462
 
1737
1463
  /**
1738
- * 打开蓝牙
1739
- * @returns 无返回值
1464
+ * 设置蓝牙开关 (TrollStore 权限)
1465
+ * @param enabled 是否开启蓝牙
1466
+ * @returns 是否设置成功
1740
1467
  */
1741
- turnOn(): void;
1468
+ setBluetooth(enabled: boolean): boolean;
1742
1469
 
1743
1470
  /**
1744
- * 关闭蓝牙
1745
- * @returns 无返回值
1471
+ * 检查飞行模式是否开启
1472
+ * @returns 飞行模式是否开启
1746
1473
  */
1747
- turnOff(): void;
1474
+ isAirplaneModeEnabled(): boolean;
1748
1475
 
1749
1476
  /**
1750
- * 获取配对设备
1477
+ * 设置飞行模式 (TrollStore 权限)
1478
+ * @param enabled 是否开启飞行模式
1479
+ * @returns 是否设置成功
1751
1480
  */
1752
- getPairedDevices(): any;
1481
+ setAirplaneMode(enabled: boolean): boolean;
1753
1482
 
1754
1483
  /**
1755
- * 获取已连接设备
1484
+ * 检查勿扰模式是否开启
1485
+ * @returns 勿扰模式是否开启
1756
1486
  */
1757
- getConnectedDevices(): any;
1487
+ isDoNotDisturbEnabled(): boolean;
1758
1488
 
1759
1489
  /**
1760
- * 连接设备
1761
- * @param id 设备 UUID
1490
+ * 设置勿扰模式
1491
+ * @param enabled 是否开启勿扰模式
1492
+ * @returns 是否设置成功
1762
1493
  */
1763
- connectDevice(id: string): any;
1494
+ setDoNotDisturb(enabled: boolean): boolean;
1764
1495
 
1765
1496
  /**
1766
- * 断开设备
1767
- * @param id 设备 UUID
1497
+ * 获取系统音量
1498
+ * @param category 音量类别: 'System', 'Ringer', 'Media',默认 'Media'
1499
+ * @returns 当前音量 (0.0 - 1.0)
1768
1500
  */
1769
- disconnectDevice(id: string): any;
1501
+ getVolume(category?: string): number;
1770
1502
 
1771
1503
  /**
1772
- * 开始扫描
1773
- * @returns 无返回值
1504
+ * 设置系统音量
1505
+ * @param level 音量级别 (0.0 - 1.0)
1506
+ * @param category 音量类别: 'System', 'Ringer', 'Media',默认 'Media'
1507
+ * @returns 是否设置成功
1774
1508
  */
1775
- startScan(): void;
1509
+ setVolume(level: number, category?: string): boolean;
1776
1510
 
1777
1511
  /**
1778
- * 停止扫描
1779
- * @returns 无返回值
1512
+ * 检查设备是否有闪光灯
1513
+ * @returns 是否有闪光灯
1780
1514
  */
1781
- stopScan(): void;
1515
+ hasFlashlight(): boolean;
1782
1516
 
1783
1517
  /**
1784
- * 打开蓝牙设置
1785
- * @returns 无返回值
1518
+ * 检查闪光灯是否开启
1519
+ * @returns 闪光灯是否开启
1786
1520
  */
1787
- openSettings(): void;
1521
+ isFlashlightOn(): boolean;
1788
1522
 
1789
- }
1523
+ /**
1524
+ * 设置闪光灯
1525
+ * @param enabled 是否开启闪光灯
1526
+ * @param level 亮度级别 (0.0 - 1.0),默认 1.0
1527
+ * @returns 是否设置成功
1528
+ */
1529
+ setFlashlight(enabled: boolean, level?: number): boolean;
1790
1530
 
1791
- declare const bluetooth: Bluetooth;
1531
+ /**
1532
+ * 检查方向锁定是否开启
1533
+ * @returns 方向锁定是否开启
1534
+ */
1535
+ isOrientationLockEnabled(): boolean;
1792
1536
 
1793
- interface Memo {
1794
1537
  /**
1795
- * 创建备忘录
1796
- * @param title 备忘录标题
1797
- * @param content 备忘录内容
1798
- * @param tags 标签列表
1799
- * @returns { success: 是否成功, id: 备忘录ID, memo: 备忘录对象 }
1538
+ * 设置方向锁定
1539
+ * @param enabled 是否开启方向锁定
1540
+ * @returns 是否设置成功
1800
1541
  */
1801
- create(title: string, content: string, tags: any): Record<string, any>;
1542
+ setOrientationLock(enabled: boolean): boolean;
1802
1543
 
1803
1544
  /**
1804
- * 获取所有备忘录
1805
- * @returns 备忘录数组 [{ id: ID, title: 标题, content: 内容, createdAt: 创建时间, updatedAt: 更新时间, tags: 标签 }]
1545
+ * 检查低电量模式是否开启
1546
+ * @returns 低电量模式是否开启
1806
1547
  */
1807
- getAll(): any;
1548
+ isLowPowerModeEnabled(): boolean;
1808
1549
 
1809
1550
  /**
1810
- * 根据 ID 获取备忘录
1811
- * @param id 备忘录 ID
1812
- * @returns 备忘录对象或 null(不存在时)
1551
+ * 设置低电量模式 (TrollStore 权限)
1552
+ * @param enabled 是否开启低电量模式
1553
+ * @returns 是否设置成功
1813
1554
  */
1814
- getById(id: string): any;
1555
+ setLowPowerMode(enabled: boolean): boolean;
1815
1556
 
1816
1557
  /**
1817
- * 搜索备忘录(标题和内容)
1818
- * @param keyword 搜索关键词
1819
- * @returns 匹配的备忘录数组
1558
+ * 检查位置服务是否开启
1559
+ * @returns 位置服务是否开启
1820
1560
  */
1821
- search(keyword: string): any;
1561
+ isLocationServicesEnabled(): boolean;
1822
1562
 
1823
1563
  /**
1824
- * 更新备忘录
1825
- * @param id 备忘录 ID
1826
- * @param data 更新数据 { title?: 新标题, content?: 新内容, tags?: 新标签 }
1827
- * @returns { success: 是否成功, id: 备忘录ID }
1564
+ * 设置位置服务 (TrollStore 权限)
1565
+ * @param enabled 是否开启位置服务
1566
+ * @returns 是否设置成功
1828
1567
  */
1829
- update(id: string, data: Record<string, any>): Record<string, any>;
1568
+ setLocationServices(enabled: boolean): boolean;
1830
1569
 
1831
1570
  /**
1832
- * 删除备忘录
1833
- * @param id 备忘录 ID
1834
- * @returns { success: 是否成功, id: 已删除的ID }
1571
+ * 检查蜂窝数据是否开启
1572
+ * @returns 蜂窝数据是否开启
1835
1573
  */
1836
- delete(id: string): Record<string, any>;
1574
+ isCellularDataEnabled(): boolean;
1837
1575
 
1838
1576
  /**
1839
- * 清空所有备忘录
1840
- * @returns { success: 是否成功 }
1577
+ * 设置蜂窝数据 (TrollStore 权限)
1578
+ * @param enabled 是否开启蜂窝数据
1579
+ * @returns 是否设置成功
1841
1580
  */
1842
- clear(): Record<string, any>;
1581
+ setCellularData(enabled: boolean): boolean;
1843
1582
 
1844
1583
  /**
1845
- * 获取备忘录数量
1846
- * @returns 备忘录总数
1584
+ * 打开系统设置
1585
+ * @param section 设置页面: 'WIFI', 'BLUETOOTH', 'CELLULAR', 'VPN', 'GENERAL', 'DISPLAY', 'SOUND', 'NOTIFICATION', 'PRIVACY', 'BATTERY', 'STORAGE', 'WALLPAPER', 'SIRI', 'ACCESSIBILITY', 'DND', 'SCREEN_TIME', 'PASSWORDS'
1586
+ * @returns 是否成功打开
1847
1587
  */
1848
- count(): number;
1588
+ openSettings(section?: string): boolean;
1849
1589
 
1850
1590
  }
1851
1591
 
1852
- declare const memo: Memo;
1592
+ declare const system: System;