@kingstinct/react-native-healthkit 13.3.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/ReactNativeHealthkit.podspec +1 -0
  2. package/app.plugin.ts +40 -2
  3. package/ios/BackgroundDeliveryManager.swift +196 -0
  4. package/ios/CategoryTypeModule.swift +1 -1
  5. package/ios/CoreModule.swift +24 -0
  6. package/ios/CorrelationTypeModule.swift +2 -35
  7. package/ios/ElectrocardiogramModule.swift +2 -34
  8. package/ios/HeartbeatSeriesModule.swift +2 -34
  9. package/ios/MedicationModule.swift +3 -35
  10. package/ios/PredicateHelpers.swift +2 -2
  11. package/ios/QuantityTypeModule.swift +11 -11
  12. package/ios/Serializers.swift +58 -90
  13. package/ios/StateOfMindModule.swift +2 -34
  14. package/ios/WorkoutProxy.swift +4 -149
  15. package/ios/generated/HealthkitGenerated.swift +52 -0
  16. package/lib/commonjs/generated/healthkit.generated.js +745 -0
  17. package/lib/commonjs/healthkit.ios.js +51 -17
  18. package/lib/commonjs/healthkit.js +120 -34
  19. package/lib/commonjs/specs/QuantityTypeModule.nitro.js +1 -0
  20. package/lib/commonjs/type-tests/generated-typing.js +2 -0
  21. package/lib/commonjs/types/CategoryType.js +19 -99
  22. package/lib/commonjs/types/Medication.js +2 -0
  23. package/lib/commonjs/types/MetadataEnums.js +17 -0
  24. package/lib/commonjs/types/QuantityType.js +4 -15
  25. package/lib/commonjs/types/WeatherCondition.js +2 -32
  26. package/lib/commonjs/types/Workouts.js +3 -98
  27. package/lib/commonjs/types/index.js +2 -0
  28. package/lib/module/generated/healthkit.generated.js +742 -0
  29. package/lib/module/healthkit.ios.js +49 -15
  30. package/lib/module/healthkit.js +94 -20
  31. package/lib/module/specs/QuantityTypeModule.nitro.js +1 -0
  32. package/lib/module/type-tests/generated-typing.js +1 -0
  33. package/lib/module/types/CategoryType.js +2 -98
  34. package/lib/module/types/Medication.js +1 -0
  35. package/lib/module/types/MetadataEnums.js +1 -0
  36. package/lib/module/types/QuantityType.js +2 -14
  37. package/lib/module/types/WeatherCondition.js +1 -32
  38. package/lib/module/types/Workouts.js +2 -98
  39. package/lib/module/types/index.js +2 -0
  40. package/lib/typescript/generated/healthkit.generated.d.ts +1006 -0
  41. package/lib/typescript/healthkit.d.ts +39 -36
  42. package/lib/typescript/healthkit.ios.d.ts +64 -53
  43. package/lib/typescript/hooks/useMostRecentQuantitySample.d.ts +3 -2
  44. package/lib/typescript/hooks/useMostRecentWorkout.d.ts +2 -2
  45. package/lib/typescript/hooks/useQuantitySampleById.d.ts +5 -4
  46. package/lib/typescript/hooks/useStatisticsForQuantity.d.ts +2 -2
  47. package/lib/typescript/hooks/useSubscribeToQuantitySamples.d.ts +1 -1
  48. package/lib/typescript/modules.d.ts +2 -2
  49. package/lib/typescript/specs/CategoryTypeModule.nitro.d.ts +3 -3
  50. package/lib/typescript/specs/CoreModule.nitro.d.ts +15 -0
  51. package/lib/typescript/specs/QuantityTypeModule.nitro.d.ts +20 -9
  52. package/lib/typescript/type-tests/generated-typing.d.ts +1 -0
  53. package/lib/typescript/types/CategoryType.d.ts +10 -104
  54. package/lib/typescript/types/CategoryTypeIdentifier.d.ts +1 -61
  55. package/lib/typescript/types/CorrelationType.d.ts +8 -2
  56. package/lib/typescript/types/ElectrocardiogramSample.d.ts +8 -1
  57. package/lib/typescript/types/HeartbeatSeries.d.ts +8 -1
  58. package/lib/typescript/types/InterfaceVerification.d.ts +14 -1
  59. package/lib/typescript/types/Medication.d.ts +10 -0
  60. package/lib/typescript/types/MetadataEnums.d.ts +1 -0
  61. package/lib/typescript/types/QuantitySample.d.ts +9 -1
  62. package/lib/typescript/types/QuantityType.d.ts +14 -18
  63. package/lib/typescript/types/QuantityTypeIdentifier.d.ts +1 -671
  64. package/lib/typescript/types/QueryOptions.d.ts +8 -4
  65. package/lib/typescript/types/Shared.d.ts +12 -41
  66. package/lib/typescript/types/StateOfMind.d.ts +8 -1
  67. package/lib/typescript/types/Subscriptions.d.ts +11 -11
  68. package/lib/typescript/types/WeatherCondition.d.ts +1 -30
  69. package/lib/typescript/types/Workouts.d.ts +20 -104
  70. package/lib/typescript/types/index.d.ts +2 -0
  71. package/lib/typescript/utils/getMostRecentQuantitySample.d.ts +2 -1
  72. package/lib/typescript/utils/getMostRecentWorkout.d.ts +2 -1
  73. package/lib/typescript/utils/getPreferredUnit.d.ts +2 -1
  74. package/lib/typescript/utils/getQuantitySampleById.d.ts +2 -1
  75. package/lib/typescript/utils/subscribeToQuantitySamples.d.ts +1 -1
  76. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.hpp +55 -109
  77. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp +12 -18
  78. package/nitrogen/generated/ios/c++/HybridCategoryTypeModuleSpecSwift.hpp +5 -14
  79. package/nitrogen/generated/ios/c++/HybridCoreModuleSpecSwift.hpp +18 -2
  80. package/nitrogen/generated/ios/c++/HybridCorrelationTypeModuleSpecSwift.hpp +1 -13
  81. package/nitrogen/generated/ios/c++/HybridElectrocardiogramModuleSpecSwift.hpp +1 -13
  82. package/nitrogen/generated/ios/c++/HybridHeartbeatSeriesModuleSpecSwift.hpp +2 -14
  83. package/nitrogen/generated/ios/c++/HybridMedicationModuleSpecSwift.hpp +1 -13
  84. package/nitrogen/generated/ios/c++/HybridQuantityTypeModuleSpecSwift.hpp +19 -28
  85. package/nitrogen/generated/ios/c++/HybridStateOfMindModuleSpecSwift.hpp +2 -14
  86. package/nitrogen/generated/ios/c++/HybridWorkoutProxySpecSwift.hpp +3 -116
  87. package/nitrogen/generated/ios/swift/CategorySample.swift +4 -329
  88. package/nitrogen/generated/ios/swift/CategoryTypeIdentifier.swift +112 -108
  89. package/nitrogen/generated/ios/swift/CategoryTypeIdentifierWriteable.swift +292 -0
  90. package/nitrogen/generated/ios/swift/CorrelationSample.swift +4 -347
  91. package/nitrogen/generated/ios/swift/ElectrocardiogramSample.swift +4 -329
  92. package/nitrogen/generated/ios/swift/FilterForWorkouts.swift +30 -30
  93. package/nitrogen/generated/ios/swift/FilterForWorkoutsBase.swift +30 -30
  94. package/nitrogen/generated/ios/swift/GeneralForm.swift +4 -4
  95. package/nitrogen/generated/ios/swift/HeartbeatSeriesSample.swift +4 -329
  96. package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec.swift +1 -1
  97. package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec_cxx.swift +1 -1
  98. package/nitrogen/generated/ios/swift/HybridCoreModuleSpec.swift +2 -0
  99. package/nitrogen/generated/ios/swift/HybridCoreModuleSpec_cxx.swift +38 -0
  100. package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec.swift +6 -6
  101. package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec_cxx.swift +6 -6
  102. package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec.swift +1 -27
  103. package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec_cxx.swift +2 -340
  104. package/nitrogen/generated/ios/swift/MedicationDoseEvent.swift +4 -329
  105. package/nitrogen/generated/ios/swift/ObjectTypeIdentifier.swift +492 -492
  106. package/nitrogen/generated/ios/swift/QuantitySample.swift +4 -329
  107. package/nitrogen/generated/ios/swift/QuantityTypeIdentifier.swift +380 -384
  108. package/nitrogen/generated/ios/swift/QuantityTypeIdentifierWriteable.swift +372 -376
  109. package/nitrogen/generated/ios/swift/{QueryOptionsWithAnchorAndUnit.swift → QueryOptionsWithAnchorAndStringUnit.swift} +5 -5
  110. package/nitrogen/generated/ios/swift/{QueryOptionsWithSortOrderAndUnit.swift → QueryOptionsWithSortOrderAndStringUnit.swift} +5 -5
  111. package/nitrogen/generated/ios/swift/QueryStatisticsResponseFromSingleSource.swift +37 -37
  112. package/nitrogen/generated/ios/swift/SampleTypeIdentifier.swift +492 -492
  113. package/nitrogen/generated/ios/swift/SampleTypeIdentifierWriteable.swift +482 -486
  114. package/nitrogen/generated/ios/swift/StateOfMindSample.swift +4 -329
  115. package/nitrogen/generated/ios/swift/{StatisticsQueryOptions.swift → StatisticsQueryOptionsWithStringUnit.swift} +5 -5
  116. package/nitrogen/generated/ios/swift/WorkoutEvent.swift +20 -2
  117. package/nitrogen/generated/ios/swift/WorkoutSample.swift +4 -402
  118. package/nitrogen/generated/shared/c++/CategorySample.hpp +8 -100
  119. package/nitrogen/generated/shared/c++/CategoryTypeIdentifier.hpp +153 -149
  120. package/nitrogen/generated/shared/c++/CategoryTypeIdentifierWriteable.hpp +328 -0
  121. package/nitrogen/generated/shared/c++/CorrelationSample.hpp +9 -105
  122. package/nitrogen/generated/shared/c++/ElectrocardiogramSample.hpp +7 -99
  123. package/nitrogen/generated/shared/c++/FilterForWorkouts.hpp +13 -13
  124. package/nitrogen/generated/shared/c++/FilterForWorkoutsBase.hpp +13 -13
  125. package/nitrogen/generated/shared/c++/GeneralForm.hpp +7 -7
  126. package/nitrogen/generated/shared/c++/HeartbeatSeriesSample.hpp +8 -100
  127. package/nitrogen/generated/shared/c++/HybridCategoryTypeModuleSpec.hpp +5 -2
  128. package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.cpp +2 -0
  129. package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.hpp +4 -2
  130. package/nitrogen/generated/shared/c++/HybridQuantityTypeModuleSpec.hpp +15 -15
  131. package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.cpp +1 -27
  132. package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.hpp +2 -37
  133. package/nitrogen/generated/shared/c++/MedicationDoseEvent.hpp +7 -99
  134. package/nitrogen/generated/shared/c++/ObjectTypeIdentifier.hpp +565 -565
  135. package/nitrogen/generated/shared/c++/QuantitySample.hpp +8 -100
  136. package/nitrogen/generated/shared/c++/QuantityTypeIdentifier.hpp +407 -411
  137. package/nitrogen/generated/shared/c++/QuantityTypeIdentifierWriteable.hpp +398 -402
  138. package/nitrogen/generated/shared/c++/{QueryOptionsWithAnchorAndUnit.hpp → QueryOptionsWithAnchorAndStringUnit.hpp} +11 -11
  139. package/nitrogen/generated/shared/c++/{QueryOptionsWithSortOrderAndUnit.hpp → QueryOptionsWithSortOrderAndStringUnit.hpp} +11 -11
  140. package/nitrogen/generated/shared/c++/QueryStatisticsResponseFromSingleSource.hpp +12 -12
  141. package/nitrogen/generated/shared/c++/SampleTypeIdentifier.hpp +559 -559
  142. package/nitrogen/generated/shared/c++/SampleTypeIdentifierWriteable.hpp +541 -545
  143. package/nitrogen/generated/shared/c++/StateOfMindSample.hpp +8 -100
  144. package/nitrogen/generated/shared/c++/{StatisticsQueryOptions.hpp → StatisticsQueryOptionsWithStringUnit.hpp} +11 -11
  145. package/nitrogen/generated/shared/c++/WorkoutEvent.hpp +8 -2
  146. package/nitrogen/generated/shared/c++/WorkoutSample.hpp +7 -120
  147. package/package.json +5 -2
  148. package/src/generated/healthkit-schema.json +3680 -0
  149. package/src/generated/healthkit.generated.ts +1307 -0
  150. package/src/healthkit.ios.ts +225 -19
  151. package/src/healthkit.ts +181 -55
  152. package/src/hooks/useMostRecentQuantitySample.ts +6 -5
  153. package/src/hooks/useMostRecentWorkout.ts +2 -2
  154. package/src/hooks/useQuantitySampleById.ts +6 -5
  155. package/src/hooks/useStatisticsForQuantity.ts +2 -1
  156. package/src/hooks/useSubscribeToQuantitySamples.ts +1 -1
  157. package/src/modules.ts +7 -2
  158. package/src/specs/CategoryTypeModule.nitro.ts +8 -5
  159. package/src/specs/CoreModule.nitro.ts +20 -0
  160. package/src/specs/QuantityTypeModule.nitro.ts +81 -7
  161. package/src/test-setup.ts +2 -0
  162. package/src/type-tests/generated-typing.ts +133 -0
  163. package/src/types/CategoryType.ts +52 -148
  164. package/src/types/CategoryTypeIdentifier.ts +5 -134
  165. package/src/types/CorrelationType.ts +13 -3
  166. package/src/types/ElectrocardiogramSample.ts +13 -1
  167. package/src/types/HeartbeatSeries.ts +13 -1
  168. package/src/types/InterfaceVerification.ts +38 -1
  169. package/src/types/Medication.ts +19 -0
  170. package/src/types/MetadataEnums.ts +15 -0
  171. package/src/types/QuantitySample.ts +14 -2
  172. package/src/types/QuantityType.ts +22 -122
  173. package/src/types/QuantityTypeIdentifier.ts +5 -772
  174. package/src/types/QueryOptions.ts +11 -4
  175. package/src/types/Shared.ts +22 -49
  176. package/src/types/StateOfMind.ts +13 -1
  177. package/src/types/Subscriptions.ts +19 -13
  178. package/src/types/WeatherCondition.ts +1 -31
  179. package/src/types/Workouts.ts +46 -108
  180. package/src/types/index.ts +2 -0
  181. package/src/utils/getMostRecentQuantitySample.ts +4 -3
  182. package/src/utils/getMostRecentWorkout.ts +5 -2
  183. package/src/utils/getPreferredUnit.ts +5 -4
  184. package/src/utils/getQuantitySampleById.ts +4 -3
  185. package/src/utils/subscribeToQuantitySamples.ts +5 -3
  186. package/nitrogen/generated/ios/swift/HeartRateMotionContext.swift +0 -44
  187. package/nitrogen/generated/ios/swift/InsulinDeliveryReason.swift +0 -40
  188. package/nitrogen/generated/ios/swift/WeatherCondition.swift +0 -144
  189. package/nitrogen/generated/shared/c++/HeartRateMotionContext.hpp +0 -67
  190. package/nitrogen/generated/shared/c++/InsulinDeliveryReason.hpp +0 -62
  191. package/nitrogen/generated/shared/c++/WeatherCondition.hpp +0 -88
