react-native-rook-sdk 4.0.0-beta.2 → 5.0.0-beta.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 (99) hide show
  1. package/RNRookSdk.podspec +1 -1
  2. package/android/build.gradle +6 -0
  3. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +1850 -6
  4. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +62 -0
  5. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +64 -0
  6. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +44 -0
  7. package/android/src/main/java/com/rooksdk/utils/DatasourceUtils.kt +35 -0
  8. package/android/src/main/java/com/rooksdk/utils/PermissionConvertions.kt +21 -0
  9. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +144 -0
  10. package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
  11. package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +20 -0
  12. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +22 -0
  13. package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
  14. package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
  15. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +18 -0
  16. package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
  17. package/android/src/main/java/com/rooksdk/utils/serializers/ZoneDateTimeSerializer.kt +18 -0
  18. package/ios/EncodableSDKState.swift +95 -0
  19. package/ios/NutritionMapper.swift +114 -0
  20. package/ios/RookConfiguration.swift +13 -0
  21. package/ios/RookData.swift +29 -0
  22. package/ios/RookEntry.swift +5 -4
  23. package/ios/RookPermissions.swift +33 -9
  24. package/ios/RookSdk.h +1 -13
  25. package/ios/RookSdk.mm +44 -237
  26. package/lib/module/NativeRookSdk.js +98 -10
  27. package/lib/module/NativeRookSdk.js.map +1 -1
  28. package/lib/module/context/RookSyncGateProvider.js +29 -21
  29. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  30. package/lib/module/context/RookSyncGateReducer.js +12 -2
  31. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  32. package/lib/module/hooks/useRookConfiguration.js +20 -1
  33. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  34. package/lib/module/hooks/useRookData.js +13 -4
  35. package/lib/module/hooks/useRookData.js.map +1 -1
  36. package/lib/module/hooks/useRookPermissions.js +13 -1
  37. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  38. package/lib/module/hooks/useRookSync.js +1 -1
  39. package/lib/module/hooks/useRookSync.js.map +1 -1
  40. package/lib/module/hooks/useRookVariables.js +16 -1
  41. package/lib/module/hooks/useRookVariables.js.map +1 -1
  42. package/lib/module/modules/components/RookStateManager.js +31 -0
  43. package/lib/module/modules/components/RookStateManager.js.map +1 -0
  44. package/lib/module/modules/hook/useRookAutoSync.js +5 -4
  45. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  46. package/lib/module/modules/hook/useRookEmitter.js +61 -0
  47. package/lib/module/modules/hook/useRookEmitter.js.map +1 -0
  48. package/lib/module/types/AppleHealthNutritionEvent.js +72 -0
  49. package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
  50. package/lib/module/types/HCMealData.js +61 -0
  51. package/lib/module/types/HCMealData.js.map +1 -0
  52. package/lib/module/types/WriteNutrition.js +14 -0
  53. package/lib/module/types/WriteNutrition.js.map +1 -0
  54. package/lib/module/utils/isValidDate.js +20 -0
  55. package/lib/module/utils/isValidDate.js.map +1 -1
  56. package/lib/typescript/src/NativeRookSdk.d.ts +622 -33
  57. package/lib/typescript/src/NativeRookSdk.d.ts.map +1 -1
  58. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  59. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  60. package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
  61. package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
  62. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
  63. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  64. package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
  65. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  66. package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
  67. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  68. package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
  69. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  70. package/lib/typescript/src/modules/components/RookStateManager.d.ts +10 -0
  71. package/lib/typescript/src/modules/components/RookStateManager.d.ts.map +1 -0
  72. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  73. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts +4 -0
  74. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts.map +1 -0
  75. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
  76. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
  77. package/lib/typescript/src/types/HCMealData.d.ts +60 -0
  78. package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
  79. package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
  80. package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
  81. package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
  82. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  83. package/package.json +1 -1
  84. package/src/NativeRookSdk.ts +682 -117
  85. package/src/context/RookSyncGateProvider.tsx +20 -16
  86. package/src/context/RookSyncGateReducer.ts +6 -2
  87. package/src/context/RookSyncGateTypes.ts +9 -3
  88. package/src/hooks/useRookConfiguration.ts +26 -2
  89. package/src/hooks/useRookData.ts +18 -7
  90. package/src/hooks/useRookPermissions.ts +16 -0
  91. package/src/hooks/useRookSync.ts +1 -1
  92. package/src/hooks/useRookVariables.ts +22 -1
  93. package/src/modules/components/RookStateManager.tsx +41 -0
  94. package/src/modules/hook/useRookAutoSync.ts +6 -4
  95. package/src/modules/hook/useRookEmitter.ts +94 -0
  96. package/src/types/AppleHealthNutritionEvent.ts +142 -0
  97. package/src/types/HCMealData.ts +114 -0
  98. package/src/types/WriteNutrition.ts +66 -0
  99. package/src/utils/isValidDate.ts +24 -0
@@ -1,48 +1,629 @@
1
1
  import type { TurboModule, CodegenTypes } from 'react-native';
