@dompling/trollscript-types 1.0.36 → 1.0.39

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 +430 -919
  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
 
@@ -333,50 +333,50 @@ interface Http {
333
333
  /**
334
334
  * 发送 GET 请求
335
335
  * @param url 请求地址
336
- * @param options 请求选项 { headers, timeout }
337
- * @returns 包含状态码、响应数据、响应头的对象
336
+ * @param options 请求选项 { headers, timeout, insecure }
337
+ * @returns 包含成功状态、状态码、响应数据、响应头的对象
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
342
  * 发送 POST 请求
343
343
  * @param url 请求地址
344
- * @param options 请求选项 { body, headers, timeout }
344
+ * @param options 请求选项 { body, headers, timeout, insecure }
345
345
  */
346
- post(url: string, options: Record<string, any>): any;
346
+ post(url: string, options?: Record<string, any>): any;
347
347
 
348
348
  /**
349
349
  * 发送 PUT 请求
350
350
  * @param url 请求地址
351
- * @param options 请求选项 { body, headers, timeout }
351
+ * @param options 请求选项 { body, headers, timeout, insecure }
352
352
  */
353
- put(url: string, options: Record<string, any>): any;
353
+ put(url: string, options?: Record<string, any>): any;
354
354
 
355
355
  /**
356
356
  * 发送 DELETE 请求
357
357
  * @param url 请求地址
358
- * @param options 请求选项 { headers, timeout }
358
+ * @param options 请求选项 { headers, timeout, insecure }
359
359
  */
360
- delete(url: string, options: Record<string, any>): any;
360
+ delete(url: string, options?: Record<string, any>): any;
361
361
 
362
362
  /**
363
363
  * 发送 PATCH 请求
364
364
  * @param url 请求地址
365
- * @param options 请求选项 { body, headers, timeout }
365
+ * @param options 请求选项 { body, headers, timeout, insecure }
366
366
  */
367
- patch(url: string, options: Record<string, any>): any;
367
+ patch(url: string, options?: Record<string, any>): any;
368
368
 
369
369
  /**
370
370
  * 发送 HEAD 请求
371
371
  * @param url 请求地址
372
- * @param options 请求选项 { headers, timeout }
372
+ * @param options 请求选项 { headers, timeout, insecure }
373
373
  */
374
- head(url: string, options: Record<string, any>): any;
374
+ head(url: string, options?: Record<string, any>): any;
375
375
 
376
376
  /**
377
377
  * 发送自定义请求
378
378
  * @param url 请求地址
379
- * @param options 请求选项 { method, body, headers, timeout }
379
+ * @param options 请求选项 { method, body, headers, timeout, insecure }
380
380
  */
381
381
  request(url: string, options: Record<string, any>): any;
382
382
 
@@ -384,9 +384,10 @@ interface Http {
384
384
  * 下载文件
385
385
  * @param url 下载地址
386
386
  * @param path 保存路径
387
- * @returns 包含本地文件路径的对象
387
+ * @param options 请求选项 { insecure }
388
+ * @returns 包含成功状态和本地文件路径的对象
388
389
  */
389
- download(url: string, path: string): any;
390
+ download(url: string, path: string, options?: Record<string, any>): any;
390
391
 
391
392
  }
392
393
 
@@ -411,12 +412,6 @@ interface Network {
411
412
  */
412
413
  getIPAddress(): any;
413
414
 
414
- /**
415
- * 获取 WiFi 信息
416
- * @returns 包含 SSID 和 BSSID 的对象
417
- */
418
- getWiFiInfo(): any;
419
-
420
415
  /**
421
416
  * URL 编码
422
417
  * @param string 要编码的字符串
@@ -444,12 +439,12 @@ interface Network {
444
439
  * @param params 查询参数
445
440
  * @returns 构建的 URL 字符串
446
441
  */
447
- buildURL(baseURL: string, params: Record<string, any>): string;
442
+ buildURL(baseURL: string, params?: Record<string, any>): string;
448
443
 
449
444
  /**
450
445
  * Ping 主机
451
446
  * @param host 主机名或 IP
452
- * @returns 包含延迟和成功状态的对象
447
+ * @returns 包含成功状态和延迟(毫秒)的对象
453
448
  */
454
449
  ping(host: string): any;
455
450
 
@@ -457,22 +452,9 @@ interface Network {
457
452
  * 下载文件
458
453
  * @param url 下载地址
459
454
  * @param filename 保存文件名
460
- * @returns 包含本地文件路径的对象
461
- */
462
- download(url: string, filename: string): any;
463
-
464
- /**
465
- * 获取飞行模式状态
466
- * @returns 是否开启
455
+ * @returns 包含成功状态和本地文件路径的对象
467
456
  */
468
- getAirplaneMode(): boolean;
469
-
470
- /**
471
- * 设置飞行模式
472
- * @param enabled 是否开启
473
- * @returns 是否设置成功
474
- */
475
- setAirplaneMode(enabled: boolean): boolean;
457
+ download(url: string, filename?: string): any;
476
458
 
477
459
  /**
478
460
  * 列出 VPN 配置
@@ -485,7 +467,7 @@ interface Network {
485
467
  * @param name VPN 名称,默认第一个
486
468
  * @returns 是否发起连接成功
487
469
  */
488
- connectVPN(name: string): boolean;
470
+ connectVPN(name?: string): boolean;
489
471
 
490
472
  /**
491
473
  * 断开 VPN
@@ -499,25 +481,12 @@ interface Network {
499
481
  */
500
482
  getVPNStatus(): any;
501
483
 
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
484
  /**
516
485
  * 打开系统设置
517
486
  * @param section 设置页面(如 'WIFI')
518
487
  * @returns 是否成功打开
519
488
  */
520
- openSettings(section: string): boolean;
489
+ openSettings(section?: string): boolean;
521
490
 
522
491
  }
523
492
 
@@ -530,12 +499,30 @@ interface App {
530
499
  */
531
500
  version(): string;
532
501
 
502
+ /**
503
+ * 获取应用构建号
504
+ * @returns 应用构建号 (CFBundleVersion)
505
+ */
506
+ build(): string;
507
+
508
+ /**
509
+ * 获取应用 Bundle ID
510
+ * @returns 应用的 Bundle Identifier
511
+ */
512
+ bundleId(): string;
513
+
514
+ /**
515
+ * 获取应用完整信息
516
+ * @returns 包含 name, version, build, bundleId, language 的应用信息对象
517
+ */
518
+ info(): any;
519
+
533
520
  /**
534
521
  * 打开 URL/Scheme
535
522
  * @param url 要打开的 URL
536
523
  * @returns 是否成功打开
537
524
  */
538
- open(url: string): any;
525
+ open(url: string): boolean;
539
526
 
540
527
  /**
541
528
  * 检查是否能打开
@@ -554,7 +541,7 @@ interface App {
554
541
  * @param limit 返回的日志条数
555
542
  * @returns 日志对象数组
556
543
  */
557
- getLogs(limit: number): any;
544
+ getLogs(limit?: number): any;
558
545
 
559
546
  /**
560
547
  * 导出日志为字符串
@@ -579,77 +566,69 @@ interface App {
579
566
  */
580
567
  clearLogs(): void;
581
568
 
582
- }
583
-
584
- declare const app: App;
569
+ /**
570
+ * 退出应用(仅用于调试)
571
+ * @param code 退出码,默认为 0
572
+ */
573
+ exit(code?: number): void;
585
574
 
586
- interface Ui {
587
575
  /**
588
- * 显示提示框
589
- * @param title 标题
590
- * @param message 内容
591
- * @param buttonTitle 按钮文字
592
- * @returns 无返回值
576
+ * 打开应用设置页面
577
+ * @returns 是否成功打开设置
593
578
  */
594
- alert(title: string, message: string, buttonTitle: string): any;
579
+ openSettings(): boolean;
595
580
 
596
581
  /**
597
- * 显示 Toast 提示
598
- * @param message 提示内容
599
- * @param duration 持续时间(秒)
582
+ * 获取所有已安装应用列表 (TrollStore 权限)
583
+ * @returns 应用信息数组,包含 bundleIdentifier, name, version, type 等字段
600
584
  */
601
- toast(message: string, duration: number): void;
585
+ list(): any;
602
586
 
603
587
  /**
604
- * 显示确认对话框
605
- * @param title 标题
606
- * @param message 内容
607
- * @param confirmTitle 确认按钮文字
608
- * @param cancelTitle 取消按钮文字
609
- * @returns 是否点击了确认
588
+ * 获取指定应用的详细信息 (TrollStore 权限)
589
+ * @param bundleId 应用的 Bundle Identifier
590
+ * @returns 应用信息对象,包含 bundleIdentifier, name, version, build, type, teamID, bundlePath, dataContainerPath, urlSchemes 等
610
591
  */
611
- confirm(title: string, message: string, confirmTitle: string, cancelTitle: string): any;
592
+ getAppInfo(bundleId: string): any;
612
593
 
613
594
  /**
614
- * 显示输入对话框
615
- * @param title 标题
616
- * @param message 内容
617
- * @param defaultValue 默认值
618
- * @param placeholder 占位符
619
- * @returns 输入的文本,取消返回 null
595
+ * 启动指定应用 (TrollStore 权限)
596
+ * @param bundleId 应用的 Bundle Identifier
597
+ * @returns 是否成功启动
620
598
  */
621
- prompt(title: string, message: string, defaultValue: string, placeholder: string): any;
599
+ launch(bundleId: string): boolean;
622
600
 
623
601
  /**
624
- * 显示操作表单
625
- * @param title 标题
626
- * @param message 内容
627
- * @param actions 选项列表
628
- * @returns 选择的按钮索引(从0开始)
602
+ * 终止指定应用 (TrollStore 权限,需要后台权限)
603
+ * @param bundleId 应用的 Bundle Identifier
604
+ * @returns 是否成功终止
629
605
  */
630
- actionSheet(title: string, message: string, actions: any): any;
606
+ terminate(bundleId: string): boolean;
631
607
 
632
608
  /**
633
- * 显示加载指示器
634
- * @param message 加载提示
609
+ * 检查应用是否已安装
610
+ * @param bundleId 应用的 Bundle Identifier
611
+ * @returns 是否已安装
635
612
  */
636
- showLoading(message: string): void;
613
+ isInstalled(bundleId: string): boolean;
637
614
 
638
615
  /**
639
- * 隐藏加载指示器
616
+ * 获取应用数据容器路径 (TrollStore 权限)
617
+ * @param bundleId 应用的 Bundle Identifier
618
+ * @returns 数据容器路径,未找到返回 null
640
619
  */
641
- hideLoading(): void;
620
+ getDataContainer(bundleId: string): any;
642
621
 
643
622
  }
644
623
 
645
- declare const ui: Ui;
624
+ declare const app: App;
646
625
 
647
626
  interface Haptic {
648
627
  /**
649
628
  * 触觉冲击反馈
650
629
  * @param style 'light' | 'medium' | 'heavy' | 'soft' | 'rigid'
651
630
  */
652
- impact(style: string): void;
631
+ impact(style?: string): void;
653
632
 
654
633
  /**
655
634
  * 通知触觉反馈
@@ -711,24 +690,27 @@ interface Display {
711
690
  /**
712
691
  * 设置屏幕亮度
713
692
  * @param value 亮度值 (0.0 - 1.0)
693
+ * @returns 是否设置成功
714
694
  */
715
- setBrightness(value: number): void;
695
+ setBrightness(value: number): boolean;
716
696
 
717
697
  /**
718
698
  * 增加亮度
719
699
  * @param amount 增加量 (默认 0.1)
700
+ * @returns 是否设置成功
720
701
  */
721
- increaseBrightness(amount: number): void;
702
+ increaseBrightness(amount?: number): boolean;
722
703
 
723
704
  /**
724
705
  * 降低亮度
725
706
  * @param amount 减少量 (默认 0.1)
707
+ * @returns 是否设置成功
726
708
  */
727
- decreaseBrightness(amount: number): void;
709
+ decreaseBrightness(amount?: number): boolean;
728
710
 
729
711
  /**
730
712
  * 获取屏幕信息
731
- * @returns 包含宽度、高度、缩放比例的对象
713
+ * @returns 包含宽度、高度、缩放比例和原生分辨率的对象
732
714
  */
733
715
  getScreenInfo(): any;
734
716
 
@@ -752,53 +734,70 @@ interface Display {
752
734
  setLowPowerMode(enabled: boolean): boolean;
753
735
 
754
736
  /**
755
- * 获取夜览状态
737
+ * 自动亮度是否开启
756
738
  * @returns 是否开启
757
739
  */
758
- getNightShiftStatus(): boolean;
740
+ isAutoBrightnessEnabled(): boolean;
759
741
 
760
742
  /**
761
- * 设置夜览
743
+ * 设置自动亮度
762
744
  * @param enabled 是否开启
763
745
  * @returns 是否设置成功
764
746
  */
765
- setNightShift(enabled: boolean): boolean;
747
+ setAutoBrightness(enabled: boolean): boolean;
766
748
 
767
749
  /**
768
- * 获取原彩显示状态
769
- * @returns 是否开启
750
+ * 打开显示设置
751
+ * @returns 是否成功打开
770
752
  */
771
- getTrueToneStatus(): boolean;
753
+ openSettings(): boolean;
772
754
 
773
755
  /**
774
- * 设置原彩显示
775
- * @param enabled 是否开启
756
+ * 保持屏幕常亮
757
+ * @param enabled 是否保持常亮
776
758
  * @returns 是否设置成功
777
759
  */
778
- setTrueTone(enabled: boolean): boolean;
760
+ keepAwake(enabled: boolean): boolean;
761
+
762
+ }
779
763
 
764
+ declare const display: Display;
765
+
766
+ interface Hud {
780
767
  /**
781
- * 自动亮度是否开启
782
- * @returns 是否开启
768
+ * 创建 HUD 窗口
769
+ * @param config 窗口配置 { id?, width?, height?, x?, y?, draggable?, dismissible?, autoClear?, style? },style 为 { backgroundColor?, textColor?, fontSize?, fontWeight?, cornerRadius?, padding?, opacity?, shadow? }
770
+ * @returns 窗口对象,可用于添加元素和控制窗口
783
771
  */
784
- isAutoBrightnessEnabled(): boolean;
772
+ createWindow(config: Record<string, any>): any;
785
773
 
786
774
  /**
787
- * 设置自动亮度
788
- * @param enabled 是否开启
789
- * @returns 是否设置成功
775
+ * 根据 ID 获取已存在的窗口
776
+ * @param id 窗口 ID
777
+ * @returns 窗口对象,未找到返回 null
790
778
  */
791
- setAutoBrightness(enabled: boolean): boolean;
779
+ getWindow(id: string): any;
792
780
 
793
781
  /**
794
- * 打开显示设置
795
- * @returns 是否成功打开
782
+ * 获取屏幕尺寸信息
783
+ * @returns 包含 width, height, scale 的屏幕信息对象
796
784
  */
797
- openSettings(): boolean;
785
+ getScreenSize(): any;
786
+
787
+ /**
788
+ * 清除所有 HUD 窗口
789
+ */
790
+ clearAll(): void;
791
+
792
+ /**
793
+ * 获取所有窗口 ID 列表
794
+ * @returns 窗口 ID 数组
795
+ */
796
+ getAllWindows(): any;
798
797
 
799
798
  }
800
799
 
801
- declare const display: Display;
800
+ declare const hud: Hud;
802
801
 
803
802
  interface Util {
804
803
  /**
@@ -829,12 +828,31 @@ interface Util {
829
828
  base64Decode(string: string): string;
830
829
 
831
830
  /**
832
- * 格式化日期
833
- * @param date 日期对象
834
- * @param format 格式字符串 (如 'yyyy-MM-dd')
831
+ * 计算 SHA256 哈希
832
+ * @param string 要计算的字符串
833
+ * @returns SHA256 哈希值
834
+ */
835
+ sha256(string: string): string;
836
+
837
+ /**
838
+ * 格式化时间戳为字符串
839
+ * @param timestamp 时间戳(毫秒)
840
+ * @param format 格式模式(如 'yyyy-MM-dd'),默认为 'yyyy-MM-dd HH:mm:ss'
835
841
  * @returns 格式化后的日期字符串
836
842
  */
837
- formatDate(date: any, format: string): string;
843
+ formatDate(timestamp: number, format?: string): string;
844
+
845
+ /**
846
+ * 获取当前时间戳(毫秒)
847
+ * @returns 当前时间戳
848
+ */
849
+ now(): number;
850
+
851
+ /**
852
+ * 休眠指定时长
853
+ * @param ms 休眠时长(毫秒)
854
+ */
855
+ sleep(ms: number): void;
838
856
 
839
857
  }
840
858
 
@@ -860,13 +878,13 @@ interface Location {
860
878
 
861
879
  /**
862
880
  * 获取当前位置
863
- * @returns 位置信息对象(包含经纬度、海拔等)
881
+ * @returns 位置信息对象(包含经纬度、海拔、精度等),失败返回 null
864
882
  */
865
883
  getCurrent(): any;
866
884
 
867
885
  /**
868
886
  * 获取当前位置(别名)
869
- * @returns 位置信息对象
887
+ * @returns 位置信息对象,失败返回 null
870
888
  */
871
889
  current(): any;
872
890
 
@@ -891,9 +909,10 @@ interface Location {
891
909
  * 坐标转地址
892
910
  * @param lat 纬度
893
911
  * @param lng 经度
912
+ * @param locale 语言区域标识(可选,如 'zh_CN'、'en_US',默认使用系统语言)
894
913
  * @returns 地址信息对象数组
895
914
  */
896
- reverseGeocode(lat: number, lng: number): any;
915
+ reverseGeocode(lat: number, lng: number, locale?: string): any;
897
916
 
898
917
  /**
899
918
  * 定位服务是否开启
@@ -901,140 +920,28 @@ interface Location {
901
920
  */
902
921
  isLocationServicesEnabled(): boolean;
903
922
 
904
- }
905
-
906
- declare const location: Location;
907
-
908
- interface Weather {
909
- /**
910
- * 获取当前天气
911
- * @param city 城市名
912
- * @returns 当前天气对象
913
- */
914
- current(city: string): any;
915
-
916
- /**
917
- * 获取天气预报
918
- * @param city 城市名
919
- * @param days 天数
920
- * @returns 天气预报数组
921
- */
922
- forecast(city: string, days: number): any;
923
-
924
- /**
925
- * 根据经纬度获取天气
926
- * @param lat 纬度
927
- * @param lng 经度
928
- * @returns 指定位置的天气对象
929
- */
930
- byLocation(lat: number, lng: number): any;
931
-
932
- }
933
-
934
- declare const weather: Weather;
935
-
936
- interface Health {
937
- /**
938
- * 检查 HealthKit 是否可用
939
- * @returns 是否可用
940
- */
941
- isAvailable(): boolean;
942
-
943
- /**
944
- * 请求健康数据权限
945
- * @param types 权限类型列表 ('stepCount', 'heartRate', 'sleepAnalysis', 'activeEnergyBurned', 'distanceWalkingRunning', 'bodyMass', 'height')
946
- * @returns 是否授权成功
947
- */
948
- requestAccess(types: any): any;
949
-
950
- /**
951
- * 获取授权状态
952
- * @param type 权限类型
953
- * @returns 权限状态
954
- */
955
- getAuthorizationStatus(type: string): any;
956
-
957
- /**
958
- * 获取今日步数
959
- * @returns 今日步数
960
- */
961
- getTodaySteps(): any;
962
-
963
- /**
964
- * 获取指定日期步数
965
- * @param startTimestamp 开始时间戳
966
- * @param endTimestamp 结束时间戳
967
- * @returns 步数
968
- */
969
- getSteps(startTimestamp: number, endTimestamp: number): any;
970
-
971
- /**
972
- * 获取最新心率
973
- * @returns 最新心率对象
974
- */
975
- getLatestHeartRate(): any;
976
-
977
- /**
978
- * 获取心率历史
979
- * @param startTimestamp 开始时间戳
980
- * @param endTimestamp 结束时间戳
981
- * @param limit 限制条数
982
- * @returns 心率历史数组
983
- */
984
- getHeartRateHistory(startTimestamp: number, endTimestamp: number, limit: number): any;
985
-
986
923
  /**
987
- * 获取最近睡眠
988
- * @returns 最近睡眠记录
989
- */
990
- getLatestSleep(): any;
991
-
992
- /**
993
- * 获取睡眠历史
994
- * @param days 天数
995
- * @returns 睡眠历史记录数组
996
- */
997
- getSleepHistory(days: number): any;
998
-
999
- /**
1000
- * 获取今日活动能量
1001
- * @returns 今日活动能量(千卡)
1002
- */
1003
- getTodayActiveEnergy(): any;
1004
-
1005
- /**
1006
- * 获取今日行走距离
1007
- * @returns 今日行走距离(米)
1008
- */
1009
- getTodayDistance(): any;
1010
-
1011
- /**
1012
- * 获取最新体重
1013
- * @returns 最新体重记录
1014
- */
1015
- getLatestWeight(): any;
1016
-
1017
- /**
1018
- * 获取身高
1019
- * @returns 身高记录
924
+ * 检查是否有 TrollStore 权限
925
+ * @returns 是否有权限
1020
926
  */
1021
- getHeight(): any;
927
+ hasTrollStorePermission(): boolean;
1022
928
 
1023
929
  /**
1024
- * 获取今日健康摘要
1025
- * @returns 今日健康摘要对象
930
+ * 开关系统定位服务(需要 TrollStore 权限)
931
+ * @param enabled true 开启,false 关闭
932
+ * @returns 操作结果(success 表示是否成功,enabled 为当前状态)
1026
933
  */
1027
- getTodaySummary(): any;
934
+ setLocationServicesEnabled(enabled: boolean): any;
1028
935
 
1029
936
  /**
1030
- * 获取支持的数据类型
1031
- * @returns 支持的健康数据类型数组
937
+ * 切换定位服务状态(需要 TrollStore 权限)
938
+ * @returns 操作结果(success 表示是否成功,enabled 为切换后状态)
1032
939
  */
1033
- getSupportedTypes(): any;
940
+ toggleLocationServices(): any;
1034
941
 
1035
942
  }
1036
943
 
1037
- declare const health: Health;
944
+ declare const location: Location;
1038
945
 
1039
946
  interface Calendar {
1040
947
  /**
@@ -1046,7 +953,7 @@ interface Calendar {
1046
953
  * 请求日历权限
1047
954
  * @returns 是否授权成功
1048
955
  */
1049
- requestAccess(): any;
956
+ requestAccess(): boolean;
1050
957
 
1051
958
  /**
1052
959
  * 获取所有日历
@@ -1067,7 +974,7 @@ interface Calendar {
1067
974
  * @param calendarId 日历 ID
1068
975
  * @returns 事件数组
1069
976
  */
1070
- getEvents(start: number, end: number, calendarId: string): any;
977
+ getEvents(start: number, end: number, calendarId?: string): any;
1071
978
 
1072
979
  /**
1073
980
  * 创建日历事件
@@ -1075,16 +982,16 @@ interface Calendar {
1075
982
  * @param start 开始时间戳
1076
983
  * @param end 结束时间戳
1077
984
  * @param options 选项 { calendarId, notes, location, url, allDay }
1078
- * @returns 创建的事件 ID
985
+ * @returns 创建的事件 ID,失败返回 null
1079
986
  */
1080
- create(title: string, start: number, end: number, options: Record<string, any>): any;
987
+ create(title: string, start: number, end: number, options?: Record<string, any>): any;
1081
988
 
1082
989
  /**
1083
990
  * 删除日历事件
1084
991
  * @param id 事件 ID
1085
992
  * @returns 是否删除成功
1086
993
  */
1087
- delete(id: string): any;
994
+ delete(id: string): boolean;
1088
995
 
1089
996
  }
1090
997
 
@@ -1101,7 +1008,7 @@ interface Reminder {
1101
1008
  * 请求提醒事项权限
1102
1009
  * @returns 是否授权成功
1103
1010
  */
1104
- requestAccess(): any;
1011
+ requestAccess(): boolean;
1105
1012
 
1106
1013
  /**
1107
1014
  * 获取所有提醒列表
@@ -1114,43 +1021,43 @@ interface Reminder {
1114
1021
  * @param listId 列表 ID
1115
1022
  * @returns 提醒事项数组
1116
1023
  */
1117
- getAll(listId: string): any;
1024
+ getAll(listId?: string): any;
1118
1025
 
1119
1026
  /**
1120
1027
  * 创建提醒事项
1121
1028
  * @param title 标题
1122
- * @param options 选项 { listId, notes, dueDate, priority, sortOrder, isPinned }
1123
- * @returns 创建的提醒 ID
1029
+ * @param options 选项 { listId, notes, dueDate, priority, location: { latitude, longitude, radius, onArrive, name } }
1030
+ * @returns 创建的提醒 ID,如果是位置提醒则返回详细对象
1124
1031
  */
1125
- create(title: string, options: Record<string, any>): any;
1032
+ create(title: string, options?: Record<string, any>): any;
1126
1033
 
1127
1034
  /**
1128
1035
  * 标记为已完成
1129
1036
  * @param id 提醒事项 ID
1130
1037
  * @returns 是否成功
1131
1038
  */
1132
- complete(id: string): any;
1039
+ complete(id: string): boolean;
1133
1040
 
1134
1041
  /**
1135
1042
  * 删除提醒事项
1136
1043
  * @param id 提醒事项 ID
1137
1044
  * @returns 是否成功
1138
1045
  */
1139
- delete(id: string): any;
1046
+ delete(id: string): boolean;
1140
1047
 
1141
1048
  /**
1142
1049
  * 获取排序后的提醒
1143
1050
  * @param options { sortBy: 'createdAt'|'dueDate'|'priority'|'title', ascending: boolean, completed: boolean }
1144
1051
  * @returns 排序后的提醒列表
1145
1052
  */
1146
- getSorted(options: Record<string, any>): any;
1053
+ getSorted(options?: Record<string, any>): any;
1147
1054
 
1148
1055
  /**
1149
1056
  * 获取即将到期的提醒
1150
1057
  * @param days 未来几天,默认 7 天
1151
1058
  * @returns 即将到期的提醒列表
1152
1059
  */
1153
- getUpcoming(days: number): any;
1060
+ getUpcoming(days?: number): any;
1154
1061
 
1155
1062
  /**
1156
1063
  * 获取已过期的提醒
@@ -1161,20 +1068,20 @@ interface Reminder {
1161
1068
  /**
1162
1069
  * 批量重排序
1163
1070
  * @param ids 按顺序排列的 ID 数组
1164
- * @returns { success: boolean, count: number }
1071
+ * @returns 操作结果(注意:系统提醒不支持重排序)
1165
1072
  */
1166
1073
  reorder(ids: any): any;
1167
1074
 
1168
1075
  /**
1169
- * 创建系统提醒(支持位置触发)
1076
+ * 创建系统提醒(支持位置触发等高级功能)
1170
1077
  * @param title 标题
1171
1078
  * @param options { listId, notes, dueDate, priority, location: { latitude, longitude, radius, onArrive, name } }
1172
- * @returns { success: boolean, id: string, title: string, isSystemReminder: true }
1079
+ * @returns 包含成功状态和系统提醒详情的对象
1173
1080
  */
1174
- createSystemReminder(title: string, options: Record<string, any>): any;
1081
+ createSystemReminder(title: string, options?: Record<string, any>): any;
1175
1082
 
1176
1083
  /**
1177
- * 获取系统提醒列表
1084
+ * 获取系统管理的提醒列表
1178
1085
  * @returns 系统提醒列表数组
1179
1086
  */
1180
1087
  getSystemLists(): any;
@@ -1203,12 +1110,12 @@ interface Contacts {
1203
1110
  isAuthorized(): boolean;
1204
1111
 
1205
1112
  /**
1206
- * 获取所有联系人
1113
+ * 获取所有联系人(支持分页)
1207
1114
  * @param offset 跳过的记录数,默认 0
1208
1115
  * @param limit 返回的最大数量,默认全部
1209
1116
  * @returns 联系人对象数组
1210
1117
  */
1211
- getAll(offset: number, limit: number): any;
1118
+ getAll(offset?: number, limit?: number): any;
1212
1119
 
1213
1120
  /**
1214
1121
  * 获取联系人总数
@@ -1218,592 +1125,236 @@ interface Contacts {
1218
1125
 
1219
1126
  /**
1220
1127
  * 按名字搜索联系人
1221
- * @param query 搜索关键词(匹配姓名)
1222
- * @returns 联系人对象数组
1128
+ * @param query 搜索关键词(匹配姓名字段)
1129
+ * @returns 匹配的联系人对象数组
1223
1130
  */
1224
1131
  search(query: string): any;
1225
1132
 
1226
1133
  /**
1227
- * 按电话搜索联系人
1134
+ * 按电话号码搜索联系人
1228
1135
  * @param phone 电话号码(支持模糊匹配)
1229
- * @returns 联系人对象数组
1136
+ * @returns 匹配的联系人对象数组
1230
1137
  */
1231
1138
  searchByPhone(phone: string): any;
1232
1139
 
1233
1140
  /**
1234
- * 按邮箱搜索联系人
1235
- * @param email 邮箱地址(支持模糊匹配)
1236
- * @returns 联系人对象数组
1237
- */
1238
- searchByEmail(email: string): any;
1239
-
1240
- /**
1241
- * 根据 ID 获取联系人
1141
+ * 根据唯一标识符获取联系人
1242
1142
  * @param id 联系人唯一标识符
1243
- * @returns 联系人对象
1143
+ * @returns 联系人对象,未找到返回 null
1244
1144
  */
1245
1145
  getById(id: string): any;
1246
1146
 
1247
1147
  /**
1248
- * 创建联系人
1249
- * @param data 联系人数据 { givenName, familyName, phoneNumbers?, emailAddresses?, ... }
1250
- * @returns 包含成功状态和 ID 的对象
1148
+ * 创建新联系人
1149
+ * @param data 联系人数据,包含 givenName, familyName, phoneNumbers, emailAddresses
1150
+ * @returns 包含成功状态和新联系人 ID 的对象
1251
1151
  */
1252
1152
  create(data: Record<string, any>): any;
1253
1153
 
1254
1154
  /**
1255
- * 更新联系人
1256
- * @param id 联系人唯一标识符
1257
- * @param data 要更新的字段
1258
- * @returns 包含成功状态的对象
1259
- */
1260
- update(id: string, data: Record<string, any>): any;
1261
-
1262
- /**
1263
- * 删除联系人
1155
+ * 删除指定联系人
1264
1156
  * @param id 联系人唯一标识符
1265
1157
  * @returns 包含成功状态的对象
1266
1158
  */
1267
1159
  delete(id: string): any;
1268
1160
 
1269
1161
  /**
1270
- * 获取所有分组
1271
- * @returns 分组数组
1162
+ * 获取所有联系人分组
1163
+ * @returns 分组对象数组
1272
1164
  */
1273
1165
  getGroups(): any;
1274
1166
 
1275
- /**
1276
- * 获取分组内联系人
1277
- * @param groupId 分组唯一标识符
1278
- * @returns 联系人对象数组
1279
- */
1280
- getContactsInGroup(groupId: string): any;
1281
-
1282
1167
  }
1283
1168
 
1284
1169
  declare const contacts: Contacts;
1285
1170
 
1286
- interface Notification {
1287
- /**
1288
- * 发送通知
1289
- * @param title 通知标题
1290
- * @param body 通知内容
1291
- * @param options 选项 { url, userInfo, sound, badge }
1292
- * @returns 发送的通知 ID
1293
- */
1294
- send(title: string, body: string, options: Record<string, any>): any;
1295
-
1296
- /**
1297
- * 取消通知
1298
- * @param id 通知 ID
1299
- */
1300
- cancel(id: string): void;
1301
-
1302
- /**
1303
- * 取消所有通知
1304
- */
1305
- cancelAll(): void;
1306
-
1307
- /**
1308
- * 获取待发送通知
1309
- * @returns 待发送通知列表
1310
- */
1311
- getPending(): any;
1312
-
1313
- /**
1314
- * 获取已发送通知
1315
- * @returns 已发送通知列表
1316
- */
1317
- getDelivered(): any;
1318
-
1319
- /**
1320
- * 请求通知权限
1321
- * @returns 是否授权成功
1322
- */
1323
- requestPermission(): any;
1324
-
1325
- /**
1326
- * 获取权限状态
1327
- * @returns 权限状态
1328
- */
1329
- getPermissionStatus(): any;
1330
-
1331
- /**
1332
- * 设置角标数字
1333
- * @param count 角标数
1334
- */
1335
- setBadge(count: number): void;
1336
-
1337
- /**
1338
- * 获取角标数字
1339
- * @returns 角标数字
1340
- */
1341
- getBadge(): any;
1342
-
1343
- /**
1344
- * 定时通知
1345
- * @param title 通知标题
1346
- * @param body 通知内容
1347
- * @param date 触发时间戳
1348
- * @param options 选项 { url, userInfo, sound, badge, repeat: 'daily'|'weekly'|'monthly' }
1349
- * @returns 发送的通知 ID
1350
- */
1351
- schedule(title: string, body: string, date: number, options: Record<string, any>): any;
1352
-
1353
- }
1354
-
1355
- declare const notification: Notification;
1356
-
1357
- interface Alarm {
1358
- /**
1359
- * 请求通知权限
1360
- * @returns 是否授权成功
1361
- */
1362
- requestAccess(): any;
1363
-
1364
- /**
1365
- * 获取权限状态
1366
- * @returns 权限状态
1367
- */
1368
- getAccessStatus(): any;
1369
-
1370
- /**
1371
- * 创建一次性闹钟
1372
- * @param timestamp 触发时间戳
1373
- * @param title 标题
1374
- * @param options 选项 { sound }
1375
- * @returns 创建的闹钟 ID
1376
- */
1377
- createOnce(timestamp: number, title: string, options: Record<string, any>): any;
1378
-
1379
- /**
1380
- * 创建每日重复闹钟
1381
- * @param hour 小时 (0-23)
1382
- * @param minute 分钟 (0-59)
1383
- * @param title 标题
1384
- * @param options 选项 { sound }
1385
- * @returns 创建的闹钟 ID
1386
- */
1387
- createDaily(hour: number, minute: number, title: string, options: Record<string, any>): any;
1388
-
1389
- /**
1390
- * 创建每周重复闹钟
1391
- * @param weekday 周几 (1-7, 周日为1)
1392
- * @param hour 小时 (0-23)
1393
- * @param minute 分钟 (0-59)
1394
- * @param title 标题
1395
- * @param options 选项 { sound }
1396
- * @returns 创建的闹钟 ID
1397
- */
1398
- createWeekly(weekday: number, hour: number, minute: number, title: string, options: Record<string, any>): any;
1399
-
1400
- /**
1401
- * 创建倒计时提醒
1402
- * @param seconds 秒数
1403
- * @param title 标题
1404
- * @param options 选项 { sound }
1405
- * @returns 创建的闹钟 ID
1406
- */
1407
- createCountdown(seconds: number, title: string, options: Record<string, any>): any;
1408
-
1409
- /**
1410
- * 获取待触发的闹钟
1411
- * @returns 待触发闹钟列表
1412
- */
1413
- getPending(): any;
1414
-
1415
- /**
1416
- * 获取闹钟数量
1417
- * @returns 闹钟数量
1418
- */
1419
- getCount(): any;
1420
-
1421
- /**
1422
- * 取消指定闹钟
1423
- * @param id 闹钟 ID
1424
- */
1425
- cancel(id: string): void;
1426
-
1427
- /**
1428
- * 取消所有闹钟
1429
- */
1430
- cancelAll(): void;
1431
-
1432
- /**
1433
- * 打开系统时钟
1434
- */
1435
- openClockApp(): void;
1436
-
1437
- /**
1438
- * 打开计时器
1439
- */
1440
- openTimer(): void;
1441
-
1442
- }
1443
-
1444
- declare const alarm: Alarm;
1445
-
1446
- interface Media {
1447
- /**
1448
- * 播放
1449
- */
1450
- play(): void;
1451
-
1452
- /**
1453
- * 暂停
1454
- */
1455
- pause(): void;
1456
-
1457
- /**
1458
- * 停止
1459
- */
1460
- stop(): void;
1461
-
1462
- /**
1463
- * 切换播放/暂停
1464
- */
1465
- togglePlayPause(): void;
1466
-
1467
- /**
1468
- * 下一首
1469
- */
1470
- next(): void;
1471
-
1472
- /**
1473
- * 上一首
1474
- */
1475
- previous(): void;
1476
-
1477
- /**
1478
- * 跳到开头
1479
- */
1480
- skipToBeginning(): void;
1481
-
1482
- /**
1483
- * 获取播放状态
1484
- * @returns 播放状态
1485
- */
1486
- getPlaybackState(): any;
1487
-
1488
- /**
1489
- * 是否正在播放
1490
- * @returns 是否正在播放
1491
- */
1492
- isPlaying(): boolean;
1493
-
1494
- /**
1495
- * 获取当前播放信息
1496
- * @returns 当前播放信息对象
1497
- */
1498
- getNowPlaying(): any;
1499
-
1500
- /**
1501
- * 获取音量
1502
- * @returns 当前音量(0.0-1.0)
1503
- */
1504
- getVolume(): number;
1505
-
1506
- /**
1507
- * 设置音量
1508
- * @param volume 音量 (0.0 - 1.0)
1509
- */
1510
- setVolume(volume: number): void;
1511
-
1512
- /**
1513
- * 获取重复模式
1514
- * @returns 重复模式
1515
- */
1516
- getRepeatMode(): any;
1517
-
1518
- /**
1519
- * 设置重复模式
1520
- * @param mode 'none' | 'one' | 'all'
1521
- */
1522
- setRepeatMode(mode: string): void;
1523
-
1524
- /**
1525
- * 获取随机播放模式
1526
- * @returns 随机播放模式
1527
- */
1528
- getShuffleMode(): any;
1529
-
1530
- /**
1531
- * 设置随机播放模式
1532
- * @param mode 'off' | 'songs' | 'albums'
1533
- */
1534
- setShuffleMode(mode: string): void;
1535
-
1536
- /**
1537
- * 获取当前播放时间
1538
- * @returns 当前播放时间(秒)
1539
- */
1540
- getCurrentTime(): number;
1541
-
1542
- /**
1543
- * 设置播放时间
1544
- * @param time 时间 (秒)
1545
- */
1546
- setCurrentTime(time: number): void;
1547
-
1548
- /**
1549
- * 快进
1550
- * @param seconds 秒数 (默认 15)
1551
- */
1552
- seekForward(seconds: number): void;
1553
-
1554
- /**
1555
- * 快退
1556
- * @param seconds 秒数 (默认 15)
1557
- */
1558
- seekBackward(seconds: number): void;
1559
-
1560
- /**
1561
- * 请求音乐库权限
1562
- * @returns 是否授权成功
1563
- */
1564
- requestAccess(): any;
1565
-
1566
- /**
1567
- * 获取权限状态
1568
- * @returns 权限状态
1569
- */
1570
- getAccessStatus(): any;
1571
-
1572
- /**
1573
- * 搜索音乐库
1574
- * @param query 搜索关键词
1575
- * @returns 歌曲列表数组
1576
- */
1577
- searchSongs(query: string): any;
1578
-
1579
- /**
1580
- * 播放指定歌曲
1581
- * @param persistentID 歌曲 ID
1582
- */
1583
- playSong(persistentID: string): void;
1584
-
1585
- /**
1586
- * 获取所有歌曲
1587
- * @returns 歌曲列表数组
1588
- */
1589
- getAllSongs(): any;
1590
-
1591
- /**
1592
- * 获取所有专辑
1593
- * @returns 专辑列表数组
1594
- */
1595
- getAlbums(): any;
1596
-
1597
- /**
1598
- * 获取所有艺术家
1599
- * @returns 艺术家列表数组
1600
- */
1601
- getArtists(): any;
1602
-
1603
- /**
1604
- * 获取播放列表
1605
- * @returns 播放列表数组
1606
- */
1607
- getPlaylists(): any;
1608
-
1609
- /**
1610
- * 播放专辑
1611
- * @param id 专辑 ID
1612
- */
1613
- playAlbum(id: string): void;
1614
-
1171
+ interface Sms {
1615
1172
  /**
1616
- * 播放艺术家
1617
- * @param id 艺术家 ID
1173
+ * 检查是否可以访问真实短信数据
1174
+ * @returns 应用是否有权访问短信数据库
1618
1175
  */
1619
- playArtist(id: string): void;
1176
+ isRealDataAvailable(): boolean;
1620
1177
 
1621
1178
  /**
1622
- * 播放播放列表
1623
- * @param id 播放列表 ID
1624
- * @returns 无返回值
1179
+ * 读取最近的短信
1180
+ * @param limit 最大返回数量(默认 50)
1181
+ * @param offset 跳过的消息数(默认 0)
1182
+ * @returns 短信对象数组
1625
1183
  */
1626
- playPlaylist(id: string): void;
1627
-
1628
- }
1629
-
1630
- declare const media: Media;
1184
+ read(limit?: number, offset?: number): any;
1631
1185
 
1632
- interface Mail {
1633
1186
  /**
1634
- * 检查是否能发送邮件
1635
- * @returns 是否能发送
1187
+ * 按关键词搜索短信
1188
+ * @param keyword 搜索关键词
1189
+ * @param limit 最大返回数量(默认 50)
1190
+ * @returns 匹配的短信对象数组
1636
1191
  */
1637
- canSendMail(): boolean;
1192
+ search(keyword: string, limit?: number): any;
1638
1193
 
1639
1194
  /**
1640
- * 获取邮件功能状态
1641
- * @returns 邮件功能状态
1195
+ * 获取指定号码的短信
1196
+ * @param address 发送者号码或地址
1197
+ * @param limit 最大返回数量(默认 50)
1198
+ * @returns 短信对象数组
1642
1199
  */
1643
- getStatus(): any;
1200
+ getByAddress(address: string, limit?: number): any;
1644
1201
 
1645
1202
  /**
1646
- * 发送简单邮件
1647
- * @param to 收件人列表
1648
- * @param subject 主题
1649
- * @param body 正文
1650
- * @returns 是否发送成功
1203
+ * 获取会话列表
1204
+ * @param limit 最大返回数量(默认 50)
1205
+ * @returns 会话对象数组
1651
1206
  */
1652
- send(to: any, subject: string, body: string): any;
1207
+ getChats(limit?: number): any;
1653
1208
 
1654
1209
  /**
1655
- * 发送邮件(完整选项)
1656
- * @param options 选项 { to, cc, bcc, subject, body, isHtml, attachments }
1657
- * @returns 是否发送成功
1210
+ * 获取短信统计信息
1211
+ * @returns 包含统计信息的对象
1658
1212
  */
1659
- sendAdvanced(options: Record<string, any>): any;
1213
+ getStatistics(): any;
1660
1214
 
1661
1215
  /**
1662
- * 打开邮件 App
1663
- * @returns 无返回值
1216
+ * 获取最新短信
1217
+ * @returns 最新短信对象或 null
1664
1218
  */
1665
- openMailApp(): void;
1219
+ getLatest(): any;
1666
1220
 
1667
1221
  /**
1668
- * 打开指定邮件 App
1669
- * @param appName App 名称
1670
- * @returns 无返回值
1222
+ * 获取未读短信
1223
+ * @param limit 最大返回数量(默认 50)
1224
+ * @returns 未读短信对象数组
1671
1225
  */
1672
- openSpecificMailApp(appName: string): void;
1226
+ getUnread(limit?: number): any;
1673
1227
 
1674
1228
  /**
1675
- * 验证邮箱格式
1676
- * @param email 邮箱地址
1677
- * @returns 是否有效
1229
+ * 通过 Root Helper 检查短信数据库访问权限
1230
+ * @returns 访问状态信息
1678
1231
  */
1679
- isValidEmail(email: string): boolean;
1232
+ helperCheck(): Record<string, any>;
1680
1233
 
1681
1234
  /**
1682
- * 检测已安装的邮件 App
1683
- * @returns 已安装的邮件 App 名称数组
1235
+ * 通过 Root Helper 复制短信数据库到临时目录
1236
+ * @returns 复制操作结果
1684
1237
  */
1685
- getInstalledMailApps(): any;
1238
+ helperCopy(): any;
1686
1239
 
1687
1240
  /**
1688
- * 从模板生成邮件
1689
- * @param templateName 模板名称
1690
- * @param variables 变量字典
1691
- * @returns 生成的邮件内容
1241
+ * 通过 Root Helper 列出目录内容
1242
+ * @param path 要列出的目录路径
1243
+ * @returns 目录列表结果
1692
1244
  */
1693
- fromTemplate(templateName: string, variables: Record<string, any>): any;
1245
+ helperList(path: string): Record<string, any>;
1694
1246
 
1695
1247
  /**
1696
- * 获取可用模板列表
1697
- * @returns 模板名称数组
1248
+ * 检查 Root Helper 是否可用
1249
+ * @returns Root Helper 是否可访问
1698
1250
  */
1699
- getTemplates(): any;
1251
+ helperAvailable(): boolean;
1700
1252
 
1701
1253
  }
1702
1254
 
1703
- declare const mail: Mail;
1704
-
1705
- interface Sms {
1706
- /**
1707
- * 检查短信权限
1708
- * @returns 是否有权限
1709
- */
1710
- checkAccess(): boolean;
1255
+ declare const sms: Sms;
1711
1256
 
1257
+ interface Sql {
1712
1258
  /**
1713
- * 尝试直接访问短信数据库(调试用)
1714
- * @returns 是否访问成功
1259
+ * 打开或创建 SQLite 数据库
1260
+ * @param name 数据库名称(默认为 'default')。文件将在 Documents 目录下创建为 {name}.sqlite
1261
+ * @returns 数据库是否成功打开
1715
1262
  */
1716
- tryAccess(): boolean;
1263
+ open(name?: string): boolean;
1717
1264
 
1718
1265
  /**
1719
- * 读取最近的短信
1720
- * @param limit 限制条数 (默认 10)
1721
- * @returns 短信对象数组
1266
+ * 关闭数据库连接
1267
+ * @param name 数据库名称(默认为 'default')
1268
+ * @returns 始终返回 true
1722
1269
  */
1723
- read(limit: number): any;
1270
+ close(name?: string): boolean;
1724
1271
 
1725
1272
  /**
1726
- * 获取验证码
1727
- * @param minutes 查找最近几分钟内的验证码 (默认 5)
1728
- * @returns 验证码或 null
1273
+ * 执行 INSERT、UPDATE、DELETE 或 DDL 语句
1274
+ * @param name 数据库名称(默认为 'default')
1275
+ * @param sql 要执行的 SQL 语句
1276
+ * @param params 预处理语句的参数(使用 ? 占位符)
1277
+ * @returns 包含成功状态、受影响行数和最后插入行 ID 的结果对象
1729
1278
  */
1730
- getVerificationCode(minutes: number): any;
1279
+ execute(name?: string, sql: string, params?: any[]): any;
1731
1280
 
1732
1281
  /**
1733
- * 搜索短信
1734
- * @param keyword 关键词
1735
- * @returns 短信对象数组
1282
+ * execute() 的别名
1283
+ * @param name 数据库名称(默认为 'default')
1284
+ * @param sql 要执行的 SQL 语句
1285
+ * @param params 预处理语句的参数
1286
+ * @returns 结果对象
1736
1287
  */
1737
- search(keyword: string): any;
1288
+ exec(name?: string, sql: string, params?: any[]): any;
1738
1289
 
1739
1290
  /**
1740
- * 按号码获取短信
1741
- * @param address 发送者号码
1742
- * @returns 短信对象数组
1291
+ * 执行 SELECT 查询并返回所有匹配的行
1292
+ * @param name 数据库名称(默认为 'default')
1293
+ * @param sql 要执行的 SELECT 查询
1294
+ * @param params 预处理语句的参数
1295
+ * @returns 行对象数组(列名 -> 值)
1743
1296
  */
1744
- getByAddress(address: string): any;
1297
+ query(name?: string, sql: string, params?: any[]): any;
1745
1298
 
1746
1299
  /**
1747
- * 获取会话列表
1748
- * @returns 会话列表数组
1300
+ * 执行 SELECT 查询并返回第一行
1301
+ * @param name 数据库名称(默认为 'default')
1302
+ * @param sql 要执行的 SELECT 查询
1303
+ * @param params 预处理语句的参数
1304
+ * @returns 第一行对象,如果没有结果则返回 null
1749
1305
  */
1750
- getChats(): any;
1306
+ queryOne(name?: string, sql: string, params?: any[]): any;
1751
1307
 
1752
1308
  /**
1753
- * 获取短信统计
1754
- * @returns 统计信息对象
1309
+ * 检查数据库中是否存在指定表
1310
+ * @param name 数据库名称(默认为 'default')
1311
+ * @param tableName 要检查的表名
1312
+ * @returns 表是否存在
1755
1313
  */
1756
- getStatistics(): any;
1314
+ tableExists(name?: string, tableName: string): boolean;
1757
1315
 
1758
1316
  /**
1759
- * 获取最新短信
1760
- * @returns 最新短信对象或 null
1317
+ * 列出数据库中的所有表
1318
+ * @param name 数据库名称(默认为 'default')
1319
+ * @returns 表名数组
1761
1320
  */
1762
- getLatest(): any;
1321
+ getTables(name?: string): any;
1763
1322
 
1764
1323
  /**
1765
- * 获取未读短信
1766
- * @returns 未读短信对象数组
1324
+ * 获取表的列信息
1325
+ * @param name 数据库名称(默认为 'default')
1326
+ * @param tableName 表名
1327
+ * @returns 列信息对象数组
1767
1328
  */
1768
- getUnread(): any;
1769
-
1770
- }
1329
+ getTableInfo(name?: string, tableName: string): any;
1771
1330
 
1772
- declare const sms: Sms;
1773
-
1774
- interface Sql {
1775
1331
  /**
1776
- * 执行 SELECT 查询并返回结果
1777
- * @param dbPath 数据库路径
1778
- * @param sql SQL 语句
1779
- * @param params 参数列表
1780
- * @returns 查询结果数组
1332
+ * 开始数据库事务
1333
+ * @param name 数据库名称(默认为 'default')
1334
+ * @returns 事务是否成功开始
1781
1335
  */
1782
- query(dbPath: string, sql: string, params: any[]): any[];
1336
+ beginTransaction(name?: string): boolean;
1783
1337
 
1784
1338
  /**
1785
- * 执行 INSERT/UPDATE/DELETE
1786
- * @param dbPath 数据库路径
1787
- * @param sql SQL 语句
1788
- * @param params 参数列表
1789
- * @returns 执行结果对象
1339
+ * 提交当前事务
1340
+ * @param name 数据库名称(默认为 'default')
1341
+ * @returns 提交是否成功
1790
1342
  */
1791
- execute(dbPath: string, sql: string, params: any[]): any;
1343
+ commit(name?: string): boolean;
1792
1344
 
1793
1345
  /**
1794
- * 列出数据库中的所有表
1795
- * @param dbPath 数据库路径
1796
- * @returns 表名数组
1346
+ * 回滚当前事务
1347
+ * @param name 数据库名称(默认为 'default')
1348
+ * @returns 回滚是否成功
1797
1349
  */
1798
- tables(dbPath: string): any;
1350
+ rollback(name?: string): boolean;
1799
1351
 
1800
1352
  /**
1801
- * 获取表结构
1802
- * @param dbPath 数据库路径
1803
- * @param tableName 表名
1804
- * @returns 表结构 SQL
1353
+ * 通过回收未使用的空间来优化数据库
1354
+ * @param name 数据库名称(默认为 'default')
1355
+ * @returns vacuum 操作是否成功
1805
1356
  */
1806
- schema(dbPath: string, tableName: string): string;
1357
+ vacuum(name?: string): boolean;
1807
1358
 
1808
1359
  }
1809
1360
 
@@ -1813,263 +1364,223 @@ interface Shortcuts {
1813
1364
  /**
1814
1365
  * 运行快捷指令
1815
1366
  * @param name 快捷指令名称
1816
- * @returns 快捷指令执行结果
1817
- */
1818
- run(name: string): any;
1819
-
1820
- /**
1821
- * 运行快捷指令(带文本输入)
1822
- * @param name 快捷指令名称
1823
- * @param text 输入文本
1824
- * @returns 快捷指令执行结果
1367
+ * @param input 输入文本(可选)
1368
+ * @returns 是否成功打开快捷指令
1825
1369
  */
1826
- runWithText(name: string, text: string): any;
1370
+ run(name: string, input?: string): boolean;
1827
1371
 
1828
1372
  /**
1829
- * 运行快捷指令(剪贴板输入)
1373
+ * 运行快捷指令(带 x-callback-url 回调)
1830
1374
  * @param name 快捷指令名称
1375
+ * @param input 输入文本(可选)
1376
+ * @returns 是否成功打开快捷指令
1831
1377
  */
1832
- runWithClipboard(name: string): any;
1833
-
1834
- /**
1835
- * 运行快捷指令(高级选项)
1836
- * @param name 快捷指令名称
1837
- * @param options 选项 { input, showOutput }
1838
- */
1839
- runAdvanced(name: string, options: Record<string, any>): any;
1378
+ runWithCallback(name: string, input?: string): boolean;
1840
1379
 
1841
1380
  /**
1842
1381
  * 打开快捷指令 App
1843
- * @returns 无返回值
1844
- */
1845
- openApp(): void;
1846
-
1847
- /**
1848
- * 打开快捷指令库
1849
- * @returns 无返回值
1382
+ * @returns 是否成功打开
1850
1383
  */
1851
- openGallery(): void;
1384
+ open(): boolean;
1852
1385
 
1853
1386
  /**
1854
- * 打开指定快捷指令
1855
- * @param name 快捷指令名称
1856
- * @returns 无返回值
1387
+ * 打开快捷指令中心/库
1388
+ * @returns 是否成功打开
1857
1389
  */
1858
- openShortcut(name: string): void;
1390
+ openGallery(): boolean;
1859
1391
 
1860
1392
  /**
1861
1393
  * 创建新快捷指令
1862
- * @returns 无返回值
1394
+ * @param name 快捷指令名称
1395
+ * @returns 是否成功打开创建界面
1863
1396
  */
1864
- createNew(): void;
1397
+ create(name: string): boolean;
1865
1398
 
1866
1399
  /**
1867
1400
  * 通过链接导入快捷指令
1868
1401
  * @param url 快捷指令 URL
1869
- * @returns 无返回值
1402
+ * @returns 是否成功打开导入界面
1870
1403
  */
1871
- importFromUrl(url: string): void;
1404
+ import(url: string): boolean;
1872
1405
 
1873
1406
  /**
1874
- * 检查是否安装快捷指令
1407
+ * 检查是否安装快捷指令 App
1408
+ * @returns 是否可用
1875
1409
  */
1876
1410
  isAvailable(): boolean;
1877
1411
 
1878
1412
  /**
1879
- * 获取常用快捷指令模板
1413
+ * 捐赠 Siri 建议
1414
+ * @param title 建议标题/调用短语
1415
+ * @param identifier 交互标识符
1416
+ * @returns 是否成功捐赠
1880
1417
  */
1881
- getCommonShortcuts(): any;
1882
-
1883
- }
1884
-
1885
- declare const shortcuts: Shortcuts;
1886
-
1887
- interface Bluetooth {
1888
- /**
1889
- * 蓝牙是否开启
1890
- */
1891
- isEnabled(): boolean;
1892
-
1893
- /**
1894
- * 获取蓝牙状态
1895
- */
1896
- getStatus(): any;
1418
+ donateInteraction(title: string, identifier: string): boolean;
1897
1419
 
1898
1420
  /**
1899
- * 设置蓝牙开关
1900
- * @param enabled 是否开启
1901
- * @returns 无返回值
1902
- */
1903
- setEnabled(enabled: boolean): void;
1904
-
1905
- /**
1906
- * 打开蓝牙
1907
- * @returns 无返回值
1421
+ * 删除指定的 Siri 建议
1422
+ * @param identifier 交互标识符
1423
+ * @returns 是否成功删除
1908
1424
  */
1909
- turnOn(): void;
1425
+ deleteInteraction(identifier: string): boolean;
1910
1426
 
1911
1427
  /**
1912
- * 关闭蓝牙
1913
- * @returns 无返回值
1428
+ * 删除所有 Siri 建议
1429
+ * @returns 是否成功删除
1914
1430
  */
1915
- turnOff(): void;
1431
+ deleteAllInteractions(): boolean;
1916
1432
 
1917
- /**
1918
- * 获取配对设备
1919
- */
1920
- getPairedDevices(): any;
1433
+ }
1921
1434
 
1922
- /**
1923
- * 获取已连接设备
1924
- */
1925
- getConnectedDevices(): any;
1435
+ declare const shortcuts: Shortcuts;
1926
1436
 
1437
+ interface System {
1927
1438
  /**
1928
- * 连接设备
1929
- * @param id 设备 UUID
1439
+ * 检查 WiFi 是否开启
1440
+ * @returns WiFi 是否开启
1930
1441
  */
1931
- connectDevice(id: string): any;
1442
+ isWiFiEnabled(): boolean;
1932
1443
 
1933
1444
  /**
1934
- * 断开设备
1935
- * @param id 设备 UUID
1445
+ * 设置 WiFi 开关 (TrollStore 权限)
1446
+ * @param enabled 是否开启 WiFi
1447
+ * @returns 是否设置成功
1936
1448
  */
1937
- disconnectDevice(id: string): any;
1449
+ setWiFi(enabled: boolean): boolean;
1938
1450
 
1939
1451
  /**
1940
- * 开始扫描
1941
- * @returns 无返回值
1452
+ * 检查蓝牙是否开启
1453
+ * @returns 蓝牙是否开启
1942
1454
  */
1943
- startScan(): void;
1455
+ isBluetoothEnabled(): boolean;
1944
1456
 
1945
1457
  /**
1946
- * 停止扫描
1947
- * @returns 无返回值
1458
+ * 设置蓝牙开关 (TrollStore 权限)
1459
+ * @param enabled 是否开启蓝牙
1460
+ * @returns 是否设置成功
1948
1461
  */
1949
- stopScan(): void;
1462
+ setBluetooth(enabled: boolean): boolean;
1950
1463
 
1951
1464
  /**
1952
- * 打开蓝牙设置
1953
- * @returns 无返回值
1465
+ * 检查飞行模式是否开启
1466
+ * @returns 飞行模式是否开启
1954
1467
  */
1955
- openSettings(): void;
1956
-
1957
- }
1468
+ isAirplaneModeEnabled(): boolean;
1958
1469
 
1959
- declare const bluetooth: Bluetooth;
1960
-
1961
- interface Webview {
1962
1470
  /**
1963
- * 打开网页并等待加载
1964
- * @param url 网页 URL
1471
+ * 设置飞行模式 (TrollStore 权限)
1472
+ * @param enabled 是否开启飞行模式
1473
+ * @returns 是否设置成功
1965
1474
  */
1966
- open(url: string): any;
1475
+ setAirplaneMode(enabled: boolean): boolean;
1967
1476
 
1968
1477
  /**
1969
- * 加载 HTML 内容
1970
- * @param html HTML 字符串
1971
- * @param baseURL 基础 URL
1478
+ * 检查勿扰模式是否开启
1479
+ * @returns 勿扰模式是否开启
1972
1480
  */
1973
- loadHTML(html: string, baseURL: string): any;
1481
+ isDoNotDisturbEnabled(): boolean;
1974
1482
 
1975
1483
  /**
1976
- * 执行页面内 JavaScript
1977
- * @param script JS 代码
1484
+ * 设置勿扰模式
1485
+ * @param enabled 是否开启勿扰模式
1486
+ * @returns 是否设置成功
1978
1487
  */
1979
- evaluate(script: string): any;
1488
+ setDoNotDisturb(enabled: boolean): boolean;
1980
1489
 
1981
1490
  /**
1982
- * 获取页面标题
1491
+ * 获取系统音量
1492
+ * @param category 音量类别: 'System', 'Ringer', 'Media',默认 'Media'
1493
+ * @returns 当前音量 (0.0 - 1.0)
1983
1494
  */
1984
- getTitle(): any;
1495
+ getVolume(category?: string): number;
1985
1496
 
1986
1497
  /**
1987
- * 获取当前 URL
1498
+ * 设置系统音量
1499
+ * @param level 音量级别 (0.0 - 1.0)
1500
+ * @param category 音量类别: 'System', 'Ringer', 'Media',默认 'Media'
1501
+ * @returns 是否设置成功
1988
1502
  */
1989
- getURL(): any;
1503
+ setVolume(level: number, category?: string): boolean;
1990
1504
 
1991
1505
  /**
1992
- * 获取页面 HTML 源码
1506
+ * 检查设备是否有闪光灯
1507
+ * @returns 是否有闪光灯
1993
1508
  */
1994
- getHTML(): any;
1509
+ hasFlashlight(): boolean;
1995
1510
 
1996
1511
  /**
1997
- * 关闭网页视图
1998
- * @returns 无返回值
1512
+ * 检查闪光灯是否开启
1513
+ * @returns 闪光灯是否开启
1999
1514
  */
2000
- close(): void;
1515
+ isFlashlightOn(): boolean;
2001
1516
 
2002
1517
  /**
2003
- * 检查是否已打开
1518
+ * 设置闪光灯
1519
+ * @param enabled 是否开启闪光灯
1520
+ * @param level 亮度级别 (0.0 - 1.0),默认 1.0
1521
+ * @returns 是否设置成功
2004
1522
  */
2005
- isOpen(): boolean;
1523
+ setFlashlight(enabled: boolean, level?: number): boolean;
2006
1524
 
2007
1525
  /**
2008
- * 截取页面截图
1526
+ * 检查方向锁定是否开启
1527
+ * @returns 方向锁定是否开启
2009
1528
  */
2010
- screenshot(): any;
1529
+ isOrientationLockEnabled(): boolean;
2011
1530
 
2012
- }
2013
-
2014
- declare const webview: Webview;
2015
-
2016
- interface Memo {
2017
1531
  /**
2018
- * 创建备忘录
2019
- * @param title 备忘录标题
2020
- * @param content 备忘录内容
2021
- * @param tags 标签列表
2022
- * @returns { success: 是否成功, id: 备忘录ID, memo: 备忘录对象 }
1532
+ * 设置方向锁定
1533
+ * @param enabled 是否开启方向锁定
1534
+ * @returns 是否设置成功
2023
1535
  */
2024
- create(title: string, content: string, tags: any): Record<string, any>;
1536
+ setOrientationLock(enabled: boolean): boolean;
2025
1537
 
2026
1538
  /**
2027
- * 获取所有备忘录
2028
- * @returns 备忘录数组 [{ id: ID, title: 标题, content: 内容, createdAt: 创建时间, updatedAt: 更新时间, tags: 标签 }]
1539
+ * 检查低电量模式是否开启
1540
+ * @returns 低电量模式是否开启
2029
1541
  */
2030
- getAll(): any;
1542
+ isLowPowerModeEnabled(): boolean;
2031
1543
 
2032
1544
  /**
2033
- * 根据 ID 获取备忘录
2034
- * @param id 备忘录 ID
2035
- * @returns 备忘录对象或 null(不存在时)
1545
+ * 设置低电量模式 (TrollStore 权限)
1546
+ * @param enabled 是否开启低电量模式
1547
+ * @returns 是否设置成功
2036
1548
  */
2037
- getById(id: string): any;
1549
+ setLowPowerMode(enabled: boolean): boolean;
2038
1550
 
2039
1551
  /**
2040
- * 搜索备忘录(标题和内容)
2041
- * @param keyword 搜索关键词
2042
- * @returns 匹配的备忘录数组
1552
+ * 检查位置服务是否开启
1553
+ * @returns 位置服务是否开启
2043
1554
  */
2044
- search(keyword: string): any;
1555
+ isLocationServicesEnabled(): boolean;
2045
1556
 
2046
1557
  /**
2047
- * 更新备忘录
2048
- * @param id 备忘录 ID
2049
- * @param data 更新数据 { title?: 新标题, content?: 新内容, tags?: 新标签 }
2050
- * @returns { success: 是否成功, id: 备忘录ID }
1558
+ * 设置位置服务 (TrollStore 权限)
1559
+ * @param enabled 是否开启位置服务
1560
+ * @returns 是否设置成功
2051
1561
  */
2052
- update(id: string, data: Record<string, any>): Record<string, any>;
1562
+ setLocationServices(enabled: boolean): boolean;
2053
1563
 
2054
1564
  /**
2055
- * 删除备忘录
2056
- * @param id 备忘录 ID
2057
- * @returns { success: 是否成功, id: 已删除的ID }
1565
+ * 检查蜂窝数据是否开启
1566
+ * @returns 蜂窝数据是否开启
2058
1567
  */
2059
- delete(id: string): Record<string, any>;
1568
+ isCellularDataEnabled(): boolean;
2060
1569
 
2061
1570
  /**
2062
- * 清空所有备忘录
2063
- * @returns { success: 是否成功 }
1571
+ * 设置蜂窝数据 (TrollStore 权限)
1572
+ * @param enabled 是否开启蜂窝数据
1573
+ * @returns 是否设置成功
2064
1574
  */
2065
- clear(): Record<string, any>;
1575
+ setCellularData(enabled: boolean): boolean;
2066
1576
 
2067
1577
  /**
2068
- * 获取备忘录数量
2069
- * @returns 备忘录总数
1578
+ * 打开系统设置
1579
+ * @param section 设置页面: 'WIFI', 'BLUETOOTH', 'CELLULAR', 'VPN', 'GENERAL', 'DISPLAY', 'SOUND', 'NOTIFICATION', 'PRIVACY', 'BATTERY', 'STORAGE', 'WALLPAPER', 'SIRI', 'ACCESSIBILITY', 'DND', 'SCREEN_TIME', 'PASSWORDS'
1580
+ * @returns 是否成功打开
2070
1581
  */
2071
- count(): number;
1582
+ openSettings(section?: string): boolean;
2072
1583
 
2073
1584
  }
2074
1585
 
2075
- declare const memo: Memo;
1586
+ declare const system: System;