@@ -1,18 +1,21 @@
1
1
  import type ReactNativeHealthkit from './healthkit.ios';
2
2
  import type { SourceProxy } from './specs/SourceProxy.nitro';
3
- import type { WorkoutProxy } from './specs/WorkoutProxy.nitro';
4
3
  import { AuthorizationRequestStatus, AuthorizationStatus } from './types/Auth';
5
- import type { CategorySamplesWithAnchorResponseTyped, CategorySampleTyped } from './types/CategoryType';
6
- import type { CategoryTypeIdentifier } from './types/CategoryTypeIdentifier';
4
+ import type { CategorySamplesWithAnchorResponseTyped, CategorySampleTyped, CategoryValueForIdentifier, MetadataForCategoryIdentifier } from './types/CategoryType';
5
+ import type { CategoryTypeIdentifier, CategoryTypeIdentifierWriteable } from './types/CategoryTypeIdentifier';
7
6
  import { BiologicalSex, BloodType, FitzpatrickSkinType, WheelchairUse } from './types/Characteristics';
8
- import type { QuantitySample } from './types/QuantitySample';
9
- import type { QueryOptionsWithAnchor, QueryOptionsWithSortOrder } from './types/QueryOptions';
7
+ import type { MetadataForQuantityIdentifier, QuantitySampleTyped } from './types/QuantitySample';
8
+ import type { IntervalComponents, QuantitySamplesWithAnchorResponseTyped, QueryStatisticsResponse, QueryStatisticsResponseFromSingleSource, StatisticsOptions, StatisticsQueryOptions, UnitForIdentifier } from './types/QuantityType';
9
+ import type { QuantityTypeIdentifier, QuantityTypeIdentifierWriteable } from './types/QuantityTypeIdentifier';
10
+ import type { QueryOptionsWithAnchor, QueryOptionsWithAnchorAndUnit, QueryOptionsWithSortOrder, QueryOptionsWithSortOrderAndUnit } from './types/QueryOptions';
10
11
  export * from './types';