2
- type RookConfig = Readonly<{
2
+ type RookConfig = {
3
3
  environment: string;
4
4
  clientUUID: string;
5
- password: string;
5
+ secret: string;
6
+ bundleId?: string;
7
+ packageName?: string;
6
8
  enableLogs: boolean;
7
- enableEventsBackgroundSync: boolean;
8
9
  enableBackground: boolean;
9
- }>;
10
- type APIDataSource = 'Garmin' | 'Oura' | 'Polar' | 'Fitbit' | 'Withings' | 'Whoop';
11
- type DataSourceProps = Readonly<{
10
+ };
11
+ declare enum APIDataSource {
12
+ GARMIN = "Garmin",
13
+ OURA = "Oura",
14
+ POLAR = "Polar",
15
+ FITBIT = "Fitbit",
16
+ WITHINGS = "Withings",
17
+ WHOOP = "Whoop"
18
+ }
19
+ type DataSourceProps = {
12
20
  userID: string;
13
21
  dataSource: APIDataSource;
14
22
  redirectURL?: string;
15
- }>;
16
- type DataSourceAuthorizer = Readonly<{
23
+ };
24
+ type DataSourceAuthorizer = {
17
25
  dataSource: string;
18
26
  authorized: boolean;
19
27
  authorizationUrl?: string;
20
- }>;
21
- type AuthorizedSource = Readonly<{
28
+ };
29
+ type AuthorizedSource = {
22
30
  name: string;
23
31
  imageUrl: string;
24
32
  authorized: boolean;
25
- }>;
26
- type SDKDataSource = 'HEALTH_CONNECT' | 'SAMSUNG_HEALTH' | 'APPLE_HEALTH';
33
+ };
34
+ declare enum SDKDataSource {
35
+ HEALTH_CONNECT = "HEALTH_CONNECT",
36
+ SAMSUNG_HEALTH = "SAMSUNG_HEALTH",
37
+ APPLE_HEALTH = "APPLE_HEALTH"
38
+ }
27
39
  type RequestStatusPermissions = 'REQUEST_SENT' | 'ALREADY_GRANTED';
28
- type BackgroundStatus = 'UNAVAILABLE' | 'PERMISSION_NOT_GRANTED' | 'PERMISSION_GRANTED';
40
+ export type BackgroundStatus = 'UNAVAILABLE' | 'PERMISSION_NOT_GRANTED' | 'PERMISSION_GRANTED';
29
41
  type CheckAvailabilityResponse = 'INSTALLED' | 'NOT_INSTALLED' | 'DISABLED' | 'NOT_READY' | 'OUTDATED' | 'NOT_SUPPORTED';
30
42
  type PermissionStatus = 'PERMISSION_NOT_REQUESTED' | 'PERMISSION_INDETERMINATE' | 'PERMISSION_GRANTED';