11
12
  export declare const authorizationStatusFor: (type: import("./types").ObjectTypeIdentifier) => AuthorizationStatus;
12
13
  export declare const disableAllBackgroundDelivery: () => Promise<boolean>;
13
14
  export declare const disableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier) => Promise<boolean>;
14
15
  export declare const enableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier, updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
15
- export declare const getPreferredUnits: (identifiers: readonly import("./types").QuantityTypeIdentifier[], forceUpdate?: boolean) => Promise<import("./types").IdentifierWithUnit[]>;
16
+ export declare const configureBackgroundTypes: (typeIdentifiers: string[], updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
17
+ export declare const clearBackgroundTypes: () => Promise<boolean>;
18
+ export declare const getPreferredUnits: (identifiers: readonly QuantityTypeIdentifier[], forceUpdate?: boolean) => Promise<import("./types").IdentifierWithUnit[]>;
16
19
  export declare const getRequestStatusForAuthorization: (toCheck: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise<AuthorizationRequestStatus>;
17
20
  export declare const isHealthDataAvailable: () => boolean;
18
21
  export declare const isHealthDataAvailableAsync: () => Promise<boolean>;
@@ -32,37 +35,37 @@ export declare const getBloodType: () => BloodType;
32
35
  export declare const getDateOfBirth: () => Date | undefined;
33
36
  export declare const getFitzpatrickSkinType: () => FitzpatrickSkinType;
34
37
  export declare const getWheelchairUse: () => WheelchairUse;
35
- export declare const queryQuantitySamples: (identifier: import("./types").QuantityTypeIdentifier, options: import("./types").QueryOptionsWithSortOrderAndUnit) => Promise<readonly QuantitySample[]>;
36
- export declare const queryQuantitySamplesWithAnchor: (identifier: import("./types").QuantityTypeIdentifier, options: import("./types").QueryOptionsWithAnchorAndUnit) => Promise<import("./types").QuantitySamplesWithAnchorResponse>;
37
- export declare const queryStatisticsForQuantity: (identifier: import("./types").QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponse>;
38
- export declare const queryStatisticsCollectionForQuantity: (identifier: import("./types").QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponse[]>;
39
- export declare const queryStatisticsForQuantitySeparateBySource: (identifier: import("./types").QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponseFromSingleSource[]>;
40
- export declare const queryStatisticsCollectionForQuantitySeparateBySource: (identifier: import("./types").QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponseFromSingleSource[]>;
41
- export declare const saveQuantitySample: (identifier: import("./types").QuantityTypeIdentifierWriteable, unit: string, value: number, start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<QuantitySample | undefined>;
42
- export declare const isQuantityCompatibleWithUnit: (identifier: import("./types").QuantityTypeIdentifier, unit: string) => boolean;
38
+ export declare function queryQuantitySamples<T extends QuantityTypeIdentifier>(_identifier: T, _options: QueryOptionsWithSortOrderAndUnit<UnitForIdentifier<T>>): Promise<readonly QuantitySampleTyped<T>[]>;
39
+ export declare function queryQuantitySamplesWithAnchor<T extends QuantityTypeIdentifier>(_identifier: T, _options: QueryOptionsWithAnchorAndUnit<UnitForIdentifier<T>>): Promise<QuantitySamplesWithAnchorResponseTyped<T>>;
40
+ export declare function queryStatisticsForQuantity<T extends QuantityTypeIdentifier>(_identifier: T, _statistics: readonly StatisticsOptions[], _options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<QueryStatisticsResponse>;
41
+ export declare function queryStatisticsCollectionForQuantity<T extends QuantityTypeIdentifier>(_identifier: T, _statistics: readonly StatisticsOptions[], _anchorDate: Date, _intervalComponents: IntervalComponents, _options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<readonly QueryStatisticsResponse[]>;
42
+ export declare function queryStatisticsForQuantitySeparateBySource<T extends QuantityTypeIdentifier>(_identifier: T, _statistics: readonly StatisticsOptions[], _options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<QueryStatisticsResponseFromSingleSource[]>;
43
+ export declare function queryStatisticsCollectionForQuantitySeparateBySource<T extends QuantityTypeIdentifier>(_identifier: T, _statistics: readonly StatisticsOptions[], _anchorDate: Date, _intervalComponents: IntervalComponents, _options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<readonly QueryStatisticsResponseFromSingleSource[]>;
44
+ export declare function saveQuantitySample<T extends QuantityTypeIdentifierWriteable>(_identifier: T, _unit: UnitForIdentifier<T>, _value: number, _start: Date, _end: Date, _metadata?: MetadataForQuantityIdentifier<T>): Promise<QuantitySampleTyped<T> | undefined>;
45
+ export declare function isQuantityCompatibleWithUnit<T extends QuantityTypeIdentifier>(_identifier: T, _unit: UnitForIdentifier<T>): boolean;
43
46
  export declare function queryCategorySamples<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T, _options: QueryOptionsWithSortOrder): Promise<CategorySampleTyped<T>[]>;
44
47
  export declare function queryCategorySamplesWithAnchor<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T, _options: QueryOptionsWithAnchor): Promise<CategorySamplesWithAnchorResponseTyped<T>>;
45
- export declare const saveCategorySample: <T extends CategoryTypeIdentifier>(identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier<T>) => Promise<import("./types").CategorySample | undefined>;
46
- export declare const queryCorrelationSamples: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSample[]>;
47
- export declare const saveCorrelationSample: (typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").CorrelationSample | undefined>;
48
- export declare const queryHeartbeatSeriesSamples: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>;
49
- export declare const queryHeartbeatSeriesSamplesWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>;
50
- export declare const queryElectrocardiogramSamples: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSample[]>;
51
- export declare const queryElectrocardiogramSamplesWithAnchor: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponse>;
52
- export declare const queryWorkoutSamples: (options: import("./types").WorkoutQueryOptions) => Promise<WorkoutProxy[]>;
53
- export declare const queryWorkoutSamplesWithAnchor: (options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>;
54
- export declare const saveWorkoutSample: (workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<WorkoutProxy>;
48
+ export declare function saveCategorySample<T extends CategoryTypeIdentifierWriteable>(_identifier: T, _value: CategoryValueForIdentifier<T>, _startDate: Date, _endDate: Date, _metadata?: MetadataForCategoryIdentifier<T>): Promise<CategorySampleTyped<T> | undefined>;
49
+ export declare const queryCorrelationSamples: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSampleTyped[]>;
50
+ export declare const saveCorrelationSample: (typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap | undefined) => Promise<import("./types").CorrelationSampleTyped | undefined>;
51
+ export declare const queryHeartbeatSeriesSamples: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSampleTyped[]>;
52
+ export declare const queryHeartbeatSeriesSamplesWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponseTyped>;
53
+ export declare const queryElectrocardiogramSamples: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSampleTyped[]>;
54
+ export declare const queryElectrocardiogramSamplesWithAnchor: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponseTyped>;
55
+ export declare const queryWorkoutSamples: (options: import("./types").WorkoutQueryOptions) => Promise<readonly import("./types").WorkoutProxyTyped[]>;
56
+ export declare const queryWorkoutSamplesWithAnchor: (options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponseTyped>;
57
+ export declare const saveWorkoutSample: (workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals | undefined, metadata?: import("react-native-nitro-modules").AnyMap | undefined) => Promise<import("./types").WorkoutProxyTyped>;
55
58
  export declare const startWatchApp: (workoutConfiguration: import("./types").WorkoutConfiguration) => Promise<boolean>;
56
- export declare const queryStateOfMindSamples: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSample[]>;
57
- export declare const queryStateOfMindSamplesWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponse>;
58
- export declare const queryCorrelationSamplesWithAnchor: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponse>;
59
- export declare const saveStateOfMindSample: (date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").StateOfMindSample | undefined>;
59
+ export declare const queryStateOfMindSamples: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSampleTyped[]>;
60
+ export declare const queryStateOfMindSamplesWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponseTyped>;
61
+ export declare const queryCorrelationSamplesWithAnchor: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponseTyped>;
62
+ export declare const saveStateOfMindSample: (date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap | undefined) => Promise<import("./types").StateOfMindSampleTyped | undefined>;
60
63
  export declare function getMostRecentCategorySample<T extends CategoryTypeIdentifier>(_identifier: T): Promise<CategorySampleTyped<T> | undefined>;
61
- export declare const getMostRecentQuantitySample: typeof import("./healthkit.ios").getMostRecentQuantitySample;
62
- export declare const getMostRecentWorkout: () => Promise<WorkoutProxy | undefined>;
63
- export declare const getPreferredUnit: (quantityType: import("./types").QuantityTypeIdentifier) => Promise<string>;
64
+ export declare function getMostRecentQuantitySample<T extends QuantityTypeIdentifier>(_identifier: T, _unit?: UnitForIdentifier<T>): Promise<QuantitySampleTyped<T> | undefined>;
65
+ export declare const getMostRecentWorkout: () => Promise<import("./types").WorkoutProxyTyped | undefined>;
66
+ export declare function getPreferredUnit<T extends QuantityTypeIdentifier>(_quantityType: T): Promise<UnitForIdentifier<T>>;
64
67
  export declare function useMostRecentCategorySample<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T): CategorySampleTyped<T> | undefined;
65
- export declare const useMostRecentQuantitySample: typeof import("./healthkit.ios").useMostRecentQuantitySample;
68
+ export declare function useMostRecentQuantitySample<T extends QuantityTypeIdentifier>(_identifier: T, _unit?: UnitForIdentifier<T>): QuantitySampleTyped<T> | undefined;
66
69
  export declare const useMostRecentWorkout: typeof import("./healthkit.ios").useMostRecentWorkout;
67
70
  export declare const useSubscribeToChanges: typeof import("./healthkit.ios").useSubscribeToChanges;
68
71
  export declare const useHealthkitAuthorization: ({ toWrite, toRead, }: {
@@ -77,14 +80,14 @@ export declare const getBloodTypeAsync: () => Promise<BloodType>;
77
80
  export declare const getDateOfBirthAsync: () => Promise<Date | undefined>;
78
81
  export declare const getFitzpatrickSkinTypeAsync: () => Promise<FitzpatrickSkinType>;
79
82
  export declare const getWheelchairUseAsync: () => Promise<WheelchairUse>;
80
- declare const subscribeToQuantitySamples: (identifier: import("./types").QuantityTypeIdentifier, callback: (args: import("./types").OnQuantitySamplesCallback) => void, after?: Date) => {
83
+ declare const subscribeToQuantitySamples: <TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, callback: (args: import("./types").OnQuantitySamplesCallback<TIdentifier>) => void, after?: Date) => {
81
84
  remove: () => boolean;
82
85
  };
83
86
  export { subscribeToQuantitySamples };
84
87
  export declare const currentAppSource: () => SourceProxy;
85
- export declare const queryMedications: () => Promise<readonly import("./specs/MedicationModule.nitro").UserAnnotatedMedication[]>;
86
- export declare const queryMedicationEvents: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./specs/MedicationModule.nitro").MedicationDoseEvent[]>;
87
- export declare const queryMedicationEventsWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./specs/MedicationModule.nitro").MedicationDoseEventsWithAnchorResponse>;
88
+ export declare const queryMedications: () => Promise<readonly import("./types").UserAnnotatedMedication[]>;
89
+ export declare const queryMedicationEvents: (options: QueryOptionsWithSortOrder) => Promise<readonly import("./types").MedicationDoseEventTyped[]>;
90
+ export declare const queryMedicationEventsWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").MedicationDoseEventsWithAnchorResponseTyped>;
88
91
  export declare const useSubscribeToQuantitySamples: typeof import("./healthkit.ios").useSubscribeToQuantitySamples;
89
92
  export declare const useSubscribeToCategorySamples: typeof import("./healthkit.ios").useSubscribeToCategorySamples;
90
93
  export declare const requestPerObjectReadAuthorization: (typeIdentifier: import("./types").PerObjectTypeIdentifier) => Promise<void>;
@@ -8,7 +8,13 @@ import useStatisticsForQuantity from './hooks/useStatisticsForQuantity';
8
8
  import useSubscribeToCategorySamples from './hooks/useSubscribeToCategorySamples';
9
9
  import useSubscribeToChanges from './hooks/useSubscribeToChanges';
10
10
  import useSubscribeToQuantitySamples from './hooks/useSubscribeToQuantitySamples';
11
+ import type { CorrelationSampleTyped, QueryCorrelationSamplesWithAnchorResponseTyped } from './types/CorrelationType';
12
+ import type { ElectrocardiogramSamplesWithAnchorResponseTyped, ElectrocardiogramSampleTyped } from './types/ElectrocardiogramSample';
13
+ import type { HeartbeatSeriesSamplesWithAnchorResponseTyped, HeartbeatSeriesSampleTyped } from './types/HeartbeatSeries';
14
+ import type { MedicationDoseEventsWithAnchorResponseTyped, MedicationDoseEventTyped } from './types/Medication';
11
15
  import type { QuantityTypeIdentifier } from './types/QuantityTypeIdentifier';
16
+ import type { StateOfMindSamplesWithAnchorResponseTyped, StateOfMindSampleTyped } from './types/StateOfMind';
17
+ import type { QueryWorkoutSamplesWithAnchorResponseTyped, WorkoutProxyTyped } from './types/Workouts';
12
18
  import getMostRecentCategorySample from './utils/getMostRecentCategorySample';
13
19
  import getMostRecentQuantitySample from './utils/getMostRecentQuantitySample';
14
20
  import getMostRecentWorkout from './utils/getMostRecentWorkout';
@@ -37,11 +43,14 @@ export type AvailableQuantityTypesIOS17Plus = QuantityTypeIdentifier;
37
43
  * @returns Available quantity types for the given iOS version
38
44
  */
39
45
  export type AvailableQuantityTypes<T extends number = typeof currentMajorVersionIOS> = T extends 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 ? AvailableQuantityTypesIOS17Plus : AvailableQuantityTypesBeforeIOS17;
46
+ type BoundMethod<TMethod, TReturn = TMethod extends (...args: infer _Args) => infer TResult ? TResult : never> = (...args: TMethod extends (...args: infer TArgs) => unknown ? TArgs : never) => TReturn;
40
47
  export declare const authorizationStatusFor: (type: import("./types").ObjectTypeIdentifier) => import("./types").AuthorizationStatus;
41
48
  export declare const requestPerObjectReadAuthorization: (typeIdentifier: import("./types").PerObjectTypeIdentifier) => Promise<void>;
42
49
  export declare const disableAllBackgroundDelivery: () => Promise<boolean>;
43
50
  export declare const disableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier) => Promise<boolean>;
44
51
  export declare const enableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier, updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
52
+ export declare const configureBackgroundTypes: (typeIdentifiers: string[], updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
53
+ export declare const clearBackgroundTypes: () => Promise<boolean>;
45
54
  export declare const getBiologicalSex: () => import("./types").BiologicalSex;
46
55
  export declare const getBloodType: () => import("./types").BloodType;
47
56
  export declare const getDateOfBirth: () => Date | undefined;
@@ -53,41 +62,41 @@ export declare const isHealthDataAvailable: () => boolean;
53
62
  export declare const isHealthDataAvailableAsync: () => Promise<boolean>;
54
63
  export declare const queryCategorySamples: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CategorySampleTyped<T>[]>;
55
64
  export declare const queryCategorySamplesWithAnchor: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").CategorySamplesWithAnchorResponseTyped<T>>;
56
- export declare const queryCorrelationSamples: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSample[]>;
57
- export declare const queryCorrelationSamplesWithAnchor: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponse>;
58
- export declare const queryHeartbeatSeriesSamples: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>;
59
- export declare const queryHeartbeatSeriesSamplesWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>;
60
- export declare const queryElectrocardiogramSamples: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSample[]>;
61
- export declare const queryElectrocardiogramSamplesWithAnchor: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponse>;
62
- export declare const queryQuantitySamples: (identifier: QuantityTypeIdentifier, options: import("./types").QueryOptionsWithSortOrderAndUnit) => Promise<readonly import("./types").QuantitySample[]>;
63
- export declare const queryQuantitySamplesWithAnchor: (identifier: QuantityTypeIdentifier, options: import("./types").QueryOptionsWithAnchorAndUnit) => Promise<import("./types").QuantitySamplesWithAnchorResponse>;
64
- export declare const queryStatisticsForQuantity: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponse>;
65
- export declare const queryStatisticsCollectionForQuantity: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponse[]>;
66
- export declare const queryStatisticsForQuantitySeparateBySource: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponseFromSingleSource[]>;
67
- export declare const queryStatisticsCollectionForQuantitySeparateBySource: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponseFromSingleSource[]>;
68
- export declare const queryWorkoutSamples: (options: import("./types").WorkoutQueryOptions) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy[]>;
69
- export declare const queryWorkoutSamplesWithAnchor: (options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>;
65
+ export declare const queryCorrelationSamples: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSample[]>, Promise<readonly CorrelationSampleTyped[]>>;
66
+ export declare const queryCorrelationSamplesWithAnchor: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponse>, Promise<QueryCorrelationSamplesWithAnchorResponseTyped>>;
67
+ export declare const queryHeartbeatSeriesSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>, Promise<readonly HeartbeatSeriesSampleTyped[]>>;
68
+ export declare const queryHeartbeatSeriesSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>, Promise<HeartbeatSeriesSamplesWithAnchorResponseTyped>>;
69
+ export declare const queryElectrocardiogramSamples: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSample[]>, Promise<readonly ElectrocardiogramSampleTyped[]>>;
70
+ export declare const queryElectrocardiogramSamplesWithAnchor: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponse>, Promise<ElectrocardiogramSamplesWithAnchorResponseTyped>>;
71
+ export declare const queryQuantitySamples: <T extends QuantityTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithSortOrderAndUnit<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QuantitySampleTyped<T>[]>;
72
+ export declare const queryQuantitySamplesWithAnchor: <T extends QuantityTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithAnchorAndUnit<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QuantitySamplesWithAnchorResponseTyped<T>>;
73
+ export declare const queryStatisticsForQuantity: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QueryStatisticsResponse>;
74
+ export declare const queryStatisticsCollectionForQuantity: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QueryStatisticsResponse[]>;
75
+ export declare const queryStatisticsForQuantitySeparateBySource: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QueryStatisticsResponseFromSingleSource[]>;
76
+ export declare const queryStatisticsCollectionForQuantitySeparateBySource: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QueryStatisticsResponseFromSingleSource[]>;
77
+ export declare const queryWorkoutSamples: BoundMethod<(options: import("./types").WorkoutQueryOptions) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy[]>, Promise<readonly WorkoutProxyTyped[]>>;
78
+ export declare const queryWorkoutSamplesWithAnchor: BoundMethod<(options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>, Promise<QueryWorkoutSamplesWithAnchorResponseTyped>>;
70
79
  export declare const querySources: (identifier: import("./types").SampleTypeIdentifier, filter?: import("./types").FilterForSamples) => Promise<import("./specs/SourceProxy.nitro").SourceProxy[]>;
71
80
  export declare const requestAuthorization: (toRequest: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise<boolean>;
72
81
  export declare const deleteObjects: (objectTypeIdentifier: import("./types").SampleTypeIdentifierWriteable, filter: import("./types").FilterForSamples) => Promise<number>;
73
- export declare const saveCategorySample: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier<T>) => Promise<import("./types").CategorySample | undefined>;
74
- export declare const saveCorrelationSample: (typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").CorrelationSample | undefined>;
75
- export declare const saveQuantitySample: (identifier: import("./types").QuantityTypeIdentifierWriteable, unit: string, value: number, start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").QuantitySample | undefined>;
76
- export declare const saveWorkoutSample: (workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy>;
82
+ export declare const saveCategorySample: <T extends import("./types").CategoryTypeIdentifierWriteable>(identifier: T, value: import("./types").CategoryValueForIdentifier<T>, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier<T>) => Promise<import("./types").CategorySampleTyped<T> | undefined>;
83
+ export declare const saveCorrelationSample: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").CorrelationSample | undefined>, Promise<CorrelationSampleTyped | undefined>>;
84
+ export declare const saveQuantitySample: <T extends import("./types").QuantityTypeIdentifierWriteable>(identifier: T, unit: import("./types").UnitForIdentifier<T>, value: number, start: Date, end: Date, metadata?: import("./types").MetadataForQuantityIdentifier<T>) => Promise<import("./types").QuantitySampleTyped<T> | undefined>;
85
+ export declare const saveWorkoutSample: BoundMethod<(workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy>, Promise<WorkoutProxyTyped>>;
77
86
  export declare const startWatchApp: (workoutConfiguration: import("./types").WorkoutConfiguration) => Promise<boolean>;
78
87
  export declare const isProtectedDataAvailable: () => boolean;
79
- export declare const queryStateOfMindSamples: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSample[]>;
80
- export declare const queryStateOfMindSamplesWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponse>;
81
- export declare const saveStateOfMindSample: (date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").StateOfMindSample | undefined>;
82
- export declare const isQuantityCompatibleWithUnit: (identifier: QuantityTypeIdentifier, unit: string) => boolean;
88
+ export declare const queryStateOfMindSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSample[]>, Promise<readonly StateOfMindSampleTyped[]>>;
89
+ export declare const queryStateOfMindSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponse>, Promise<StateOfMindSamplesWithAnchorResponseTyped>>;
90
+ export declare const saveStateOfMindSample: BoundMethod<(date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").StateOfMindSample | undefined>, Promise<StateOfMindSampleTyped | undefined>>;
91
+ export declare const isQuantityCompatibleWithUnit: <T extends QuantityTypeIdentifier>(identifier: T, unit: import("./types").UnitForIdentifier<T>) => boolean;
83
92
  export declare const isObjectTypeAvailable: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => boolean;
84
93
  export declare const isObjectTypeAvailableAsync: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => Promise<boolean>;
85
94
  export declare const areObjectTypesAvailable: (objectTypeIdentifiers: readonly import("./types").ObjectTypeIdentifier[]) => Record<string, boolean>;
86
95
  export declare const areObjectTypesAvailableAsync: (objectTypeIdentifiers: import("./types").ObjectTypeIdentifier[]) => Promise<Record<string, boolean>>;
87
96
  export declare const requestMedicationsAuthorization: () => Promise<boolean>;
88
- export declare const queryMedications: () => Promise<readonly import("./specs/MedicationModule.nitro").UserAnnotatedMedication[]>;
89
- export declare const queryMedicationEvents: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./specs/MedicationModule.nitro").MedicationDoseEvent[]>;
90
- export declare const queryMedicationEventsWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./specs/MedicationModule.nitro").MedicationDoseEventsWithAnchorResponse>;
97
+ export declare const queryMedications: () => Promise<readonly import("./types").UserAnnotatedMedication[]>;
98
+ export declare const queryMedicationEvents: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./specs/MedicationModule.nitro").MedicationDoseEvent[]>, Promise<readonly MedicationDoseEventTyped[]>>;
99
+ export declare const queryMedicationEventsWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./specs/MedicationModule.nitro").MedicationDoseEventsWithAnchorResponse>, Promise<MedicationDoseEventsWithAnchorResponseTyped>>;
91
100
  export declare const currentAppSource: () => import("./specs/SourceProxy.nitro").SourceProxy;
92
101
  export declare const getBiologicalSexAsync: () => Promise<import("./types").BiologicalSex>;
93
102
  export declare const getBloodTypeAsync: () => Promise<import("./types").BloodType>;
@@ -100,7 +109,9 @@ declare const _default: {
100
109
  isObjectTypeAvailableAsync: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => Promise<boolean>;
101
110
  areObjectTypesAvailable: (objectTypeIdentifiers: readonly import("./types").ObjectTypeIdentifier[]) => Record<string, boolean>;
102
111
  areObjectTypesAvailableAsync: (objectTypeIdentifiers: import("./types").ObjectTypeIdentifier[]) => Promise<Record<string, boolean>>;
103
- isQuantityCompatibleWithUnit: (identifier: QuantityTypeIdentifier, unit: string) => boolean;
112
+ isQuantityCompatibleWithUnit: <T extends QuantityTypeIdentifier>(identifier: T, unit: import("./types").UnitForIdentifier<T>) => boolean;
113
+ configureBackgroundTypes: (typeIdentifiers: string[], updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
114
+ clearBackgroundTypes: () => Promise<boolean>;
104
115
  disableAllBackgroundDelivery: () => Promise<boolean>;
105
116
  disableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier) => Promise<boolean>;
106
117
  enableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier, updateFrequency: import("./types").UpdateFrequency) => Promise<boolean>;
@@ -115,53 +126,53 @@ declare const _default: {
115
126
  getWheelchairUseAsync: () => Promise<import("./types").WheelchairUse>;
116
127
  getMostRecentCategorySample: typeof getMostRecentCategorySample;
117
128
  getMostRecentQuantitySample: typeof getMostRecentQuantitySample;
118
- getMostRecentWorkout: () => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy | undefined>;
129
+ getMostRecentWorkout: () => Promise<WorkoutProxyTyped | undefined>;
119
130
  getPreferredUnits: (identifiers: readonly QuantityTypeIdentifier[], forceUpdate?: boolean) => Promise<import("./types").IdentifierWithUnit[]>;
120
- getPreferredUnit: (quantityType: QuantityTypeIdentifier) => Promise<string>;
131
+ getPreferredUnit: <T extends QuantityTypeIdentifier>(quantityType: T) => Promise<import("./types").UnitForIdentifier<T>>;
121
132
  getRequestStatusForAuthorization: (toCheck: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise<import("./types").AuthorizationRequestStatus>;
122
133
  getWheelchairUse: () => import("./types").WheelchairUse;
123
134
  isHealthDataAvailable: () => boolean;
124
135
  isHealthDataAvailableAsync: () => Promise<boolean>;
125
136
  queryCategorySamples: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CategorySampleTyped<T>[]>;
126
137
  queryCategorySamplesWithAnchor: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").CategorySamplesWithAnchorResponseTyped<T>>;
127
- queryCorrelationSamples: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSample[]>;
128
- queryCorrelationSamplesWithAnchor: (typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponse>;
129
- queryHeartbeatSeriesSamples: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>;
130
- queryHeartbeatSeriesSamplesWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>;
131
- queryElectrocardiogramSamples: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSample[]>;
132
- queryElectrocardiogramSamplesWithAnchor: (options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponse>;
133
- queryQuantitySamples: (identifier: QuantityTypeIdentifier, options: import("./types").QueryOptionsWithSortOrderAndUnit) => Promise<readonly import("./types").QuantitySample[]>;
134
- queryQuantitySamplesWithAnchor: (identifier: QuantityTypeIdentifier, options: import("./types").QueryOptionsWithAnchorAndUnit) => Promise<import("./types").QuantitySamplesWithAnchorResponse>;
135
- queryStatisticsForQuantity: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponse>;
136
- queryStatisticsCollectionForQuantity: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponse[]>;
137
- queryStatisticsForQuantitySeparateBySource: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions) => Promise<import("./types").QueryStatisticsResponseFromSingleSource[]>;
138
- queryStatisticsCollectionForQuantitySeparateBySource: (identifier: QuantityTypeIdentifier, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions) => Promise<readonly import("./types").QueryStatisticsResponseFromSingleSource[]>;
139
- queryWorkoutSamples: (options: import("./types").WorkoutQueryOptions) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy[]>;
140
- queryWorkoutSamplesWithAnchor: (options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>;
138
+ queryCorrelationSamples: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").CorrelationSample[]>, Promise<readonly CorrelationSampleTyped[]>>;
139
+ queryCorrelationSamplesWithAnchor: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").QueryCorrelationSamplesWithAnchorResponse>, Promise<QueryCorrelationSamplesWithAnchorResponseTyped>>;
140
+ queryHeartbeatSeriesSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>, Promise<readonly HeartbeatSeriesSampleTyped[]>>;
141
+ queryHeartbeatSeriesSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>, Promise<HeartbeatSeriesSamplesWithAnchorResponseTyped>>;
142
+ queryElectrocardiogramSamples: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise<readonly import("./types/ElectrocardiogramSample").ElectrocardiogramSample[]>, Promise<readonly ElectrocardiogramSampleTyped[]>>;
143
+ queryElectrocardiogramSamplesWithAnchor: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise<import("./types/ElectrocardiogramSample").ElectrocardiogramSamplesWithAnchorResponse>, Promise<ElectrocardiogramSamplesWithAnchorResponseTyped>>;
144
+ queryQuantitySamples: <T extends QuantityTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithSortOrderAndUnit<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QuantitySampleTyped<T>[]>;
145
+ queryQuantitySamplesWithAnchor: <T extends QuantityTypeIdentifier>(identifier: T, options: import("./types").QueryOptionsWithAnchorAndUnit<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QuantitySamplesWithAnchorResponseTyped<T>>;
146
+ queryStatisticsForQuantity: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QueryStatisticsResponse>;
147
+ queryStatisticsCollectionForQuantity: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QueryStatisticsResponse[]>;
148
+ queryStatisticsForQuantitySeparateBySource: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<import("./types").QueryStatisticsResponseFromSingleSource[]>;
149
+ queryStatisticsCollectionForQuantitySeparateBySource: <T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions<import("./types").UnitForIdentifier<T>>) => Promise<readonly import("./types").QueryStatisticsResponseFromSingleSource[]>;
150
+ queryWorkoutSamples: BoundMethod<(options: import("./types").WorkoutQueryOptions) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy[]>, Promise<readonly WorkoutProxyTyped[]>>;
151
+ queryWorkoutSamplesWithAnchor: BoundMethod<(options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>, Promise<QueryWorkoutSamplesWithAnchorResponseTyped>>;
141
152
  querySources: (identifier: import("./types").SampleTypeIdentifier, filter?: import("./types").FilterForSamples) => Promise<import("./specs/SourceProxy.nitro").SourceProxy[]>;
142
153
  requestAuthorization: (toRequest: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise<boolean>;
143
154
  requestPerObjectReadAuthorization: (typeIdentifier: import("./types").PerObjectTypeIdentifier) => Promise<void>;
144
155
  deleteObjects: (objectTypeIdentifier: import("./types").SampleTypeIdentifierWriteable, filter: import("./types").FilterForSamples) => Promise<number>;
145
- saveCategorySample: <T extends import("./types").CategoryTypeIdentifier>(identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier<T>) => Promise<import("./types").CategorySample | undefined>;
146
- saveCorrelationSample: (typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").CorrelationSample | undefined>;
147
- saveQuantitySample: (identifier: import("./types").QuantityTypeIdentifierWriteable, unit: string, value: number, start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").QuantitySample | undefined>;
148
- saveWorkoutSample: (workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy>;
156
+ saveCategorySample: <T extends import("./types").CategoryTypeIdentifierWriteable>(identifier: T, value: import("./types").CategoryValueForIdentifier<T>, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier<T>) => Promise<import("./types").CategorySampleTyped<T> | undefined>;
157
+ saveCorrelationSample: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").CorrelationSample | undefined>, Promise<CorrelationSampleTyped | undefined>>;
158
+ saveQuantitySample: <T extends import("./types").QuantityTypeIdentifierWriteable>(identifier: T, unit: import("./types").UnitForIdentifier<T>, value: number, start: Date, end: Date, metadata?: import("./types").MetadataForQuantityIdentifier<T>) => Promise<import("./types").QuantitySampleTyped<T> | undefined>;
159
+ saveWorkoutSample: BoundMethod<(workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./specs/WorkoutProxy.nitro").WorkoutProxy>, Promise<WorkoutProxyTyped>>;
149
160
  subscribeToChanges: (identifier: import("./types").SampleTypeIdentifier, callback: (args: import("./types").OnChangeCallbackArgs) => void) => {
150
161
  remove: () => boolean;
151
162
  };
152
- subscribeToQuantitySamples: (identifier: QuantityTypeIdentifier, callback: (args: import("./types").OnQuantitySamplesCallback) => void, after?: Date) => {
163
+ subscribeToQuantitySamples: <TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, callback: (args: import("./types").OnQuantitySamplesCallback<TIdentifier>) => void, after?: Date) => {
153
164
  remove: () => boolean;
154
165
  };
155
166
  startWatchApp: (workoutConfiguration: import("./types").WorkoutConfiguration) => Promise<boolean>;
156
167
  isProtectedDataAvailable: () => boolean;
157
- queryStateOfMindSamples: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSample[]>;
158
- queryStateOfMindSamplesWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponse>;
159
- saveStateOfMindSample: (date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").StateOfMindSample | undefined>;
168
+ queryStateOfMindSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").StateOfMindSample[]>, Promise<readonly StateOfMindSampleTyped[]>>;
169
+ queryStateOfMindSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").StateOfMindSamplesWithAnchorResponse>, Promise<StateOfMindSamplesWithAnchorResponseTyped>>;
170
+ saveStateOfMindSample: BoundMethod<(date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise<import("./types").StateOfMindSample | undefined>, Promise<StateOfMindSampleTyped | undefined>>;
160
171
  requestMedicationsAuthorization: () => Promise<boolean>;
161
172
  currentAppSource: () => import("./specs/SourceProxy.nitro").SourceProxy;
162
- queryMedicationEventsWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./specs/MedicationModule.nitro").MedicationDoseEventsWithAnchorResponse>;
163
- queryMedicationEvents: (options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./specs/MedicationModule.nitro").MedicationDoseEvent[]>;
164
- queryMedications: () => Promise<readonly import("./specs/MedicationModule.nitro").UserAnnotatedMedication[]>;
173
+ queryMedicationEventsWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise<import("./specs/MedicationModule.nitro").MedicationDoseEventsWithAnchorResponse>, Promise<MedicationDoseEventsWithAnchorResponseTyped>>;
174
+ queryMedicationEvents: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./specs/MedicationModule.nitro").MedicationDoseEvent[]>, Promise<readonly MedicationDoseEventTyped[]>>;
175
+ queryMedications: () => Promise<readonly import("./types").UserAnnotatedMedication[]>;
165
176
  subscribeToCategorySamples: typeof subscribeToCategorySamples;
166
177
  useSubscribeToCategorySamples: typeof useSubscribeToCategorySamples;
167
178
  useMostRecentCategorySample: typeof useMostRecentCategorySample;
@@ -1,7 +1,8 @@
1
- import type { QuantitySample } from '../types/QuantitySample';
1
+ import type { QuantitySampleTyped } from '../types/QuantitySample';
2
+ import type { UnitForIdentifier } from '../types/QuantityType';
2
3
  import type { QuantityTypeIdentifier } from '../types/QuantityTypeIdentifier';
3
4
  /**
4
5
  * @returns the most recent sample for the given quantity type.
5
6
  */
6
- export declare function useMostRecentQuantitySample(identifier: QuantityTypeIdentifier, unit?: string): QuantitySample | undefined;
7
+ export declare function useMostRecentQuantitySample<T extends QuantityTypeIdentifier>(identifier: T, unit?: UnitForIdentifier<T>): QuantitySampleTyped<T> | undefined;
7
8
  export default useMostRecentQuantitySample;
@@ -1,6 +1,6 @@
1
- import type { WorkoutProxy } from '../specs/WorkoutProxy.nitro';
1
+ import type { WorkoutProxyTyped } from '../types/Workouts';
2
2
  /**
3
3
  * @returns the most recent workout sample.
4
4
  */
5
- export declare function useMostRecentWorkout(): WorkoutProxy | undefined;
5
+ export declare function useMostRecentWorkout(): WorkoutProxyTyped | undefined;
6
6
  export default useMostRecentWorkout;
@@ -1,13 +1,14 @@
1
- import type { QuantitySample } from '../types/QuantitySample';
1
+ import type { QuantitySampleTyped } from '../types/QuantitySample';
2
+ import type { UnitForIdentifier } from '../types/QuantityType';
2
3
  import type { QuantityTypeIdentifier } from '../types/QuantityTypeIdentifier';
3
4
  /**
4
5
  * @returns the most recent sample for the given quantity type.
5
6
  */
6
- export declare function useQuantitySampleById(identifier: QuantityTypeIdentifier, uuid: string, options?: {
7
+ export declare function useQuantitySampleById<T extends QuantityTypeIdentifier>(identifier: T, uuid: string, options?: {
7
8
  /** The unit to use for the sample. */
8
- unit?: string;
9
+ unit?: UnitForIdentifier<T>;
9
10
  }): {
10
- sample: QuantitySample | undefined;
11
+ sample: QuantitySampleTyped<T> | undefined;
11
12
  isLoading: boolean;
12
13
  error: Error | null;
13
14
  };
@@ -1,4 +1,4 @@
1
- import type { QueryStatisticsResponse, StatisticsOptions } from '../types/QuantityType';
1
+ import type { QueryStatisticsResponse, StatisticsOptions, UnitForIdentifier } from '../types/QuantityType';
2
2
  import type { QuantityTypeIdentifier } from '../types/QuantityTypeIdentifier';
3
- export declare function useStatisticsForQuantity<TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, options: readonly StatisticsOptions[], from: Date, to?: Date, unit?: string): QueryStatisticsResponse | null;
3
+ export declare function useStatisticsForQuantity<TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, options: readonly StatisticsOptions[], from: Date, to?: Date, unit?: UnitForIdentifier<TIdentifier>): QueryStatisticsResponse | null;
4
4
  export default useStatisticsForQuantity;
@@ -1,3 +1,3 @@
1
1
  import type { OnQuantitySamplesCallback, QuantityTypeIdentifier } from '../types';
2
- export declare function useSubscribeToQuantitySamples<TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, onChange: (args: OnQuantitySamplesCallback) => void): void;
2
+ export declare function useSubscribeToQuantitySamples<TIdentifier extends QuantityTypeIdentifier>(identifier: TIdentifier, onChange: (args: OnQuantitySamplesCallback<TIdentifier>) => void): void;
3
3
  export default useSubscribeToQuantitySamples;
@@ -5,14 +5,14 @@ import type { CorrelationTypeModule } from './specs/CorrelationTypeModule.nitro'
5
5
  import type { ElectrocardiogramModule } from './specs/ElectrocardiogramModule.nitro';
6
6
  import type { HeartbeatSeriesModule } from './specs/HeartbeatSeriesModule.nitro';
7
7
  import type { MedicationModule } from './specs/MedicationModule.nitro';
8
- import type { QuantityTypeModule } from './specs/QuantityTypeModule.nitro';
8
+ import type { QuantityTypeModuleTyped } from './specs/QuantityTypeModule.nitro';
9
9
  import type { StateOfMindModule } from './specs/StateOfMindModule.nitro';
10
10
  import type { WorkoutsModule } from './specs/WorkoutsModule.nitro';
11
11
  export declare const Core: CoreModule;
12
12
  export declare const Medication: MedicationModule;
13
13
  export declare const Workouts: WorkoutsModule;
14
14
  export declare const Characteristics: CharacteristicTypeModule;
15
- export declare const QuantityTypes: QuantityTypeModule;
15
+ export declare const QuantityTypes: QuantityTypeModuleTyped;
16
16
  export declare const CategoryTypes: CategoryTypeModuleTyped;
17
17
  export declare const CorrelationTypes: CorrelationTypeModule;
18
18
  export declare const Electrocardiograms: ElectrocardiogramModule;
@@ -1,16 +1,16 @@
1
1
  import type { AnyMap, HybridObject } from 'react-native-nitro-modules';
2
2
  import type { CategorySample, CategorySamplesWithAnchorResponse, CategorySamplesWithAnchorResponseTyped, CategorySampleTyped, CategoryValueForIdentifier, MetadataForCategoryIdentifier } from '../types/CategoryType';
3
- import type { CategoryTypeIdentifier } from '../types/CategoryTypeIdentifier';
3
+ import type { CategoryTypeIdentifier, CategoryTypeIdentifierWriteable } from '../types/CategoryTypeIdentifier';
4
4
  import type { QueryOptionsWithAnchor, QueryOptionsWithSortOrder } from '../types/QueryOptions';
5
5
  export interface CategoryTypeModule extends HybridObject<{
6
6
  ios: 'swift';
7
7
  }> {
8
- saveCategorySample(identifier: CategoryTypeIdentifier, value: CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: AnyMap): Promise<CategorySample | undefined>;
8
+ saveCategorySample(identifier: CategoryTypeIdentifierWriteable, value: CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: AnyMap): Promise<CategorySample | undefined>;
9
9
  queryCategorySamples(identifier: CategoryTypeIdentifier, options: QueryOptionsWithSortOrder): Promise<readonly CategorySample[]>;
10
10
  queryCategorySamplesWithAnchor(identifier: CategoryTypeIdentifier, options: QueryOptionsWithAnchor): Promise<CategorySamplesWithAnchorResponse>;
11
11
  }
12
12
  export interface CategoryTypeModuleTyped {
13
- saveCategorySample<T extends CategoryTypeIdentifier>(identifier: T, value: CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: MetadataForCategoryIdentifier<T>): Promise<CategorySample | undefined>;
13
+ saveCategorySample<T extends CategoryTypeIdentifierWriteable>(identifier: T, value: CategoryValueForIdentifier<T>, startDate: Date, endDate: Date, metadata?: MetadataForCategoryIdentifier<T>): Promise<CategorySampleTyped<T> | undefined>;
14
14
  queryCategorySamples<T extends CategoryTypeIdentifier>(identifier: T, options: QueryOptionsWithSortOrder): Promise<readonly CategorySampleTyped<T>[]>;
15
15
  queryCategorySamplesWithAnchor<T extends CategoryTypeIdentifier>(identifier: T, options: QueryOptionsWithAnchor): Promise<CategorySamplesWithAnchorResponseTyped<T>>;
16
16
  }
@@ -26,6 +26,21 @@ export interface CoreModule extends HybridObject<{
26
26
  * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614158-disableallbackgrounddelivery Apple Docs }
27
27
  */
28
28
  disableAllBackgroundDelivery(): Promise<boolean>;
29
+ /**
30
+ * Configure background delivery types that will be registered natively in
31
+ * AppDelegate.didFinishLaunchingWithOptions — surviving app termination.
32
+ * Types and frequency are persisted to UserDefaults so they're available
33
+ * before the JS bridge boots on subsequent cold launches.
34
+ *
35
+ * Requires the Expo config plugin with `background: true` (default) or
36
+ * manual AppDelegate setup: `BackgroundDeliveryManager.shared.setupBackgroundObservers()`
37
+ */
38
+ configureBackgroundTypes(typeIdentifiers: string[], updateFrequency: UpdateFrequency): Promise<boolean>;
39
+ /**
40
+ * Clear persisted background delivery configuration and stop all observer queries.
41
+ * After calling this, the app will no longer register observers on cold launch.
42
+ */
43
+ clearBackgroundTypes(): Promise<boolean>;
29
44
  /**
30
45
  * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple Docs }
31
46
  */
@@ -1,18 +1,29 @@
1
1
  import type { AnyMap, HybridObject } from 'react-native-nitro-modules';
2
- import type { QuantitySample } from '../types/QuantitySample';
3
- import type { AggregationStyle, IntervalComponents, QuantitySamplesWithAnchorResponse, QueryStatisticsResponse, QueryStatisticsResponseFromSingleSource, StatisticsOptions, StatisticsQueryOptions } from '../types/QuantityType';
2
+ import type { MetadataForQuantityIdentifier, QuantitySample, QuantitySampleTyped } from '../types/QuantitySample';
3
+ import type { AggregationStyle, IntervalComponents, QuantitySamplesWithAnchorResponse, QuantitySamplesWithAnchorResponseTyped, QueryStatisticsResponse, QueryStatisticsResponseFromSingleSource, StatisticsOptions, StatisticsQueryOptions, StatisticsQueryOptionsWithStringUnit, UnitForIdentifier } from '../types/QuantityType';
4
4
  import type { QuantityTypeIdentifier, QuantityTypeIdentifierWriteable } from '../types/QuantityTypeIdentifier';
5
- import type { QueryOptionsWithAnchorAndUnit, QueryOptionsWithSortOrderAndUnit } from '../types/QueryOptions';
5
+ import type { QueryOptionsWithAnchorAndStringUnit, QueryOptionsWithAnchorAndUnit, QueryOptionsWithSortOrderAndStringUnit, QueryOptionsWithSortOrderAndUnit } from '../types/QueryOptions';
6
6
  export interface QuantityTypeModule extends HybridObject<{
7
7
  ios: 'swift';
8
8
  }> {
9
9
  isQuantityCompatibleWithUnit(identifier: QuantityTypeIdentifier, unit: string): boolean;
10
10
  aggregationStyle(identifier: QuantityTypeIdentifier): AggregationStyle;
11
11
  saveQuantitySample(identifier: QuantityTypeIdentifierWriteable, unit: string, value: number, start: Date, end: Date, metadata?: AnyMap): Promise<QuantitySample | undefined>;
12
- queryQuantitySamples(identifier: QuantityTypeIdentifier, options: QueryOptionsWithSortOrderAndUnit): Promise<readonly QuantitySample[]>;
13
- queryStatisticsForQuantity(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptions): Promise<QueryStatisticsResponse>;
14
- queryStatisticsCollectionForQuantity(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptions): Promise<readonly QueryStatisticsResponse[]>;
15
- queryStatisticsForQuantitySeparateBySource(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptions): Promise<QueryStatisticsResponseFromSingleSource[]>;
16
- queryStatisticsCollectionForQuantitySeparateBySource(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptions): Promise<readonly QueryStatisticsResponseFromSingleSource[]>;
17
- queryQuantitySamplesWithAnchor(identifier: QuantityTypeIdentifier, options: QueryOptionsWithAnchorAndUnit): Promise<QuantitySamplesWithAnchorResponse>;
12
+ queryQuantitySamples(identifier: QuantityTypeIdentifier, options: QueryOptionsWithSortOrderAndStringUnit): Promise<readonly QuantitySample[]>;
13
+ queryStatisticsForQuantity(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptionsWithStringUnit): Promise<QueryStatisticsResponse>;
14
+ queryStatisticsCollectionForQuantity(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptionsWithStringUnit): Promise<readonly QueryStatisticsResponse[]>;
15
+ queryStatisticsForQuantitySeparateBySource(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptionsWithStringUnit): Promise<QueryStatisticsResponseFromSingleSource[]>;
16
+ queryStatisticsCollectionForQuantitySeparateBySource(identifier: QuantityTypeIdentifier, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptionsWithStringUnit): Promise<readonly QueryStatisticsResponseFromSingleSource[]>;
17
+ queryQuantitySamplesWithAnchor(identifier: QuantityTypeIdentifier, options: QueryOptionsWithAnchorAndStringUnit): Promise<QuantitySamplesWithAnchorResponse>;
18
+ }
19
+ export interface QuantityTypeModuleTyped {
20
+ isQuantityCompatibleWithUnit<T extends QuantityTypeIdentifier>(identifier: T, unit: UnitForIdentifier<T>): boolean;
21
+ aggregationStyle(identifier: QuantityTypeIdentifier): AggregationStyle;
22
+ saveQuantitySample<T extends QuantityTypeIdentifierWriteable>(identifier: T, unit: UnitForIdentifier<T>, value: number, start: Date, end: Date, metadata?: MetadataForQuantityIdentifier<T>): Promise<QuantitySampleTyped<T> | undefined>;
23
+ queryQuantitySamples<T extends QuantityTypeIdentifier>(identifier: T, options: QueryOptionsWithSortOrderAndUnit<UnitForIdentifier<T>>): Promise<readonly QuantitySampleTyped<T>[]>;
24
+ queryStatisticsForQuantity<T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<QueryStatisticsResponse>;
25
+ queryStatisticsCollectionForQuantity<T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<readonly QueryStatisticsResponse[]>;
26
+ queryStatisticsForQuantitySeparateBySource<T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly StatisticsOptions[], options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<QueryStatisticsResponseFromSingleSource[]>;
27
+ queryStatisticsCollectionForQuantitySeparateBySource<T extends QuantityTypeIdentifier>(identifier: T, statistics: readonly StatisticsOptions[], anchorDate: Date, intervalComponents: IntervalComponents, options?: StatisticsQueryOptions<UnitForIdentifier<T>>): Promise<readonly QueryStatisticsResponseFromSingleSource[]>;
28
+ queryQuantitySamplesWithAnchor<T extends QuantityTypeIdentifier>(identifier: T, options: QueryOptionsWithAnchorAndUnit<UnitForIdentifier<T>>): Promise<QuantitySamplesWithAnchorResponseTyped<T>>;
18
29
  }
@@ -0,0 +1 @@
1
+ export {};