31
- type SamsungHealthPermission = 'ACTIVITY_SUMMARY' | 'BODY_TEMPERATURE' | 'BLOOD_GLUCOSE' | 'BLOOD_OXYGEN' | 'BLOOD_PRESSURE' | 'BODY_COMPOSITION' | 'EXERCISE' | 'EXERCISE_LOCATION' | 'FLOORS_CLIMBED' | 'HEART_RATE' | 'NUTRITION' | 'SLEEP' | 'STEPS' | 'WATER_INTAKE';
32
- type AppleHealthPermission = 'appleExerciseTime' | 'appleMoveTime' | 'appleStandTime' | 'basalEnergyBurned' | 'activeEnergyBurned' | 'stepCount' | 'distanceCycling' | 'distanceWalkingRunning' | 'distanceSwimming' | 'swimmingStrokeCount' | 'flightsClimbed' | 'walkingSpeed' | 'walkingStepLength' | 'runningPower' | 'runningSpeed' | 'height' | 'bodyMass' | 'bodyMassIndex' | 'waistCircumference' | 'bodyFatPercentage' | 'bodyTemperature' | 'basalBodyTemperature' | 'appleSleepingWristTemperature' | 'heartRate' | 'restingHeartRate' | 'walkingHeartRateAverage' | 'heartRateVariabilitySDNN' | 'electrocardiogram' | 'workout' | 'sleepAnalysis' | 'vo2Max' | 'oxygenSaturation' | 'respiratoryRate' | 'uvExposure' | 'biologicalSex' | 'dateOfBirth' | 'bloodPressureSystolic' | 'bloodPressureDiastolic' | 'bloodGlucose' | 'dietaryEnergyConsumed' | 'dietaryProtein' | 'dietarySugar' | 'dietaryFatTotal' | 'dietaryCarbohydrates' | 'dietaryFiber' | 'dietarySodium' | 'dietaryCholesterol';
33
- type Calories = Readonly<{
43
+ declare enum SamsungHealthPermission {
44
+ ACTIVITY_SUMMARY = "ACTIVITY_SUMMARY",
45
+ BODY_TEMPERATURE = "BODY_TEMPERATURE",
46
+ BLOOD_GLUCOSE = "BLOOD_GLUCOSE",
47
+ BLOOD_OXYGEN = "BLOOD_OXYGEN",
48
+ BLOOD_PRESSURE = "BLOOD_PRESSURE",
49
+ BODY_COMPOSITION = "BODY_COMPOSITION",
50
+ EXERCISE = "EXERCISE",
51
+ EXERCISE_LOCATION = "EXERCISE_LOCATION",
52
+ FLOORS_CLIMBED = "FLOORS_CLIMBED",
53
+ HEART_RATE = "HEART_RATE",
54
+ NUTRITION = "NUTRITION",
55
+ SLEEP = "SLEEP",
56
+ STEPS = "STEPS",
57
+ WATER_INTAKE = "WATER_INTAKE"
58
+ }
59
+ declare enum AppleHealthPermission {
60
+ APPLE_EXERCISE_TIME = "appleExerciseTime",
61
+ APPLE_MOVE_TIME = "appleMoveTime",
62
+ APPLE_STAND_TIME = "appleStandTime",
63
+ BASAL_ENERGY_BURNED = "basalEnergyBurned",
64
+ ACTIVE_ENERGY_BURNED = "activeEnergyBurned",
65
+ STEP_COUNT = "stepCount",
66
+ DISTANCE_CYCLING = "distanceCycling",
67
+ DISTANCE_WALKING_RUNNING = "distanceWalkingRunning",
68
+ DISTANCE_SWIMMING = "distanceSwimming",
69
+ SWIMMING_STROKE_COUNT = "swimmingStrokeCount",
70
+ FLIGHTS_CLIMBED = "flightsClimbed",
71
+ WALKING_SPEED = "walkingSpeed",
72
+ WALKING_STEP_LENGTH = "walkingStepLength",
73
+ RUNNING_POWER = "runningPower",
74
+ RUNNING_SPEED = "runningSpeed",
75
+ HEIGHT = "height",
76
+ BODY_MASS = "bodyMass",
77
+ BODY_MASS_INDEX = "bodyMassIndex",
78
+ WAIST_CIRCUMFERENCE = "waistCircumference",
79
+ BODY_FAT_PERCENTAGE = "bodyFatPercentage",
80
+ BODY_TEMPERATURE = "bodyTemperature",
81
+ BASAL_BODY_TEMPERATURE = "basalBodyTemperature",
82
+ APPLE_SLEEPING_WRIST_TEMPERATURE = "appleSleepingWristTemperature",
83
+ HEART_RATE = "heartRate",
84
+ RESTING_HEART_RATE = "restingHeartRate",
85
+ WALKING_HEART_RATE_AVERAGE = "walkingHeartRateAverage",
86
+ HEART_RATE_VARIABILITY_SDNN = "heartRateVariabilitySDNN",
87
+ ELECTROCARDIOGRAM = "electrocardiogram",
88
+ WORKOUT = "workout",
89
+ SLEEP_ANALYSIS = "sleepAnalysis",
90
+ VO2_MAX = "vo2Max",
91
+ OXYGEN_SATURATION = "oxygenSaturation",
92
+ RESPIRATORY_RATE = "respiratoryRate",
93
+ UV_EXPOSURE = "uvExposure",
94
+ BIOLOGICAL_SEX = "biologicalSex",
95
+ DATE_OF_BIRTH = "dateOfBirth",
96
+ BLOOD_PRESSURE_SYSTOLIC = "bloodPressureSystolic",
97
+ BLOOD_PRESSURE_DIASTOLIC = "bloodPressureDiastolic",
98
+ BLOOD_GLUCOSE = "bloodGlucose",
99
+ DIETARY_ENERGY_CONSUMED = "dietaryEnergyConsumed",
100
+ DIETARY_PROTEIN = "dietaryProtein",
101
+ DIETARY_SUGAR = "dietarySugar",
102
+ DIETARY_FAT_TOTAL = "dietaryFatTotal",
103
+ DIETARY_CARBOHYDRATES = "dietaryCarbohydrates",
104
+ DIETARY_FIBER = "dietaryFiber",
105
+ DIETARY_SODIUM = "dietarySodium",
106
+ DIETARY_CHOLESTEROL = "dietaryCholesterol"
107
+ }
108
+ type Calories = {
34
109
  active: number;
35
110
  basal: number;
36
- }>;
37
- type RookError = Readonly<{
111
+ };
112
+ type RookError = {
38
113
  code: string;
39
114
  message: string;
40
- }>;
41
- type Message = Readonly<{
115
+ };
116
+ type Message = {
42
117
  type: string;
43
118
  value: boolean;
44
119
  message?: string;
45
- }>;
120
+ };
121
+ export type DiagnosticsPermissionStatus = 'REQUESTED' | 'GRANTED' | 'NONE';
122
+ export interface SyncStatus {
123
+ enabled: boolean;
124
+ lastSync: string;
125
+ }
126
+ export interface DiagnosticState {
127
+ isConfigured: boolean;
128
+ userIdentified: boolean;
129
+ permissions: DiagnosticsPermissionStatus;
130
+ backgroundSync: SyncStatus;
131
+ manualSync: SyncStatus;
132
+ }
133
+ export declare enum MealDataType {
134
+ BREAKFAST = "BREAKFAST",
135
+ LUNCH = "LUNCH",
136
+ DINNER = "DINNER",
137
+ SNACK = "SNACK"
138
+ }
139
+ export interface WriteNutrition {
140
+ name: string;
141
+ date: string;
142
+ mealType?: MealDataType;
143
+ amount?: number;
144
+ unit?: number;
145
+ biotin?: number;
146
+ caffeine?: number;
147
+ calcium?: number;
148
+ calories?: number;
149
+ caloriesFromFat?: number;
150
+ chloride?: number;
151
+ cholesterol?: number;
152
+ chromium?: number;
153
+ copper?: number;
154
+ dietaryFiber?: number;
155
+ folate?: number;
156
+ folicAcid?: number;
157
+ iodine?: number;
158
+ iron?: number;
159
+ magnesium?: number;
160
+ manganese?: number;
161
+ molybdenum?: number;
162
+ monounsaturatedFat?: number;
163
+ niacin?: number;
164
+ pantothenicAcid?: number;
165
+ phosphorus?: number;
166
+ polyunsaturatedFat?: number;
167
+ potassium?: number;
168
+ protein?: number;
169
+ riboflavin?: number;
170
+ saturatedFat?: number;
171
+ selenium?: number;
172
+ sodium?: number;
173
+ sugar?: number;
174
+ thiamin?: number;
175
+ totalCarbohydrates?: number;
176
+ totalFat?: number;
177
+ transFat?: number;
178
+ unsaturatedFat?: number;
179
+ vitaminA?: number;
180
+ vitaminB12?: number;
181
+ vitaminB6?: number;
182
+ vitaminC?: number;
183
+ vitaminD?: number;
184
+ vitaminE?: number;
185
+ vitaminK?: number;
186
+ water?: number;
187
+ zinc?: number;
188
+ }
189
+ export interface ActivityLevelGranularData {
190
+ dateTime: string;
191
+ activityLevel: number;
192
+ }
193
+ export interface ElevationGranularData {
194
+ dateTime: string;
195
+ intervalDurationSeconds: number;
196
+ elevationChangeMeters: number;
197
+ }
198
+ export interface FloorsClimbedGranularData {
199
+ dateTime: string;
200
+ intervalDurationSeconds: number;
201
+ floorsClimbed: number;
202
+ }
203
+ export interface HrGranularData {
204
+ dateTime: string;
205
+ hrBpm: number;
206
+ }
207
+ export interface HrvSdnnGranularData {
208
+ dateTime: string;
209
+ hrvSdnn: number;
210
+ }
211
+ export interface HrvRmssdGranularData {
212
+ dateTime: string;
213
+ hrvRmssd: number;
214
+ }
215
+ export interface SaturationGranularData {
216
+ dateTime: string;
217
+ saturationPercentage: number;
218
+ }
219
+ export interface Vo2GranularData {
220
+ dateTime: string;
221
+ vo2MlPerMinPerKg: number;
222
+ }
223
+ export interface TemperatureObject {
224
+ temperatureCelsius: number;
225
+ measurementType: string;
226
+ }
227
+ export interface TemperatureGranularData {
228
+ dateTime: string;
229
+ temperatureCelsius: number;
230
+ measurementType: string;
231
+ }
232
+ export interface TraveledDistanceGranularData {
233
+ dateTime: string;
234
+ intervalDurationSeconds: number;
235
+ traveledDistanceMeters: number;
236
+ }
237
+ export interface StepsGranularData {
238
+ dateTime: string;
239
+ intervalDurationSeconds: number;
240
+ steps: number;
241
+ }
242
+ export interface SwimmingDistanceGranularData {
243
+ dateTime: string;
244
+ intervalDurationSeconds: number;
245
+ swimmingDistanceMeters: number;
246
+ }
247
+ export interface BreathingGranularData {
248
+ dateTime: string;
249
+ breathsPerMin: number;
250
+ }
251
+ export interface SnoringGranularData {
252
+ dateTime: string;
253
+ intervalDurationSeconds: number;
254
+ snoringEventsCount: number;
255
+ }
256
+ export interface SleepSummary {
257
+ dateTime: string;
258
+ sourceOfData: string;
259
+ wasTheUserUnderPhysicalActivity: boolean;
260
+ sleepStartDateTime: string;
261
+ sleepEndDateTime: string;
262
+ sleepDate: string;
263
+ sleepDurationSeconds: number | null;
264
+ timeInBedSeconds: number | null;
265
+ lightSleepDurationSeconds: number | null;
266
+ remSleepDurationSeconds: number | null;
267
+ deepSleepDurationSeconds: number | null;
268
+ timeToFallAsleepSeconds: number | null;
269
+ timeAwakeDuringSleepSeconds: number | null;
270
+ sleepQualityRating1To5Score: number | null;
271
+ sleepEfficiency1To100Score: number | null;
272
+ sleepGoalSeconds: number | null;
273
+ sleepContinuity1To5Score: number | null;
274
+ sleepContinuity1To5Rating: number | null;
275
+ hrMaximumBpm: number | null;
276
+ hrMinimumBpm: number | null;
277
+ hrAvgBpm: number | null;
278
+ hrRestingBpm: number | null;
279
+ hrBasalBpm: number | null;
280
+ hrGranularData: HrGranularData[] | null;
281
+ hrvAvgRmssd: number | null;
282
+ hrvAvgSdnn: number | null;
283
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
284
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
285
+ temperatureMinimum: TemperatureObject | null;
286
+ temperatureAvg: TemperatureObject | null;
287
+ temperatureMaximum: TemperatureObject | null;
288
+ temperatureGranularData: TemperatureGranularData[] | null;
289
+ temperatureDelta: TemperatureObject | null;
290
+ breathsMinimumPerMin: number | null;
291
+ breathsAvgPerMin: number | null;
292
+ breathsMaximumPerMin: number | null;
293
+ breathingGranularData: BreathingGranularData[] | null;
294
+ snoringEventsCount: number | null;
295
+ snoringDurationTotalSeconds: number | null;
296
+ snoringGranularData: SnoringGranularData[] | null;
297
+ saturationAvgPercentage: number | null;
298
+ saturationMinimumPercentage: number | null;
299
+ saturationMaximumPercentage: number | null;
300
+ saturationGranularData: SaturationGranularData[] | null;
301
+ }
302
+ export interface ActiveStepsGranularData {
303
+ dateTime: string;
304
+ intervalDurationSeconds: number;
305
+ activeSteps: number;
306
+ }
307
+ export interface StressGranularData {
308
+ dateTime: string;
309
+ stressScore: number;
310
+ }
311
+ export interface PhysicalSummary {
312
+ dateTime: string;
313
+ sourceOfData: string;
314
+ wasTheUserUnderPhysicalActivity: boolean;
315
+ activeSeconds: number | null;
316
+ restSeconds: number | null;
317
+ lowIntensitySeconds: number | null;
318
+ moderateIntensitySeconds: number | null;
319
+ vigorousIntensitySeconds: number | null;
320
+ inactivitySeconds: number | null;
321
+ activityLevelGranularData: ActivityLevelGranularData[] | null;
322
+ continuousInactivePeriods: number | null;
323
+ caloriesNetIntakeKcal: number | null;
324
+ caloriesExpenditureKcal: number | null;
325
+ caloriesNetActiveKcal: number | null;
326
+ caloriesBasalMetabolicRateKcal: number | null;
327
+ steps: number | null;
328
+ stepsGranularData: StepsGranularData[] | null;
329
+ activeSteps: number | null;
330
+ activeStepsGranularData: ActiveStepsGranularData[] | null;
331
+ walkedDistanceMeters: number | null;
332
+ traveledDistanceMeters: number | null;
333
+ traveledDistanceGranularData: TraveledDistanceGranularData[] | null;
334
+ floorsClimbed: number | null;
335
+ floorsClimbedGranularData: FloorsClimbedGranularData[] | null;
336
+ elevationAvgAltitudeMeters: number | null;
337
+ elevationMinimumAltitudeMeters: number | null;
338
+ elevationMaximumAltitudeMeters: number | null;
339
+ elevationLossActualAltitudeMeters: number | null;
340
+ elevationGainActualAltitudeMeters: number | null;
341
+ elevationPlannedGainMeters: number | null;
342
+ elevationGranularData: ElevationGranularData[] | null;
343
+ swimmingNumStrokes: number | null;
344
+ swimmingNumLaps: number | null;
345
+ swimmingPoolLengthMeters: number | null;
346
+ swimmingTotalDistanceMeters: number | null;
347
+ swimmingDistanceGranularData: SwimmingDistanceGranularData[] | null;
348
+ hrMaximumBpm: number | null;
349
+ hrMinimumBpm: number | null;
350
+ hrAvgBpm: number | null;
351
+ hrRestingBpm: number | null;
352
+ hrGranularData: HrGranularData[] | null;
353
+ hrvAvgRmssd: number | null;
354
+ hrvAvgSdnn: number | null;
355
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
356
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
357
+ saturationAvgPercentage: number | null;
358
+ saturationGranularData: SaturationGranularData[] | null;
359
+ vo2MaxMlPerMinPerKg: number | null;
360
+ vo2GranularData: Vo2GranularData[] | null;
361
+ stressAtRestDurationSeconds: number | null;
362
+ stressDurationSeconds: number | null;
363
+ lowStressDurationSeconds: number | null;
364
+ mediumStressDurationSeconds: number | null;
365
+ highStressDurationSeconds: number | null;
366
+ stressGranularData: StressGranularData[] | null;
367
+ stressAvgLevel: number | null;
368
+ stressMaximumLevel: number | null;
369
+ }
370
+ export interface BloodGlucoseGranularData {
371
+ dateTime: string;
372
+ bloodGlucoseMgPerDl: number;
373
+ }
374
+ export interface BloodPressureObject {
375
+ systolicMmHg: number;
376
+ diastolicMmHg: number;
377
+ }
378
+ export interface BloodPressureGranularData {
379
+ dateTime: string;
380
+ systolicMmHg: number;
381
+ diastolicMmHg: number;
382
+ }
383
+ export interface HydrationAmountGranularData {
384
+ dateTime: string;
385
+ intervalDurationSeconds: number;
386
+ hydrationAmountMl: number;
387
+ }
388
+ export interface HydrationLevelGranularData {
389
+ dateTime: string;
390
+ intervalDurationSeconds: number;
391
+ hydrationLevelPercentage: number;
392
+ }
393
+ export interface MoodGranularData {
394
+ dateTime: string;
395
+ intervalDurationSeconds: number;
396
+ moodScale: number;
397
+ }
398
+ export interface MenstruationFlowGranularData {
399
+ dateTime: string;
400
+ flowMl: number;
401
+ }
402
+ export interface BodySummary {
403
+ dateTime: string;
404
+ sourceOfData: string;
405
+ wasTheUserUnderPhysicalActivity: boolean;
406
+ waistCircumferenceCm: number | null;
407
+ hipCircumferenceCm: number | null;
408
+ chestCircumferenceCm: number | null;
409
+ boneCompositionPercentage: number | null;
410
+ muscleCompositionPercentage: number | null;
411
+ waterCompositionPercentage: number | null;
412
+ weightKg: number | null;
413
+ heightCm: number | null;
414
+ bmi: number | null;
415
+ bloodGlucoseAvgMgPerDl: number | null;
416
+ bloodGlucoseGranularData: BloodGlucoseGranularData[] | null;
417
+ bloodPressureAvg: BloodPressureObject | null;
418
+ bloodPressureGranularData: BloodPressureGranularData[] | null;
419
+ waterTotalConsumptionMl: number | null;
420
+ hydrationAmountGranularData: HydrationAmountGranularData[] | null;
421
+ hydrationLevelGranularData: HydrationLevelGranularData[] | null;
422
+ hrMaximumBpm: number | null;
423
+ hrMinimumBpm: number | null;
424
+ hrAvgBpm: number | null;
425
+ hrRestingBpm: number | null;
426
+ hrGranularData: HrGranularData[] | null;
427
+ hrvAvgRmssd: number | null;
428
+ hrvAvgSdnn: number | null;
429
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
430
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
431
+ moodMinimumScale: number | null;
432
+ moodAvgScale: number | null;
433
+ moodMaximumScale: number | null;
434
+ moodGranularData: MoodGranularData[] | null;
435
+ moodDeltaScale: number | null;
436
+ foodIntake: number | null;
437
+ caloriesIntakeKcal: number | null;
438
+ proteinIntakeG: number | null;
439
+ sugarIntakeG: number | null;
440
+ fatIntakeG: number | null;
441
+ transFatIntakeG: number | null;
442
+ carbohydratesIntakeG: number | null;
443
+ fiberIntakeG: number | null;
444
+ alcoholIntakeG: number | null;
445
+ sodiumIntakeMg: number | null;
446
+ cholesterolIntakeMg: number | null;
447
+ saturationAvgPercentage: number | null;
448
+ saturationGranularData: SaturationGranularData[] | null;
449
+ vo2MaxMlPerMinPerKg: number | null;
450
+ vo2GranularData: Vo2GranularData[] | null;
451
+ temperatureMinimum: TemperatureObject | null;
452
+ temperatureAvg: TemperatureObject | null;
453
+ temperatureMaximum: TemperatureObject | null;
454
+ temperatureGranularData: TemperatureGranularData[] | null;
455
+ temperatureDelta: TemperatureObject | null;
456
+ lastUpdatedDatetime: string | null;
457
+ periodStartDate: string | null;
458
+ cycleDay: number | null;
459
+ cycleLengthDays: number | null;
460
+ predictedCycleLengthDays: number | null;
461
+ currentPhase: string | null;
462
+ lengthOfCurrentPhaseDays: number | null;
463
+ daysUntilNextPhase: number | null;
464
+ isAPredictedCycle: boolean | null;
465
+ menstruationFlowGranularData: MenstruationFlowGranularData[] | null;
466
+ }
467
+ export interface SpeedGranularData {
468
+ dateTime: string;
469
+ intervalDurationSeconds: number;
470
+ speedMetersPerSecond: number;
471
+ }
472
+ export interface VelocityObject {
473
+ speedMetersPerSecond: number;
474
+ direction: string;
475
+ }
476
+ export interface CadenceGranularData {
477
+ dateTime: string;
478
+ intervalDurationSeconds: number;
479
+ cadenceRpm: number;
480
+ }
481
+ export interface TorqueGranularData {
482
+ dateTime: string;
483
+ intervalDurationSeconds: number;
484
+ torqueNewtonMeters: number;
485
+ }
486
+ export interface LapGranularData {
487
+ dateTime: string;
488
+ intervalDurationSeconds: number;
489
+ laps: number;
490
+ }
491
+ export interface PositionObject {
492
+ latDeg: number;
493
+ lngDeg: number;
494
+ }
495
+ export interface PositionGranularData {
496
+ dateTime: string;
497
+ intervalDurationSeconds: number;
498
+ latDeg: number;
499
+ lngDeg: number;
500
+ }
501
+ export interface PowerGranularData {
502
+ dateTime: string;
503
+ intervalDurationSeconds: number;
504
+ powerWatts: number;
505
+ }
506
+ export interface TssGranularData {
507
+ dateTime: string;
508
+ intervalDurationSeconds: number;
509
+ tssScore: number;
510
+ }
511
+ export interface ActivityEvent {
512
+ dateTime: string;
513
+ sourceOfData: string;
514
+ wasTheUserUnderPhysicalActivity: boolean;
515
+ activityStartDateTime: string;
516
+ activityEndDateTime: string;
517
+ activityDurationSeconds: number;
518
+ activityTypeName: string;
519
+ activeSeconds: number | null;
520
+ restSeconds: number | null;
521
+ lowIntensitySeconds: number | null;
522
+ moderateIntensitySeconds: number | null;
523
+ vigorousIntensitySeconds: number | null;
524
+ inactivitySeconds: number | null;
525
+ activityLevelGranularData: ActivityLevelGranularData[] | null;
526
+ continuousInactivePeriods: number | null;
527
+ activityStrainLevel: number | null;
528
+ activityWorkKilojoules: number | null;
529
+ activityEnergyKilojoules: number | null;
530
+ activityEnergyPlannedKilojoules: number | null;
531
+ caloriesNetIntakeKcal: number | null;
532
+ caloriesExpenditureKcal: number | null;
533
+ caloriesNetActiveKcal: number | null;
534
+ caloriesBasalMetabolicRateKcal: number | null;
535
+ fatPercentageOfCalories: number | null;
536
+ carbohydratePercentageOfCalories: number | null;
537
+ proteinPercentageOfCalories: number | null;
538
+ steps: number | null;
539
+ stepsGranularData: StepsGranularData[] | null;
540
+ walkedDistanceMeters: number | null;
541
+ traveledDistanceMeters: number | null;
542
+ traveledDistanceGranularData: TraveledDistanceGranularData[] | null;
543
+ floorsClimbed: number | null;
544
+ floorsClimbedGranularData: FloorsClimbedGranularData[] | null;
545
+ elevationAvgAltitudeMeters: number | null;
546
+ elevationMinimumAltitudeMeters: number | null;
547
+ elevationMaximumAltitudeMeters: number | null;
548
+ elevationLossActualAltitudeMeters: number | null;
549
+ elevationGainActualAltitudeMeters: number | null;
550
+ elevationPlannedGainMeters: number | null;
551
+ elevationGranularData: ElevationGranularData[] | null;
552
+ swimmingNumStrokes: number | null;
553
+ swimmingNumLaps: number | null;
554
+ swimmingPoolLengthMeters: number | null;
555
+ swimmingTotalDistanceMeters: number | null;
556
+ swimmingDistanceGranularData: SwimmingDistanceGranularData[] | null;
557
+ hrMaximumBpm: number | null;
558
+ hrMinimumBpm: number | null;
559
+ hrAvgBpm: number | null;
560
+ hrRestingBpm: number | null;
561
+ hrGranularData: HrGranularData[] | null;
562
+ hrvAvgRmssd: number | null;
563
+ hrvAvgSdnn: number | null;
564
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
565
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
566
+ speedNormalizedMetersPerSecond: number | null;
567
+ speedAvgMetersPerSecond: number | null;
568
+ speedMaximumMetersPerSecond: number | null;
569
+ speedGranularData: SpeedGranularData[] | null;
570
+ velocityAvg: VelocityObject | null;
571
+ velocityMaximum: VelocityObject | null;
572
+ paceAvgMinPerKm: number | null;
573
+ paceMaximumMinPerKm: number | null;
574
+ cadenceAvgRpm: number | null;
575
+ cadenceMaximumRpm: number | null;
576
+ cadenceGranularData: CadenceGranularData[] | null;
577
+ torqueAvgNewtonMeters: number | null;
578
+ torqueMaximumNewtonMeters: number | null;
579
+ torqueGranularData: TorqueGranularData[] | null;
580
+ lapGranularData: LapGranularData[] | null;
581
+ saturationAvgPercentage: number | null;
582
+ saturationGranularData: SaturationGranularData[] | null;
583
+ vo2MaxMlPerMinPerKg: number | null;
584
+ vo2GranularData: Vo2GranularData[] | null;
585
+ positionStart: PositionObject | null;
586
+ positionCentroid: PositionObject | null;
587
+ positionEnd: PositionObject | null;
588
+ positionGranularData: PositionGranularData[] | null;
589
+ positionPolylineMapDataSummary: string | null;
590
+ powerAvgWatts: number | null;
591
+ powerMaximumWatts: number | null;
592
+ powerGranularData: PowerGranularData[] | null;
593
+ stressAtRestDurationSeconds: number | null;
594
+ stressDurationSeconds: number | null;
595
+ lowStressDurationSeconds: number | null;
596
+ mediumStressDurationSeconds: number | null;
597
+ highStressDurationSeconds: number | null;
598
+ tssGranularData: TssGranularData[] | null;
599
+ stressAvgLevel: number | null;
600
+ stressMaximumLevel: number | null;
601
+ }
602
+ export interface HrGranularDataItem {
603
+ dateTime: string;
604
+ hrBPM: number;
605
+ }
606
+ export interface HrvSDNNGranularData {
607
+ dateTime: string;
608
+ hrvSDNN: number;
609
+ }
610
+ export interface HrvRMSSDGranularData {
611
+ dateTime: string;
612
+ hrvRmssd: number;
613
+ }
614
+ export interface HeartRateData {
615
+ hrAverageBPM: number;
616
+ hrvSDNNGranularData: HrvSDNNGranularData[] | null;
617
+ hrGranularData: HrGranularDataItem[];
618
+ hrMinimumBPM: number;
619
+ hrRestingBPM: number | null;
620
+ hrMaximumBPM: number;
621
+ hrvAverageSDNN: number | null;
622
+ hrvRMSSDGranularData: HrvRMSSDGranularData[] | null;
623
+ hrvAverageRMSSD: number | null;
624
+ }
625
+ interface HCMealData {
626
+ }
46
627
  export interface Spec extends TurboModule {
47
628
  initRook: (options: RookConfig) => Promise<boolean>;
48
629
  revokeDataSource: (userid: string, type: APIDataSource) => Promise<boolean>;
@@ -52,31 +633,35 @@ export interface Spec extends TurboModule {
52
633
  updateUserID: (userID: string) => Promise<boolean>;
53
634
  removeUserFromRook: (sources: SDKDataSource[]) => Promise<boolean>;
54
635
  syncUserTimeZone: () => Promise<boolean>;
636
+ getHealthConnectDiagnosticState: () => Promise<string>;
637
+ getSamsungHealthDiagnosticState: () => Promise<string>;
638
+ getDiagnosticState: () => Promise<DiagnosticState>;
55
639
  isStepsAvailable: () => Promise<boolean>;
56
640
  enableBackgroundAndroidSteps: () => Promise<boolean>;
57
641
  disableBackgroundAndroidSteps: () => Promise<boolean>;
58
642
  isBackgroundAndroidStepsActive: () => Promise<boolean>;
59
643
  syncTodayAndroidStepsCount: () => Promise<string>;
60
- syncTodayHealthConnectStepsCount: () => Promise<string>;
61
644
  enableBackGroundUpdates: () => Promise<boolean>;
62
645
  disableBackGroundUpdates: () => Promise<boolean>;
63
646
  isBackgroundUpdatesEnabled: () => Promise<boolean>;
647
+ androidHasBackgroundPermissions: () => Promise<boolean>;
648
+ appleHealthHasPermissions: (param: AppleHealthPermission) => Promise<PermissionStatus>;
64
649
  checkHealthConnectAvailability: () => Promise<CheckAvailabilityResponse>;
650
+ checkHealthConnectBackgroundReadStatus: () => Promise<BackgroundStatus>;
65
651
  checkSamsungAvailability: () => Promise<CheckAvailabilityResponse>;
66
- healthConnectHasPermissions: () => Promise<boolean>;
67
652
  healthConnectHasPartialPermissions: () => Promise<boolean>;
68
- appleHealthHasPermissions: (param: AppleHealthPermission) => Promise<PermissionStatus>;
653
+ healthConnectHasPermissions: () => Promise<boolean>;
69
654
  samsungHealthHasPermissions: () => Promise<boolean>;
70
655
  samsungHealthHasPartialPermissions: () => Promise<boolean>;
71
- requestHealthConnectPermissions: () => Promise<RequestStatusPermissions>;
72
- requestAppleHealthPermissions: (permissions?: AppleHealthPermission[]) => Promise<boolean>;
73
- requestSamsungHealthPermissions: (permissions?: SamsungHealthPermission[]) => Promise<RequestStatusPermissions>;
74
656
  openAppleHealthSettings: () => Promise<void>;
75
657
  openHealthConnectSettings: () => Promise<void>;
76
658
  requestAndroidBackgroundPermissions: () => Promise<RequestStatusPermissions>;
77
- androidHasBackgroundPermissions: () => Promise<boolean>;
78
- checkHealthConnectBackgroundReadStatus: () => Promise<BackgroundStatus>;
659
+ requestHealthConnectPermissions: () => Promise<RequestStatusPermissions>;
660
+ requestAppleHealthPermissions: (permissions?: AppleHealthPermission[]) => Promise<boolean>;
661
+ requestSamsungHealthPermissions: (permissions?: SamsungHealthPermission[]) => Promise<RequestStatusPermissions>;
662
+ requestAppleWriteNutritionPermission: () => Promise<void>;
79
663
  revokeHealthConnectPermissions: () => Promise<boolean>;
664
+ shouldRequestAndroidBackgroundPermissions: () => Promise<boolean>;
80
665
  getAppleHealthSleepSummary: (date: string) => Promise<any[]>;
81
666
  getHealthConnectSleepSummary: (date: string) => Promise<string>;
82
667
  getSamsungSleepSummary: (date: string) => Promise<string>;
@@ -89,17 +674,21 @@ export interface Spec extends TurboModule {
89
674
  getAppleHealthActivityEvents: (date: string) => Promise<any[]>;
90
675
  getHealthConnectActivityEvents: (date: string) => Promise<string>;
91
676
  getSamsungActivityEvents: (date: string) => Promise<string>;
92
- getTodayHeartRate: () => Promise<any>;
677
+ writeHealthConnectMealData: (meal: HCMealData) => Promise<boolean>;
678
+ writeAppleHealthMealData: (meal: Object) => Promise<boolean>;
93
679
  enableSamsungSync: () => Promise<boolean>;
94
680
  disableSamsungSync: () => Promise<boolean>;
95
681
  isSamsungSyncEnabled: () => Promise<boolean>;
96
- scheduleBackgroundSync: (enableLogs: boolean) => Promise<boolean>;
682
+ scheduleBackgroundSync: (enableLogs?: boolean) => Promise<boolean>;
97
683
  cancelBackgroundSync: () => Promise<boolean>;
98
684
  isBackgroundSyncEnabled: () => Promise<boolean>;
99
685
  syncTodaySamsungHealthStepsCount: () => Promise<string>;
100
686
  getTodayAppleHealthSteps: () => Promise<string>;
687
+ syncTodayHealthConnectStepsCount: () => Promise<string>;
101
688
  syncTodayCaloriesCount: () => Promise<Calories>;
102
689
  syncSHTodayCaloriesCount: () => Promise<Calories>;
690
+ getTodayHeartRate: () => Promise<HeartRateData>;
691
+ getSHTodayHeartRate: () => Promise<HeartRateData>;
103
692
  sync: (cb: (error: RookError, result: boolean) => void) => void;
104
693
  syncByDate: (date: string, cb: (error: RookError, result: boolean) => void) => void;
105
694
  syncByDefinition: (summary: string, date: string, cb: (error: RookError, result: boolean) => void) => void;
@@ -111,6 +700,6 @@ export interface Spec extends TurboModule {
111
700
  sendMessage: (message: Message) => Promise<boolean>;
112
701
  readonly onRookMessage: CodegenTypes.EventEmitter<Message>;
113
702
  }
114
- declare const RookSdk: any;
115
- export default RookSdk;
703
+ declare const _default: Spec;
704
+ export default _default;
116
705
  //# sourceMappingURL=NativeRookSdk.d.ts.map