@tryterra/react-native 0.0.0-stage → 2.1.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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -2
  3. package/TerraReactNative.podspec +48 -0
  4. package/android/build.gradle +87 -0
  5. package/android/src/bridgeCore/kotlin/README.md +1 -0
  6. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeBootstrap.kt +133 -0
  7. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeHost.kt +32 -0
  8. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Conversions.kt +468 -0
  9. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/LauncherSlots.kt +41 -0
  10. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Rejections.kt +150 -0
  11. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/StreamRegistry.kt +77 -0
  12. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridge.kt +86 -0
  13. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeOpsImpl.kt +258 -0
  14. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeStreamsImpl.kt +52 -0
  15. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TokenBroker.kt +198 -0
  16. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeErrors.kt +217 -0
  17. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeOps.kt +493 -0
  18. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeTypes.kt +897 -0
  19. package/android/src/healthConnectOnly/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +11 -0
  20. package/android/src/main/AndroidManifest.xml +24 -0
  21. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraBridgeModule.kt +96 -0
  22. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraReactNativePackage.kt +26 -0
  23. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraStartup.kt +46 -0
  24. package/android/src/samsung/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +13 -0
  25. package/docs/availability.md +246 -0
  26. package/frameworks/TerraSDK.xcframework/Info.plist +48 -0
  27. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Info.plist +0 -0
  28. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.abi.json +81513 -0
  29. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +2150 -0
  30. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2150 -0
  31. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  32. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftinterface +2127 -0
  33. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  34. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/TerraSDK +0 -0
  35. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  36. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  37. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6473 -0
  38. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Info.plist +0 -0
  39. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +81513 -0
  40. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +2150 -0
  41. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2150 -0
  42. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  43. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2127 -0
  44. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +81513 -0
  45. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +2150 -0
  46. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2150 -0
  47. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  48. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2127 -0
  49. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  50. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/TerraSDK +0 -0
  51. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/_CodeSignature/CodeResources +223 -0
  52. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  53. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  54. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6474 -0
  55. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/TerraSDK.yml +6392 -0
  56. package/ios/TerraBridgeCore/BridgeBootstrap.swift +89 -0
  57. package/ios/TerraBridgeCore/BridgeHost.swift +13 -0
  58. package/ios/TerraBridgeCore/Conversions.swift +467 -0
  59. package/ios/TerraBridgeCore/Generated/BridgeErrors.swift +179 -0
  60. package/ios/TerraBridgeCore/Generated/BridgeOps.swift +795 -0
  61. package/ios/TerraBridgeCore/Generated/BridgeTypes.swift +1317 -0
  62. package/ios/TerraBridgeCore/Locked.swift +15 -0
  63. package/ios/TerraBridgeCore/README.md +1 -0
  64. package/ios/TerraBridgeCore/Rejections.swift +130 -0
  65. package/ios/TerraBridgeCore/RuntimeAttachment.swift +60 -0
  66. package/ios/TerraBridgeCore/StreamRegistry.swift +59 -0
  67. package/ios/TerraBridgeCore/TerraBridge.swift +122 -0
  68. package/ios/TerraBridgeCore/TerraBridgeOpsImpl.swift +254 -0
  69. package/ios/TerraBridgeCore/TerraBridgeStreamsImpl.swift +60 -0
  70. package/ios/TerraBridgeCore/TokenBroker.swift +147 -0
  71. package/ios/TerraBridgeModule.mm +79 -0
  72. package/ios/TerraBridgeModuleImpl.swift +49 -0
  73. package/ios/TerraReactNative.swift +19 -0
  74. package/lib/EndUser.d.ts +12 -0
  75. package/lib/EndUser.js +13 -0
  76. package/lib/NativeTerraBridge.d.ts +23 -0
  77. package/lib/NativeTerraBridge.js +13 -0
  78. package/lib/Terra.d.ts +154 -0
  79. package/lib/Terra.js +280 -0
  80. package/lib/TerraError.d.ts +42 -0
  81. package/lib/TerraError.js +95 -0
  82. package/lib/createTerra.d.ts +8 -0
  83. package/lib/createTerra.js +19 -0
  84. package/lib/generated/client.d.ts +92 -0
  85. package/lib/generated/client.js +196 -0
  86. package/lib/generated/codecs.d.ts +135 -0
  87. package/lib/generated/codecs.js +1358 -0
  88. package/lib/generated/errors.d.ts +13 -0
  89. package/lib/generated/errors.js +68 -0
  90. package/lib/generated/ops.d.ts +13 -0
  91. package/lib/generated/ops.js +137 -0
  92. package/lib/generated/streams.d.ts +23 -0
  93. package/lib/generated/streams.js +58 -0
  94. package/lib/generated/types.d.ts +481 -0
  95. package/lib/generated/types.js +92 -0
  96. package/lib/index.d.ts +29 -0
  97. package/lib/index.js +55 -0
  98. package/package.json +71 -4
  99. package/src/EndUser.ts +15 -0
  100. package/src/NativeTerraBridge.ts +27 -0
  101. package/src/Terra.ts +462 -0
  102. package/src/TerraError.ts +116 -0
  103. package/src/createTerra.ts +18 -0
  104. package/src/generated/client.ts +243 -0
  105. package/src/generated/codecs.ts +1287 -0
  106. package/src/generated/errors.ts +113 -0
  107. package/src/generated/ops.ts +197 -0
  108. package/src/generated/streams.ts +74 -0
  109. package/src/generated/types.ts +667 -0
  110. package/src/index.ts +52 -0
@@ -0,0 +1,2127 @@
1
+ // swift-interface-format-version: 1.0
2
+ // swift-compiler-version: Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)
3
+ // swift-module-flags: -target arm64-apple-ios15.0 -enable-objc-interop -enable-library-evolution -swift-version 6 -O -enable-experimental-feature DebugDescriptionMacro -module-name TerraSDK -package-name ios
4
+ // swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.3
5
+ import BackgroundTasks
6
+ import Compression
7
+ import CoreLocation
8
+ import CryptoKit
9
+ import Foundation
10
+ import Foundation/*.Bundle*/
11
+ import Foundation/*.ProcessInfo*/
12
+ import Foundation/*.URL*/
13
+ import HealthKit
14
+ import Security
15
+ import Swift
16
+ import UIKit
17
+ import WorkoutKit
18
+ import _Concurrency
19
+ import _StringProcessing
20
+ import _SwiftConcurrencyShims
21
+ public struct AthleteProfile : Swift.Sendable, Swift.Equatable {
22
+ public enum BiologicalSex : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
23
+ case female
24
+ case male
25
+ case other
26
+ case notSet
27
+ public init?(rawValue: Swift.String)
28
+ public typealias AllCases = [TerraSDK.AthleteProfile.BiologicalSex]
29
+ public typealias RawValue = Swift.String
30
+ nonisolated public static var allCases: [TerraSDK.AthleteProfile.BiologicalSex] {
31
+ get
32
+ }
33
+ public var rawValue: Swift.String {
34
+ get
35
+ }
36
+ }
37
+ public enum ActivityMoveMode : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
38
+ case activeEnergy
39
+ case appleMoveTime
40
+ public init?(rawValue: Swift.String)
41
+ public typealias AllCases = [TerraSDK.AthleteProfile.ActivityMoveMode]
42
+ public typealias RawValue = Swift.String
43
+ nonisolated public static var allCases: [TerraSDK.AthleteProfile.ActivityMoveMode] {
44
+ get
45
+ }
46
+ public var rawValue: Swift.String {
47
+ get
48
+ }
49
+ }
50
+ public let biologicalSex: TerraSDK.AthleteProfile.BiologicalSex
51
+ public let dateOfBirth: Foundation.Date?
52
+ public let wheelchairUse: Swift.Bool?
53
+ public let activityMoveMode: TerraSDK.AthleteProfile.ActivityMoveMode?
54
+ public init(biologicalSex: TerraSDK.AthleteProfile.BiologicalSex, dateOfBirth: Foundation.Date? = nil, wheelchairUse: Swift.Bool? = nil, activityMoveMode: TerraSDK.AthleteProfile.ActivityMoveMode? = nil)
55
+ public static func == (a: TerraSDK.AthleteProfile, b: TerraSDK.AthleteProfile) -> Swift.Bool
56
+ }
57
+ public struct LinkRequest : Swift.Sendable, Swift.Equatable {
58
+ public let token: Swift.String
59
+ public let source: TerraSDK.Source
60
+ public let devID: Swift.String
61
+ public let providerUserID: Swift.String
62
+ public let appIdentifier: Swift.String?
63
+ public let devicePublicKey: Swift.String
64
+ public init(token: Swift.String, source: TerraSDK.Source, devID: Swift.String, providerUserID: Swift.String, devicePublicKey: Swift.String, appIdentifier: Swift.String? = nil)
65
+ public static func == (a: TerraSDK.LinkRequest, b: TerraSDK.LinkRequest) -> Swift.Bool
66
+ }
67
+ public enum UploadContentEncoding : Swift.String, Swift.Sendable, Swift.Equatable {
68
+ case gzip
69
+ public init?(rawValue: Swift.String)
70
+ public typealias RawValue = Swift.String
71
+ public var rawValue: Swift.String {
72
+ get
73
+ }
74
+ }
75
+ public struct UploadRequest : Swift.Sendable, Swift.Equatable {
76
+ public let source: TerraSDK.Source
77
+ public let dataType: TerraSDK.UploadDataType
78
+ public let providerUserID: Swift.String
79
+ public let timestampMilliseconds: Swift.Int64
80
+ public let body: Foundation.Data
81
+ public let contentEncoding: TerraSDK.UploadContentEncoding?
82
+ public let signature: Swift.String
83
+ public init(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, providerUserID: Swift.String, timestampMilliseconds: Swift.Int64, body: Foundation.Data, signature: Swift.String, contentEncoding: TerraSDK.UploadContentEncoding? = nil)
84
+ public static func == (a: TerraSDK.UploadRequest, b: TerraSDK.UploadRequest) -> Swift.Bool
85
+ }
86
+ public struct LinkGrant : Swift.Sendable, Swift.Equatable {
87
+ public let userID: Swift.String
88
+ public init(userID: Swift.String)
89
+ public static func == (a: TerraSDK.LinkGrant, b: TerraSDK.LinkGrant) -> Swift.Bool
90
+ }
91
+ public struct PlannedWorkoutRequest : Swift.Sendable, Swift.Equatable {
92
+ public let source: TerraSDK.Source
93
+ public let providerUserID: Swift.String
94
+ public let signature: Swift.String
95
+ public let timestampMilliseconds: Swift.Int64
96
+ public init(source: TerraSDK.Source, providerUserID: Swift.String, signature: Swift.String, timestampMilliseconds: Swift.Int64)
97
+ public static func == (a: TerraSDK.PlannedWorkoutRequest, b: TerraSDK.PlannedWorkoutRequest) -> Swift.Bool
98
+ }
99
+ public struct PlannedWorkoutUpdate : Swift.Sendable, Swift.Equatable {
100
+ public enum Change : Swift.Sendable, Swift.Equatable {
101
+ case completed(at: Foundation.Date)
102
+ case deleted
103
+ public static func == (a: TerraSDK.PlannedWorkoutUpdate.Change, b: TerraSDK.PlannedWorkoutUpdate.Change) -> Swift.Bool
104
+ }
105
+ public let id: Swift.String
106
+ public let change: TerraSDK.PlannedWorkoutUpdate.Change
107
+ public let source: TerraSDK.Source
108
+ public let providerUserID: Swift.String
109
+ public let signature: Swift.String
110
+ public let timestampMilliseconds: Swift.Int64
111
+ public let body: Foundation.Data
112
+ public init(id: Swift.String, change: TerraSDK.PlannedWorkoutUpdate.Change, source: TerraSDK.Source, providerUserID: Swift.String, signature: Swift.String, timestampMilliseconds: Swift.Int64, body: Foundation.Data)
113
+ public static func encodedBody(id: Swift.String, change: TerraSDK.PlannedWorkoutUpdate.Change) throws -> Foundation.Data
114
+ public static func == (a: TerraSDK.PlannedWorkoutUpdate, b: TerraSDK.PlannedWorkoutUpdate) -> Swift.Bool
115
+ }
116
+ public protocol TerraBackend : Swift.Sendable {
117
+ func link(_ request: TerraSDK.LinkRequest) async throws -> TerraSDK.LinkGrant
118
+ func upload(_ request: TerraSDK.UploadRequest) async throws
119
+ func backfillRequests(_ request: TerraSDK.BackfillPollRequest) async throws -> [TerraSDK.BackfillDirective]
120
+ func acknowledgeBackfills(_ request: TerraSDK.BackfillAckRequest) async throws
121
+ func sendDiagnostics(_ request: TerraSDK.DiagnosticsRequest) async throws
122
+ func revokeDeviceKey(_ request: TerraSDK.RevokeDeviceKeyRequest) async throws
123
+ func plannedWorkouts(_ request: TerraSDK.PlannedWorkoutRequest) async throws -> [TerraSDK.PlannedWorkout]
124
+ func updatePlannedWorkout(_ request: TerraSDK.PlannedWorkoutUpdate) async throws
125
+ func pendingPlanActions(_ request: TerraSDK.PlanQueueRequest) async throws -> [TerraSDK.PendingPlanAction]
126
+ func acknowledgePlanActions(_ request: TerraSDK.PlanAckRequest) async throws
127
+ func reportScheduledWorkouts(_ request: TerraSDK.ScheduledWorkoutReportRequest) async throws
128
+ }
129
+ extension TerraSDK.TerraBackend {
130
+ public func pendingPlanActions(_ request: TerraSDK.PlanQueueRequest) async throws -> [TerraSDK.PendingPlanAction]
131
+ public func acknowledgePlanActions(_ request: TerraSDK.PlanAckRequest) async throws
132
+ public func reportScheduledWorkouts(_ request: TerraSDK.ScheduledWorkoutReportRequest) async throws
133
+ }
134
+ public protocol SignedRoute : Swift.Sendable {
135
+ static var label: Swift.String { get }
136
+ }
137
+ public enum DiagnosticsRoute : TerraSDK.SignedRoute {
138
+ public static let label: Swift.String
139
+ }
140
+ public enum BackfillAckRoute : TerraSDK.SignedRoute {
141
+ public static let label: Swift.String
142
+ }
143
+ public enum DeviceKeyRevokeRoute : TerraSDK.SignedRoute {
144
+ public static let label: Swift.String
145
+ }
146
+ public enum PlanQueueRoute : TerraSDK.SignedRoute {
147
+ public static let label: Swift.String
148
+ }
149
+ public enum PlanAckRoute : TerraSDK.SignedRoute {
150
+ public static let label: Swift.String
151
+ }
152
+ public enum ScheduledWorkoutReportRoute : TerraSDK.SignedRoute {
153
+ public static let label: Swift.String
154
+ }
155
+ public struct SignedRequest<Route> : Swift.Sendable, Swift.Equatable where Route : TerraSDK.SignedRoute {
156
+ public static var signedLabel: Swift.String {
157
+ get
158
+ }
159
+ public let source: TerraSDK.Source
160
+ public let providerUserID: Swift.String
161
+ public let timestampMilliseconds: Swift.Int64
162
+ public let body: Foundation.Data
163
+ public let signature: Swift.String
164
+ public init(source: TerraSDK.Source, providerUserID: Swift.String, timestampMilliseconds: Swift.Int64, body: Foundation.Data, signature: Swift.String)
165
+ public static func == (a: TerraSDK.SignedRequest<Route>, b: TerraSDK.SignedRequest<Route>) -> Swift.Bool
166
+ }
167
+ public typealias DiagnosticsRequest = TerraSDK.SignedRequest<TerraSDK.DiagnosticsRoute>
168
+ public typealias BackfillAckRequest = TerraSDK.SignedRequest<TerraSDK.BackfillAckRoute>
169
+ public typealias RevokeDeviceKeyRequest = TerraSDK.SignedRequest<TerraSDK.DeviceKeyRevokeRoute>
170
+ public typealias PlanQueueRequest = TerraSDK.SignedRequest<TerraSDK.PlanQueueRoute>
171
+ public typealias PlanAckRequest = TerraSDK.SignedRequest<TerraSDK.PlanAckRoute>
172
+ public typealias ScheduledWorkoutReportRequest = TerraSDK.SignedRequest<TerraSDK.ScheduledWorkoutReportRoute>
173
+ public struct PendingPlanAction : Swift.Sendable, Swift.Equatable, Swift.Decodable {
174
+ public enum Kind : Swift.Sendable, Swift.Equatable {
175
+ case create, update, delete
176
+ case unknown(Swift.String)
177
+ public static func == (a: TerraSDK.PendingPlanAction.Kind, b: TerraSDK.PendingPlanAction.Kind) -> Swift.Bool
178
+ }
179
+ public let actionID: Swift.String
180
+ public let kind: TerraSDK.PendingPlanAction.Kind
181
+ public let plannedWorkoutID: Swift.String
182
+ public let plannedOn: Foundation.DateComponents?
183
+ public let workoutKitID: Swift.String?
184
+ public let completedAt: Foundation.Date?
185
+ public let workout: TerraSDK.WorkoutComposition?
186
+ public let workoutUnreadable: Swift.Bool
187
+ public let unreadable: Swift.Bool
188
+ public init(actionID: Swift.String, kind: TerraSDK.PendingPlanAction.Kind, plannedWorkoutID: Swift.String, plannedOn: Foundation.DateComponents? = nil, workoutKitID: Swift.String? = nil, completedAt: Foundation.Date? = nil, workout: TerraSDK.WorkoutComposition? = nil, workoutUnreadable: Swift.Bool = false, unreadable: Swift.Bool = false)
189
+ public init(from decoder: any Swift.Decoder) throws
190
+ public static func == (a: TerraSDK.PendingPlanAction, b: TerraSDK.PendingPlanAction) -> Swift.Bool
191
+ }
192
+ public struct PlanActionAck : Swift.Sendable, Swift.Equatable {
193
+ public enum Outcome : Swift.Sendable, Swift.Equatable {
194
+ case applied(workoutKitID: Foundation.UUID?)
195
+ case refused(TerraSDK.WorkoutScheduleRefusal)
196
+ public static func == (a: TerraSDK.PlanActionAck.Outcome, b: TerraSDK.PlanActionAck.Outcome) -> Swift.Bool
197
+ }
198
+ public let actionID: Swift.String
199
+ public let outcome: TerraSDK.PlanActionAck.Outcome
200
+ public init(actionID: Swift.String, outcome: TerraSDK.PlanActionAck.Outcome)
201
+ public static func == (a: TerraSDK.PlanActionAck, b: TerraSDK.PlanActionAck) -> Swift.Bool
202
+ }
203
+ public struct LocallyScheduledWorkout : Swift.Sendable, Swift.Equatable {
204
+ public let workoutKitID: Foundation.UUID
205
+ public let plannedOn: Foundation.DateComponents
206
+ public init(workoutKitID: Foundation.UUID, plannedOn: Foundation.DateComponents)
207
+ public static func == (a: TerraSDK.LocallyScheduledWorkout, b: TerraSDK.LocallyScheduledWorkout) -> Swift.Bool
208
+ }
209
+ extension TerraSDK.SignedRequest where Route == TerraSDK.PlanAckRoute {
210
+ public static func encodedBody(acks: [TerraSDK.PlanActionAck]) throws -> Foundation.Data
211
+ }
212
+ extension TerraSDK.SignedRequest where Route == TerraSDK.ScheduledWorkoutReportRoute {
213
+ public static func encodedBody(workouts: [TerraSDK.LocallyScheduledWorkout]) throws -> Foundation.Data
214
+ }
215
+ extension TerraSDK.SignedRequest where Route == TerraSDK.DeviceKeyRevokeRoute {
216
+ public static func encodedBody(publicKeyBase64DER: Swift.String) throws -> Foundation.Data
217
+ }
218
+ public struct BackfillPollRequest : Swift.Sendable, Swift.Equatable {
219
+ public static let signedLabel: Swift.String
220
+ public let source: TerraSDK.Source
221
+ public let providerUserID: Swift.String
222
+ public let timestampMilliseconds: Swift.Int64
223
+ public let signature: Swift.String
224
+ public init(source: TerraSDK.Source, providerUserID: Swift.String, timestampMilliseconds: Swift.Int64, signature: Swift.String)
225
+ public static func == (a: TerraSDK.BackfillPollRequest, b: TerraSDK.BackfillPollRequest) -> Swift.Bool
226
+ }
227
+ public struct BackfillDirective : Swift.Sendable, Swift.Equatable {
228
+ public let dataType: Swift.String
229
+ public let start: Foundation.Date
230
+ public let end: Foundation.Date
231
+ public let reference: Swift.String?
232
+ public init(dataType: Swift.String, start: Foundation.Date, end: Foundation.Date, reference: Swift.String?)
233
+ public static func == (a: TerraSDK.BackfillDirective, b: TerraSDK.BackfillDirective) -> Swift.Bool
234
+ }
235
+ public enum BackgroundSync {
236
+ public static func registerForHostTask(terra: TerraSDK.Terra, source: TerraSDK.Source = .health)
237
+ public static func run(terra: TerraSDK.Terra, source: TerraSDK.Source = .health, within budget: Foundation.TimeInterval = 18) async -> Swift.Bool
238
+ }
239
+ extension TerraSDK.BackgroundSync {
240
+ @discardableResult
241
+ public static func register(terra: TerraSDK.Terra, source: TerraSDK.Source = .health, earliestInterval: Foundation.TimeInterval = 3600) -> Swift.Bool
242
+ }
243
+ public struct BodyReading : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
244
+ public enum Kind : Swift.Sendable, Swift.Equatable, Swift.Hashable {
245
+ case measurement(TerraSDK.BodyMetric, Swift.Double)
246
+ case bloodPressure(systolic: Swift.Double, diastolic: Swift.Double)
247
+ case bloodGlucose(Swift.Double, unit: TerraSDK.BloodGlucoseUnit, mealTime: TerraSDK.GlucoseMealTime? = nil, specimen: TerraSDK.GlucoseSpecimen? = nil)
248
+ case oxygenSaturation(fraction: Swift.Double)
249
+ case temperature(TerraSDK.BodyTemperatureMetric, celsius: Swift.Double)
250
+ case heartRateVariability(TerraSDK.HeartRateVariabilityMetric, milliseconds: Swift.Double)
251
+ case respiratoryRate(breathsPerMinute: Swift.Double)
252
+ case vo2Max(millilitresPerKilogramMinute: Swift.Double, testType: TerraSDK.VO2MaxTestType? = nil)
253
+ case insulinDelivery(internationalUnits: Swift.Double, reason: TerraSDK.InsulinDeliveryReason)
254
+ case electrocardiogram(TerraSDK.Electrocardiogram)
255
+ case heartbeatSeries(beats: [TerraSDK.Heartbeat])
256
+ public var recordType: Swift.String {
257
+ get
258
+ }
259
+ public static func == (a: TerraSDK.BodyReading.Kind, b: TerraSDK.BodyReading.Kind) -> Swift.Bool
260
+ public func hash(into hasher: inout Swift.Hasher)
261
+ public var hashValue: Swift.Int {
262
+ get
263
+ }
264
+ }
265
+ public let id: Foundation.UUID
266
+ public let kind: TerraSDK.BodyReading.Kind
267
+ public let interval: Foundation.DateInterval
268
+ public let source: TerraSDK.SampleSource
269
+ public let userEntered: Swift.Bool
270
+ public let timeZone: Foundation.TimeZone?
271
+ public init(id: Foundation.UUID, kind: TerraSDK.BodyReading.Kind, interval: Foundation.DateInterval, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
272
+ public static func == (a: TerraSDK.BodyReading, b: TerraSDK.BodyReading) -> Swift.Bool
273
+ public typealias ID = Foundation.UUID
274
+ }
275
+ public enum BodyMetric : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
276
+ case weight
277
+ case height
278
+ case bodyFatPercentage
279
+ case leanBodyMass
280
+ case bmi
281
+ case waistCircumference
282
+ public var unit: Swift.String {
283
+ get
284
+ }
285
+ public init?(rawValue: Swift.String)
286
+ public typealias AllCases = [TerraSDK.BodyMetric]
287
+ public typealias RawValue = Swift.String
288
+ nonisolated public static var allCases: [TerraSDK.BodyMetric] {
289
+ get
290
+ }
291
+ public var rawValue: Swift.String {
292
+ get
293
+ }
294
+ }
295
+ public enum BloodGlucoseUnit : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
296
+ case milligramsPerDecilitre
297
+ case millimolesPerLitre
298
+ public init?(rawValue: Swift.String)
299
+ public typealias AllCases = [TerraSDK.BloodGlucoseUnit]
300
+ public typealias RawValue = Swift.String
301
+ nonisolated public static var allCases: [TerraSDK.BloodGlucoseUnit] {
302
+ get
303
+ }
304
+ public var rawValue: Swift.String {
305
+ get
306
+ }
307
+ }
308
+ public enum GlucoseMealTime : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
309
+ case preprandial
310
+ case postprandial
311
+ case unknown
312
+ public init?(rawValue: Swift.String)
313
+ public typealias AllCases = [TerraSDK.GlucoseMealTime]
314
+ public typealias RawValue = Swift.String
315
+ nonisolated public static var allCases: [TerraSDK.GlucoseMealTime] {
316
+ get
317
+ }
318
+ public var rawValue: Swift.String {
319
+ get
320
+ }
321
+ }
322
+ public enum GlucoseSpecimen : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
323
+ case capillary
324
+ case interstitial
325
+ case plasma
326
+ case serum
327
+ case tears
328
+ case wholeBlood
329
+ case unknown
330
+ public init?(rawValue: Swift.String)
331
+ public typealias AllCases = [TerraSDK.GlucoseSpecimen]
332
+ public typealias RawValue = Swift.String
333
+ nonisolated public static var allCases: [TerraSDK.GlucoseSpecimen] {
334
+ get
335
+ }
336
+ public var rawValue: Swift.String {
337
+ get
338
+ }
339
+ }
340
+ public enum BodyTemperatureMetric : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
341
+ case body
342
+ case basal
343
+ case wrist
344
+ case skin
345
+ public init?(rawValue: Swift.String)
346
+ public typealias AllCases = [TerraSDK.BodyTemperatureMetric]
347
+ public typealias RawValue = Swift.String
348
+ nonisolated public static var allCases: [TerraSDK.BodyTemperatureMetric] {
349
+ get
350
+ }
351
+ public var rawValue: Swift.String {
352
+ get
353
+ }
354
+ }
355
+ public enum HeartRateVariabilityMetric : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
356
+ case sdnn
357
+ case rmssd
358
+ public init?(rawValue: Swift.String)
359
+ public typealias AllCases = [TerraSDK.HeartRateVariabilityMetric]
360
+ public typealias RawValue = Swift.String
361
+ nonisolated public static var allCases: [TerraSDK.HeartRateVariabilityMetric] {
362
+ get
363
+ }
364
+ public var rawValue: Swift.String {
365
+ get
366
+ }
367
+ }
368
+ public enum VO2MaxTestType : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
369
+ case maxExercise
370
+ case predictedSubMaxExercise
371
+ case predictedNonExercise
372
+ public init?(rawValue: Swift.String)
373
+ public typealias AllCases = [TerraSDK.VO2MaxTestType]
374
+ public typealias RawValue = Swift.String
375
+ nonisolated public static var allCases: [TerraSDK.VO2MaxTestType] {
376
+ get
377
+ }
378
+ public var rawValue: Swift.String {
379
+ get
380
+ }
381
+ }
382
+ public enum InsulinDeliveryReason : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
383
+ case basal
384
+ case bolus
385
+ public init?(rawValue: Swift.String)
386
+ public typealias AllCases = [TerraSDK.InsulinDeliveryReason]
387
+ public typealias RawValue = Swift.String
388
+ nonisolated public static var allCases: [TerraSDK.InsulinDeliveryReason] {
389
+ get
390
+ }
391
+ public var rawValue: Swift.String {
392
+ get
393
+ }
394
+ }
395
+ public struct Electrocardiogram : Swift.Sendable, Swift.Equatable, Swift.Hashable {
396
+ public enum Classification : Swift.String, Swift.Sendable, Swift.CaseIterable {
397
+ case sinusRhythm
398
+ case atrialFibrillation
399
+ case inconclusiveLowHeartRate
400
+ case inconclusiveHighHeartRate
401
+ case inconclusivePoorReading
402
+ case inconclusiveOther
403
+ case notSet
404
+ public init?(rawValue: Swift.String)
405
+ public typealias AllCases = [TerraSDK.Electrocardiogram.Classification]
406
+ public typealias RawValue = Swift.String
407
+ nonisolated public static var allCases: [TerraSDK.Electrocardiogram.Classification] {
408
+ get
409
+ }
410
+ public var rawValue: Swift.String {
411
+ get
412
+ }
413
+ }
414
+ public enum SymptomsStatus : Swift.String, Swift.Sendable, Swift.CaseIterable {
415
+ case present
416
+ case notPresent
417
+ case notSet
418
+ public init?(rawValue: Swift.String)
419
+ public typealias AllCases = [TerraSDK.Electrocardiogram.SymptomsStatus]
420
+ public typealias RawValue = Swift.String
421
+ nonisolated public static var allCases: [TerraSDK.Electrocardiogram.SymptomsStatus] {
422
+ get
423
+ }
424
+ public var rawValue: Swift.String {
425
+ get
426
+ }
427
+ }
428
+ public let classification: TerraSDK.Electrocardiogram.Classification
429
+ public let averageHeartRate: Swift.Double?
430
+ public let samplingFrequencyHz: Swift.Double?
431
+ public let symptomsStatus: TerraSDK.Electrocardiogram.SymptomsStatus?
432
+ public init(classification: TerraSDK.Electrocardiogram.Classification, averageHeartRate: Swift.Double? = nil, samplingFrequencyHz: Swift.Double? = nil, symptomsStatus: TerraSDK.Electrocardiogram.SymptomsStatus? = nil)
433
+ public static func == (a: TerraSDK.Electrocardiogram, b: TerraSDK.Electrocardiogram) -> Swift.Bool
434
+ public func hash(into hasher: inout Swift.Hasher)
435
+ public var hashValue: Swift.Int {
436
+ get
437
+ }
438
+ }
439
+ public struct Heartbeat : Swift.Sendable, Swift.Equatable, Swift.Hashable {
440
+ public let millisecondsFromStart: Swift.Int64
441
+ public let precededByGap: Swift.Bool
442
+ public init(millisecondsFromStart: Swift.Int64, precededByGap: Swift.Bool)
443
+ public static func == (a: TerraSDK.Heartbeat, b: TerraSDK.Heartbeat) -> Swift.Bool
444
+ public func hash(into hasher: inout Swift.Hasher)
445
+ public var hashValue: Swift.Int {
446
+ get
447
+ }
448
+ }
449
+ public enum ObservedChange : Swift.Sendable, Swift.Equatable {
450
+ case days(Swift.Set<Foundation.Date>)
451
+ case deferred
452
+ public static func == (a: TerraSDK.ObservedChange, b: TerraSDK.ObservedChange) -> Swift.Bool
453
+ }
454
+ public struct HealthChange : Swift.Sendable, Swift.Equatable, Swift.Hashable {
455
+ public let category: TerraSDK.DataCategory
456
+ public let day: Foundation.Date
457
+ public init(category: TerraSDK.DataCategory, day: Foundation.Date)
458
+ public static func == (a: TerraSDK.HealthChange, b: TerraSDK.HealthChange) -> Swift.Bool
459
+ public func hash(into hasher: inout Swift.Hasher)
460
+ public var hashValue: Swift.Int {
461
+ get
462
+ }
463
+ }
464
+ public struct ObservedWake : Swift.Sendable {
465
+ public let change: TerraSDK.ObservedChange
466
+ public init(_ change: TerraSDK.ObservedChange, acknowledging handler: @escaping @Sendable () -> Swift.Void = {})
467
+ public func acknowledge()
468
+ }
469
+ @_hasMissingDesignatedInitializers final public class Acknowledgement : @unchecked Swift.Sendable {
470
+ public init(_ handler: @escaping @Sendable () -> Swift.Void)
471
+ @objc deinit
472
+ final public func fire()
473
+ }
474
+ public struct DeferredWake : Swift.Sendable, Swift.Equatable {
475
+ public let generation: Swift.Int
476
+ public let version: Swift.Int
477
+ public init(generation: Swift.Int, version: Swift.Int)
478
+ public static func == (a: TerraSDK.DeferredWake, b: TerraSDK.DeferredWake) -> Swift.Bool
479
+ }
480
+ public struct Connection : Swift.Sendable {
481
+ public let source: TerraSDK.Source
482
+ public let userID: Swift.String
483
+ public var workouts: TerraSDK.PlannedWorkouts {
484
+ get
485
+ }
486
+ public static let firstSyncDays: Swift.Int
487
+ public func disconnect() async throws
488
+ }
489
+ public struct BackgroundSyncResult : Swift.Sendable {
490
+ public let outcomes: [TerraSDK.UploadDataType : TerraSDK.SyncOutcome]
491
+ public let failures: [TerraSDK.UploadDataType : TerraSDK.TerraError]
492
+ public let skipped: [TerraSDK.UploadDataType : TerraSDK.BackgroundSyncResult.Skip]
493
+ public enum Skip : Swift.Sendable, Swift.Equatable {
494
+ case alreadyRunning
495
+ case notAuthorized(TerraSDK.TerraError)
496
+ case awaitingConverter
497
+ public static func == (a: TerraSDK.BackgroundSyncResult.Skip, b: TerraSDK.BackgroundSyncResult.Skip) -> Swift.Bool
498
+ }
499
+ public var recordsUploaded: Swift.Int {
500
+ get
501
+ }
502
+ public var windowsSkipped: Swift.Int {
503
+ get
504
+ }
505
+ public var uploadedSomething: Swift.Bool {
506
+ get
507
+ }
508
+ public var hadFailure: Swift.Bool {
509
+ get
510
+ }
511
+ }
512
+ public struct SyncOutcome : Swift.Sendable, Swift.Equatable {
513
+ public let recordsUploaded: Swift.Int
514
+ public let windowsUploaded: Swift.Int
515
+ public let windowsSkipped: Swift.Int
516
+ public let syncedThrough: Foundation.Date
517
+ public static func == (a: TerraSDK.SyncOutcome, b: TerraSDK.SyncOutcome) -> Swift.Bool
518
+ }
519
+ public protocol DeviceKeyStore : Swift.Sendable {
520
+ func createKey(for source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeviceKey
521
+ func existingKey(for source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeviceKey?
522
+ func deleteKey(for source: TerraSDK.Source, generation: Swift.Int) throws
523
+ }
524
+ public struct DeviceKey : Swift.Sendable {
525
+ public let publicKeyBase64DER: Swift.String
526
+ public init(publicKeyBase64DER: Swift.String, sign: @escaping @Sendable (Foundation.Data) throws -> Foundation.Data)
527
+ public func signature(over message: Foundation.Data) throws -> Swift.String
528
+ }
529
+ public struct KeychainDeviceKeyStore : TerraSDK.DeviceKeyStore {
530
+ public init(service: Swift.String = "co.tryterra.sdk.devicekey")
531
+ public func createKey(for source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeviceKey
532
+ public func existingKey(for source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeviceKey?
533
+ public func deleteKey(for source: TerraSDK.Source, generation: Swift.Int) throws
534
+ }
535
+ public struct TerraEvent : Swift.Sendable, Swift.Equatable {
536
+ public let at: Foundation.Date
537
+ public let kind: TerraSDK.TerraEvent.Kind
538
+ public init(at: Foundation.Date, kind: TerraSDK.TerraEvent.Kind)
539
+ public enum Kind : Swift.Sendable, Swift.Equatable {
540
+ case connected(TerraSDK.Source)
541
+ case disconnected(TerraSDK.Source)
542
+ case linkRevoked(TerraSDK.Source)
543
+ case permissionResult(asked: Swift.Set<TerraSDK.DataCategory>, covered: Swift.Set<TerraSDK.DataCategory>)
544
+ case backgroundWake(TerraSDK.Source)
545
+ case backgroundWakeRefused(TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode)
546
+ case backgroundRefreshUnscheduled(identifier: Swift.String, source: TerraSDK.Source)
547
+ case uploadBatch(TerraSDK.UploadDataType, source: TerraSDK.Source, records: Swift.Int, bytes: Swift.Int)
548
+ case uploadFailed(TerraSDK.UploadDataType, source: TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode)
549
+ case retryScheduled(TerraSDK.UploadDataType, source: TerraSDK.Source, afterSeconds: Foundation.TimeInterval, attempt: Swift.Int)
550
+ case backfillProgress(TerraSDK.UploadDataType, source: TerraSDK.Source, uploaded: Swift.Int, skipped: Swift.Int)
551
+ case dailyDayTooLarge(source: TerraSDK.Source, day: Foundation.Date, bytes: Swift.Int)
552
+ case sleepWakeDateTooLarge(source: TerraSDK.Source, wakeDate: Foundation.Date, bytes: Swift.Int)
553
+ case serverBackfillQueued(TerraSDK.UploadDataType, source: TerraSDK.Source)
554
+ case serverBackfillCompleted(TerraSDK.UploadDataType, source: TerraSDK.Source, uploaded: Swift.Int)
555
+ case serverBackfillAbandoned(TerraSDK.UploadDataType, source: TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode)
556
+ case serverBackfillRefused(source: TerraSDK.Source)
557
+ case serverBackfillUnsupported(source: TerraSDK.Source)
558
+ case serverBackfillPollFailed(source: TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode)
559
+ case backgroundObservationUnavailable(TerraSDK.DataCategory, source: TerraSDK.Source)
560
+ case observationDropped(TerraSDK.DataCategory, source: TerraSDK.Source)
561
+ case samplesLogged(TerraSDK.DataCategory, count: Swift.Int, source: TerraSDK.Source)
562
+ case sampleDeleted(TerraSDK.DataCategory, source: TerraSDK.Source)
563
+ case plannedWorkoutUpdated(TerraSDK.Source)
564
+ case plannedWorkoutsScheduled(TerraSDK.Source, scheduled: Swift.Int, removed: Swift.Int, refused: Swift.Int)
565
+ case plannedWorkoutScheduleFailed(source: TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode)
566
+ case tokenRefreshed
567
+ case deviceKeyRevokeAnswered(TerraSDK.Source, outcome: TerraSDK.DeviceKeyRevokeOutcome)
568
+ case deviceKeyRevokeFailed(TerraSDK.Source, code: TerraSDK.TerraEvent.FailureCode, attempt: Swift.Int, owed: Swift.Bool)
569
+ case diagnosticsReported(TerraSDK.DiagnosticsReason, source: TerraSDK.Source)
570
+ public static func == (a: TerraSDK.TerraEvent.Kind, b: TerraSDK.TerraEvent.Kind) -> Swift.Bool
571
+ }
572
+ public enum FailureCode : Swift.String, Swift.Sendable, Swift.Equatable, Swift.Encodable {
573
+ case healthDataUnavailable, notConnected, tokenUnavailable, tokenRejected
574
+ case tokenProviderFailed, offline, timedOut, serverError, transport, malformedResponse
575
+ case userLimitReached, upgradeRequired, platform, deviceKeyUnavailable
576
+ case signatureRejected, linkRevoked, linkConflict, clockSkewed, devIDMismatch
577
+ case syncAlreadyRunning, linkAlreadyRunning, storeLocked, storeUnreadable
578
+ case deadlineExceeded, permissionDenied, authorizationNotDetermined
579
+ case sampleNotFound, rollbackIncomplete, distanceNotAttributable, bloodPressureIncomplete
580
+ case authorizationUnavailableInExtension, plannedWorkoutUnnamed
581
+ case routeAwaitingConverter
582
+ public init?(rawValue: Swift.String)
583
+ public typealias RawValue = Swift.String
584
+ public var rawValue: Swift.String {
585
+ get
586
+ }
587
+ }
588
+ public static func == (a: TerraSDK.TerraEvent, b: TerraSDK.TerraEvent) -> Swift.Bool
589
+ }
590
+ public enum DeviceKeyRevokeOutcome : Swift.String, Swift.Sendable, Swift.Equatable, Swift.Encodable {
591
+ case revoked
592
+ case alreadyRevoked
593
+ case routeAbsent
594
+ public init?(rawValue: Swift.String)
595
+ public typealias RawValue = Swift.String
596
+ public var rawValue: Swift.String {
597
+ get
598
+ }
599
+ }
600
+ public enum DiagnosticsState : Swift.Sendable, Swift.Equatable {
601
+ case healthy
602
+ case quiet(since: Foundation.Date)
603
+ case backgroundRestricted
604
+ case backgroundRefreshUnscheduled
605
+ case pendingRetry
606
+ case linkRevoked
607
+ case devIDMismatch
608
+ public static func == (a: TerraSDK.DiagnosticsState, b: TerraSDK.DiagnosticsState) -> Swift.Bool
609
+ }
610
+ public enum DiagnosticsReason : Swift.String, Swift.Sendable, Swift.Equatable, Swift.Encodable, Swift.CaseIterable {
611
+ case uploadFailed
612
+ case backfillAbandoned
613
+ case backgroundObservationUnavailable
614
+ case backgroundRestricted
615
+ case backgroundRefreshUnscheduled
616
+ case quiet
617
+ case requested
618
+ public init?(rawValue: Swift.String)
619
+ public typealias AllCases = [TerraSDK.DiagnosticsReason]
620
+ public typealias RawValue = Swift.String
621
+ nonisolated public static var allCases: [TerraSDK.DiagnosticsReason] {
622
+ get
623
+ }
624
+ public var rawValue: Swift.String {
625
+ get
626
+ }
627
+ }
628
+ public enum DiagnosticsPolicy {
629
+ public static let automaticPerDay: Swift.Int
630
+ public static func admits(_ send: TerraSDK.DiagnosticsSend, into ledger: [TerraSDK.DiagnosticsSend], notWithin interval: Foundation.TimeInterval, automaticLimit limit: Swift.Int?) -> Swift.Bool
631
+ public static let day: Swift.Double
632
+ public static let week: Swift.Double
633
+ public static let requestedInterval: Swift.Double
634
+ public struct Rule : Swift.Sendable, Swift.Equatable {
635
+ public let rate: Swift.Double
636
+ public let interval: Foundation.TimeInterval
637
+ public static func == (a: TerraSDK.DiagnosticsPolicy.Rule, b: TerraSDK.DiagnosticsPolicy.Rule) -> Swift.Bool
638
+ }
639
+ public static func rule(for reason: TerraSDK.DiagnosticsReason, code: TerraSDK.TerraEvent.FailureCode? = nil) -> TerraSDK.DiagnosticsPolicy.Rule?
640
+ public static func sampled(identity: Swift.String, rate: Swift.Double) -> Swift.Bool
641
+ }
642
+ public struct DiagnosticsSend : Swift.Sendable, Swift.Equatable, Swift.Codable {
643
+ public let key: Swift.String
644
+ public let at: Foundation.Date
645
+ public static let ledgerLimit: Swift.Int
646
+ public static func trimmed(_ ledger: [TerraSDK.DiagnosticsSend], now: Foundation.Date) -> [TerraSDK.DiagnosticsSend]
647
+ public init(key: Swift.String, at: Foundation.Date)
648
+ public static func == (a: TerraSDK.DiagnosticsSend, b: TerraSDK.DiagnosticsSend) -> Swift.Bool
649
+ public func encode(to encoder: any Swift.Encoder) throws
650
+ public init(from decoder: any Swift.Decoder) throws
651
+ }
652
+ public struct SupportReport : Swift.Sendable, Swift.Equatable, Swift.Encodable {
653
+ public let sdkVersion: Swift.String
654
+ public let generatedAt: Foundation.Date
655
+ public let state: TerraSDK.DiagnosticsState
656
+ public let lastDelivery: Foundation.Date?
657
+ public let isConnected: Swift.Bool
658
+ public let requestedCategories: [Swift.String]
659
+ public let requestedWrites: [Swift.String]
660
+ public let requestedWorkouts: [Swift.String]
661
+ public let recentEvents: [TerraSDK.TerraEvent]
662
+ public func json() throws -> Foundation.Data
663
+ public static func == (a: TerraSDK.SupportReport, b: TerraSDK.SupportReport) -> Swift.Bool
664
+ public func encode(to encoder: any Swift.Encoder) throws
665
+ }
666
+ extension TerraSDK.DiagnosticsState : Swift.Encodable {
667
+ public func encode(to encoder: any Swift.Encoder) throws
668
+ }
669
+ extension TerraSDK.TerraEvent : Swift.Encodable {
670
+ public func encode(to encoder: any Swift.Encoder) throws
671
+ }
672
+ public enum EndUser : Swift.Sendable, Swift.Hashable {
673
+ case reference(Swift.String)
674
+ case anonymous
675
+ public static func == (a: TerraSDK.EndUser, b: TerraSDK.EndUser) -> Swift.Bool
676
+ public func hash(into hasher: inout Swift.Hasher)
677
+ public var hashValue: Swift.Int {
678
+ get
679
+ }
680
+ }
681
+ public enum TerraError : Swift.Error, Swift.Sendable {
682
+ case healthDataUnavailable
683
+ case notConnected(TerraSDK.Source)
684
+ case routeAwaitingConverter(TerraSDK.UploadDataType)
685
+ case tokenUnavailable
686
+ case tokenRejected
687
+ case tokenProviderFailed(any Swift.Error)
688
+ case network(TerraSDK.TerraError.Network)
689
+ case userLimitReached
690
+ case upgradeRequired
691
+ case platform(any Swift.Error)
692
+ case deviceKeyUnavailable
693
+ case signatureRejected
694
+ case clockSkewed
695
+ case linkRevoked(TerraSDK.Source)
696
+ case devIDMismatch(TerraSDK.Source)
697
+ case linkConflict
698
+ case syncAlreadyRunning(TerraSDK.UploadDataType)
699
+ case linkAlreadyRunning(TerraSDK.Source)
700
+ case storeLocked
701
+ case storeUnreadable
702
+ case deadlineExceeded
703
+ case permissionDenied(TerraSDK.DataCategory)
704
+ case authorizationNotDetermined
705
+ case sampleNotFound(Foundation.UUID)
706
+ indirect case rollbackIncomplete(remaining: [Foundation.UUID], cause: TerraSDK.TerraError)
707
+ case distanceNotAttributable(TerraSDK.WorkoutActivity)
708
+ case bloodPressureIncomplete
709
+ case plannedWorkoutUnnamed
710
+ case authorizationUnavailableInExtension
711
+ public enum Network : Swift.Sendable, Swift.Equatable {
712
+ case offline
713
+ case timedOut
714
+ case serverError(status: Swift.Int)
715
+ case throttled(retryAfter: Foundation.TimeInterval?)
716
+ case transport(code: Swift.Int)
717
+ case malformedResponse
718
+ public var code: Swift.String {
719
+ get
720
+ }
721
+ public static func == (a: TerraSDK.TerraError.Network, b: TerraSDK.TerraError.Network) -> Swift.Bool
722
+ }
723
+ public var code: Swift.String {
724
+ get
725
+ }
726
+ public var isRetryable: Swift.Bool {
727
+ get
728
+ }
729
+ public var isAuthorizationRefusal: Swift.Bool {
730
+ get
731
+ }
732
+ }
733
+ extension TerraSDK.TerraError : Foundation.LocalizedError {
734
+ public var errorDescription: Swift.String? {
735
+ get
736
+ }
737
+ }
738
+ extension TerraSDK.TerraError : Swift.Equatable {
739
+ public static func == (lhs: TerraSDK.TerraError, rhs: TerraSDK.TerraError) -> Swift.Bool
740
+ }
741
+ public struct HTTPBackend : TerraSDK.TerraBackend {
742
+ public static let defaultTimeout: Swift.Double
743
+ public init(baseURL: Foundation.URL, session: Foundation.URLSession? = nil)
744
+ public func link(_ request: TerraSDK.LinkRequest) async throws -> TerraSDK.LinkGrant
745
+ public func upload(_ request: TerraSDK.UploadRequest) async throws
746
+ public func plannedWorkouts(_ request: TerraSDK.PlannedWorkoutRequest) async throws -> [TerraSDK.PlannedWorkout]
747
+ public func updatePlannedWorkout(_ request: TerraSDK.PlannedWorkoutUpdate) async throws
748
+ public func pendingPlanActions(_ request: TerraSDK.PlanQueueRequest) async throws -> [TerraSDK.PendingPlanAction]
749
+ public func acknowledgePlanActions(_ request: TerraSDK.PlanAckRequest) async throws
750
+ public func reportScheduledWorkouts(_ request: TerraSDK.ScheduledWorkoutReportRequest) async throws
751
+ public func backfillRequests(_ request: TerraSDK.BackfillPollRequest) async throws -> [TerraSDK.BackfillDirective]
752
+ public func acknowledgeBackfills(_ request: TerraSDK.BackfillAckRequest) async throws
753
+ public func sendDiagnostics(_ request: TerraSDK.DiagnosticsRequest) async throws
754
+ public func revokeDeviceKey(_ request: TerraSDK.RevokeDeviceKeyRequest) async throws
755
+ }
756
+ public struct HealthAccess : Swift.Sendable, Swift.Equatable {
757
+ public var read: Swift.Set<TerraSDK.DataCategory>
758
+ public var write: Swift.Set<TerraSDK.DataCategory>
759
+ public var workouts: Swift.Set<TerraSDK.WorkoutScope>
760
+ public init(read: Swift.Set<TerraSDK.DataCategory> = [], write: Swift.Set<TerraSDK.DataCategory> = [], workouts: Swift.Set<TerraSDK.WorkoutScope> = [])
761
+ public var isEmpty: Swift.Bool {
762
+ get
763
+ }
764
+ public func union(_ other: TerraSDK.HealthAccess) -> TerraSDK.HealthAccess
765
+ public func intersection(_ other: TerraSDK.HealthAccess) -> TerraSDK.HealthAccess
766
+ public static func == (a: TerraSDK.HealthAccess, b: TerraSDK.HealthAccess) -> Swift.Bool
767
+ }
768
+ extension TerraSDK.HealthKitStore {
769
+ public func bodyReadings(in interval: Foundation.DateInterval) async throws -> [TerraSDK.BodyReading]
770
+ public func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
771
+ public func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
772
+ public func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
773
+ public func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
774
+ public func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
775
+ public func athleteProfile() async throws -> TerraSDK.AthleteProfile?
776
+ public func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
777
+ public func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
778
+ }
779
+ @_hasMissingDesignatedInitializers public actor HealthKitStore : TerraSDK.HealthStore {
780
+ nonisolated final public let isAvailable: Swift.Bool
781
+ public init(anchors: any TerraSDK.DeviceStore = KeychainDeviceStore())
782
+ public func readStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
783
+ nonisolated public var canPresentAuthorization: Swift.Bool {
784
+ get
785
+ }
786
+ public func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
787
+ public func requestAccess(_ access: TerraSDK.HealthAccess) async throws
788
+ public func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
789
+ public func save(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
790
+ public func save(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
791
+ public func save(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
792
+ public func writeAccess(for entries: [TerraSDK.WorkoutEntry]) async throws -> TerraSDK.HealthAccess
793
+ public func requireWritable(_ entries: [TerraSDK.WorkoutEntry]) async throws
794
+ public func save(_ entry: TerraSDK.WorkoutEntry) async throws -> Foundation.UUID
795
+ public func delete(_ id: Foundation.UUID, in category: TerraSDK.DataCategory) async throws
796
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int) async throws -> TerraSDK.HealthChanges
797
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
798
+ public func heartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HeartRateSample]
799
+ public func restingHeartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.RestingHeartRateSample]
800
+ public func stepSamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.StepCount]
801
+ public func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
802
+ public func sleep(in interval: Foundation.DateInterval) async throws -> [TerraSDK.SleepSegment]
803
+ public func workouts(in interval: Foundation.DateInterval) async throws -> [TerraSDK.Workout]
804
+ nonisolated public func observe(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) -> _Concurrency.AsyncStream<TerraSDK.ObservedWake>
805
+ public func enableBackgroundObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> Swift.Bool
806
+ public func replayObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> TerraSDK.ObservedChange
807
+ @objc deinit
808
+ @available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
809
+ @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor {
810
+ get
811
+ }
812
+ }
813
+ extension TerraSDK.HealthKitStore {
814
+ public func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
815
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
816
+ nonisolated public var appliesDayTotalPolicy: Swift.Bool {
817
+ get
818
+ }
819
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
820
+ }
821
+ extension TerraSDK.HealthKitStore {
822
+ public func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
823
+ public func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
824
+ }
825
+ public struct HealthObservation : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
826
+ public enum Category : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
827
+ case symptom
828
+ case selfCare
829
+ case lab
830
+ public init?(rawValue: Swift.String)
831
+ public typealias AllCases = [TerraSDK.HealthObservation.Category]
832
+ public typealias RawValue = Swift.String
833
+ nonisolated public static var allCases: [TerraSDK.HealthObservation.Category] {
834
+ get
835
+ }
836
+ public var rawValue: Swift.String {
837
+ get
838
+ }
839
+ }
840
+ public enum Severity : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
841
+ case unspecified
842
+ case notPresent
843
+ case mild
844
+ case moderate
845
+ case severe
846
+ public init?(rawValue: Swift.String)
847
+ public typealias AllCases = [TerraSDK.HealthObservation.Severity]
848
+ public typealias RawValue = Swift.String
849
+ nonisolated public static var allCases: [TerraSDK.HealthObservation.Severity] {
850
+ get
851
+ }
852
+ public var rawValue: Swift.String {
853
+ get
854
+ }
855
+ }
856
+ public enum Value : Swift.Sendable, Swift.Equatable {
857
+ case quantity(Swift.Double, unit: Swift.String)
858
+ public static func == (a: TerraSDK.HealthObservation.Value, b: TerraSDK.HealthObservation.Value) -> Swift.Bool
859
+ }
860
+ public let id: Foundation.UUID
861
+ public let storeIdentifier: Swift.String
862
+ public let category: TerraSDK.HealthObservation.Category
863
+ public let interval: Foundation.DateInterval
864
+ public let severity: TerraSDK.HealthObservation.Severity?
865
+ public let value: TerraSDK.HealthObservation.Value?
866
+ public let source: TerraSDK.SampleSource
867
+ public let userEntered: Swift.Bool
868
+ public let timeZone: Foundation.TimeZone?
869
+ public init(id: Foundation.UUID, storeIdentifier: Swift.String, category: TerraSDK.HealthObservation.Category, interval: Foundation.DateInterval, severity: TerraSDK.HealthObservation.Severity? = nil, value: TerraSDK.HealthObservation.Value? = nil, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
870
+ public static func == (a: TerraSDK.HealthObservation, b: TerraSDK.HealthObservation) -> Swift.Bool
871
+ public typealias ID = Foundation.UUID
872
+ }
873
+ public struct HealthChanges : Swift.Sendable {
874
+ public var heartRate: [TerraSDK.HeartRateSample]
875
+ public var steps: [TerraSDK.StepCount]
876
+ public var restingHeartRate: [TerraSDK.RestingHeartRateSample]
877
+ public var sleep: [TerraSDK.SleepSegment]
878
+ public var workouts: [TerraSDK.Workout]
879
+ public var workoutIntensity: [TerraSDK.WorkoutIntensitySample]
880
+ public var workoutRoutes: [TerraSDK.WorkoutRoute]
881
+ public var intensityArrivals: [TerraSDK.WorkoutIntensityArrival]
882
+ public var routeArrivals: [TerraSDK.WorkoutRouteArrival]
883
+ public var body: [TerraSDK.BodyReading]
884
+ public var nutrients: [TerraSDK.DietaryQuantity]
885
+ public var hydration: [TerraSDK.HydrationSample]
886
+ public var menstruation: [TerraSDK.MenstruationFlowDay]
887
+ public var menstrualEvents: [TerraSDK.MenstrualEvent]
888
+ public var healthObservations: [TerraSDK.HealthObservation]
889
+ public var athlete: TerraSDK.AthleteProfile?
890
+ public var dayTotals: [TerraSDK.DayTotal]
891
+ public var intraday: [TerraSDK.IntradaySample]
892
+ public var readAt: Foundation.Date?
893
+ public var bodySeriesArrivals: [TerraSDK.BodySeriesArrival]
894
+ public var totalRelevantInstants: [Foundation.Date]
895
+ public var anchor: Foundation.Data?
896
+ public var more: Swift.Bool
897
+ public var isEmpty: Swift.Bool {
898
+ get
899
+ }
900
+ public init(heartRate: [TerraSDK.HeartRateSample] = [], steps: [TerraSDK.StepCount] = [], restingHeartRate: [TerraSDK.RestingHeartRateSample] = [], sleep: [TerraSDK.SleepSegment] = [], workouts: [TerraSDK.Workout] = [], anchor: Foundation.Data? = nil, more: Swift.Bool = false)
901
+ }
902
+ public struct BodySeriesArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
903
+ public let id: Foundation.UUID
904
+ public let instant: Foundation.Date
905
+ public init(id: Foundation.UUID, instant: Foundation.Date)
906
+ public static func == (a: TerraSDK.BodySeriesArrival, b: TerraSDK.BodySeriesArrival) -> Swift.Bool
907
+ public func hash(into hasher: inout Swift.Hasher)
908
+ public var hashValue: Swift.Int {
909
+ get
910
+ }
911
+ }
912
+ public struct WorkoutIntensityArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
913
+ public let id: Foundation.UUID
914
+ public let instant: Foundation.Date
915
+ public init(id: Foundation.UUID, instant: Foundation.Date)
916
+ public static func == (a: TerraSDK.WorkoutIntensityArrival, b: TerraSDK.WorkoutIntensityArrival) -> Swift.Bool
917
+ public func hash(into hasher: inout Swift.Hasher)
918
+ public var hashValue: Swift.Int {
919
+ get
920
+ }
921
+ }
922
+ public struct WorkoutRouteArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
923
+ public let id: Foundation.UUID
924
+ public let instant: Foundation.Date
925
+ public init(id: Foundation.UUID, instant: Foundation.Date)
926
+ public static func == (a: TerraSDK.WorkoutRouteArrival, b: TerraSDK.WorkoutRouteArrival) -> Swift.Bool
927
+ public func hash(into hasher: inout Swift.Hasher)
928
+ public var hashValue: Swift.Int {
929
+ get
930
+ }
931
+ }
932
+ public protocol HealthStore : Swift.Sendable {
933
+ var isAvailable: Swift.Bool { get }
934
+ var canPresentAuthorization: Swift.Bool { get }
935
+ func readStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
936
+ func requestAccess(_ access: TerraSDK.HealthAccess) async throws
937
+ func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
938
+ func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
939
+ func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
940
+ func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
941
+ var appliesDayTotalPolicy: Swift.Bool { get }
942
+ func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int) async throws -> TerraSDK.HealthChanges
943
+ func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
944
+ func observe(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) -> _Concurrency.AsyncStream<TerraSDK.ObservedWake>
945
+ func enableBackgroundObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> Swift.Bool
946
+ func replayObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> TerraSDK.ObservedChange
947
+ func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
948
+ func save(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
949
+ func save(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
950
+ func save(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
951
+ func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
952
+ func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
953
+ func save(_ entry: TerraSDK.WorkoutEntry) async throws -> Foundation.UUID
954
+ func writeAccess(for entries: [TerraSDK.WorkoutEntry]) async throws -> TerraSDK.HealthAccess
955
+ func requireWritable(_ entries: [TerraSDK.WorkoutEntry]) async throws
956
+ func delete(_ id: Foundation.UUID, in category: TerraSDK.DataCategory) async throws
957
+ func heartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HeartRateSample]
958
+ func restingHeartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.RestingHeartRateSample]
959
+ func stepSamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.StepCount]
960
+ func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
961
+ func sleep(in interval: Foundation.DateInterval) async throws -> [TerraSDK.SleepSegment]
962
+ func workouts(in interval: Foundation.DateInterval) async throws -> [TerraSDK.Workout]
963
+ func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
964
+ func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
965
+ func bodyReadings(in interval: Foundation.DateInterval) async throws -> [TerraSDK.BodyReading]
966
+ func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
967
+ func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
968
+ func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
969
+ func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
970
+ func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
971
+ func athleteProfile() async throws -> TerraSDK.AthleteProfile?
972
+ }
973
+ extension TerraSDK.HealthStore {
974
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
975
+ public func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
976
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
977
+ public var appliesDayTotalPolicy: Swift.Bool {
978
+ get
979
+ }
980
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
981
+ public var canPresentAuthorization: Swift.Bool {
982
+ get
983
+ }
984
+ public func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
985
+ public func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
986
+ public func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
987
+ public func bodyReadings(in interval: Foundation.DateInterval) async throws -> [TerraSDK.BodyReading]
988
+ public func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
989
+ public func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
990
+ public func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
991
+ public func athleteProfile() async throws -> TerraSDK.AthleteProfile?
992
+ public func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
993
+ public func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
994
+ public func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
995
+ public func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
996
+ public func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
997
+ }
998
+ public struct KeychainDeviceStore : TerraSDK.DeviceStore {
999
+ public var storageDomain: Swift.String {
1000
+ get
1001
+ }
1002
+ public func linkDiagnostics(source: TerraSDK.Source) throws -> TerraSDK.LinkDiagnostics?
1003
+ public func saveLastDelivery(_ date: Foundation.Date, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1004
+ public func loadDiagnosticsSends() throws -> [TerraSDK.DiagnosticsSend]
1005
+ public func reserveDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend, notWithin interval: Foundation.TimeInterval, automaticLimit limit: Swift.Int?) throws -> Swift.Bool
1006
+ public func releaseDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend) throws
1007
+ public func loadObservationAnchor(key: Swift.String) throws -> Foundation.Data?
1008
+ public func saveObservationAnchor(_ anchor: Foundation.Data, key: Swift.String) throws
1009
+ public func linkGeneration(source: TerraSDK.Source) -> Swift.Int
1010
+ public func loadDeferredObservations(source: TerraSDK.Source) throws -> [TerraSDK.DataCategory : TerraSDK.DeferredWake]
1011
+ @discardableResult
1012
+ public func deferObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeferredWake
1013
+ public func retireObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, ifStillAt wake: TerraSDK.DeferredWake) throws
1014
+ public func claimWakeSync(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1015
+ public func takeWakesOwed(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1016
+ public func releaseWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1017
+ public func claimSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1018
+ public func releaseSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1019
+ public func beginRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1020
+ public func endRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1021
+ public func lastWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) -> Foundation.Date?
1022
+ public func noteWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, at time: Foundation.Date)
1023
+ public func pausedUntil(source: TerraSDK.Source) -> Foundation.Date?
1024
+ public func pause(source: TerraSDK.Source, until: Foundation.Date)
1025
+ public func claimLink(source: TerraSDK.Source) -> Swift.Bool
1026
+ public func releaseLink(source: TerraSDK.Source)
1027
+ public init(domain: Swift.String = "co.tryterra.sdk")
1028
+ public func loadConnection(source: TerraSDK.Source) throws -> TerraSDK.StoredConnection?
1029
+ public func completeLink(_ connection: TerraSDK.StoredConnection) throws
1030
+ @discardableResult
1031
+ public func updateConnection(_ connection: TerraSDK.StoredConnection, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1032
+ @discardableResult
1033
+ public func endLink(source: TerraSDK.Source, ifGeneration generation: Swift.Int?, owing revocation: TerraSDK.PendingRevocation?) throws -> Swift.Int?
1034
+ public func loadProviderUserID() throws -> Swift.String?
1035
+ public func saveProviderUserID(_ id: Swift.String) throws
1036
+ public func activeDevID() throws -> Swift.String?
1037
+ @discardableResult
1038
+ public func claimDevID(_ devID: Swift.String) throws -> Swift.Bool
1039
+ public func loadRequestedAccess() throws -> TerraSDK.HealthAccess
1040
+ @discardableResult
1041
+ public func recordRequestedAccess(_ access: TerraSDK.HealthAccess) throws -> TerraSDK.HealthAccess
1042
+ public func loadSyncedThrough(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1043
+ public func saveSyncedThrough(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1044
+ public func loadSyncedFrom(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1045
+ public func saveSyncedFrom(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1046
+ public func loadServerBackfills(source: TerraSDK.Source) throws -> [TerraSDK.StoredBackfillRequest]
1047
+ @discardableResult
1048
+ public func upsertServerBackfill(_ request: TerraSDK.StoredBackfillRequest, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1049
+ public func removeServerBackfill(reference: Swift.String, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1050
+ public func loadPendingRevocations(source: TerraSDK.Source) throws -> [TerraSDK.PendingRevocation]
1051
+ public func claimRevocations(source: TerraSDK.Source) -> Swift.Bool
1052
+ @discardableResult
1053
+ public func releaseRevocations(source: TerraSDK.Source) -> Swift.Bool
1054
+ public func savePendingRevocation(_ revocation: TerraSDK.PendingRevocation) throws
1055
+ public func removePendingRevocation(source: TerraSDK.Source, generation: Swift.Int) throws
1056
+ public func beginLink(source: TerraSDK.Source, owing revocation: TerraSDK.PendingRevocation?) throws -> TerraSDK.LinkTransition
1057
+ public func loadSyncAnchor(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Data?
1058
+ public func saveSyncAnchor(_ anchor: Foundation.Data, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1059
+ }
1060
+ public struct MenstruationFlowDay : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1061
+ public enum Flow : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1062
+ case unspecified
1063
+ case light
1064
+ case medium
1065
+ case heavy
1066
+ case noFlow
1067
+ public init?(rawValue: Swift.String)
1068
+ public typealias AllCases = [TerraSDK.MenstruationFlowDay.Flow]
1069
+ public typealias RawValue = Swift.String
1070
+ nonisolated public static var allCases: [TerraSDK.MenstruationFlowDay.Flow] {
1071
+ get
1072
+ }
1073
+ public var rawValue: Swift.String {
1074
+ get
1075
+ }
1076
+ }
1077
+ public let id: Foundation.UUID
1078
+ public let interval: Foundation.DateInterval
1079
+ public let flow: TerraSDK.MenstruationFlowDay.Flow
1080
+ public let cycleStart: Swift.Bool
1081
+ public let source: TerraSDK.SampleSource
1082
+ public let userEntered: Swift.Bool
1083
+ public let timeZone: Foundation.TimeZone?
1084
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, flow: TerraSDK.MenstruationFlowDay.Flow, cycleStart: Swift.Bool, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1085
+ public static func == (a: TerraSDK.MenstruationFlowDay, b: TerraSDK.MenstruationFlowDay) -> Swift.Bool
1086
+ public typealias ID = Foundation.UUID
1087
+ }
1088
+ public struct MenstrualEvent : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1089
+ public enum Kind : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1090
+ case intermenstrualBleeding
1091
+ case ovulationTest
1092
+ case cervicalMucus
1093
+ case sexualActivity
1094
+ case pregnancyTest
1095
+ case progesteroneTest
1096
+ case pregnancy
1097
+ case lactation
1098
+ case contraceptive
1099
+ case persistentIntermenstrualBleeding
1100
+ case infrequentCycles
1101
+ case irregularCycles
1102
+ case prolongedPeriods
1103
+ case bleedingDuringPregnancy
1104
+ case bleedingAfterPregnancy
1105
+ public var values: [Swift.String] {
1106
+ get
1107
+ }
1108
+ public init?(rawValue: Swift.String)
1109
+ public typealias AllCases = [TerraSDK.MenstrualEvent.Kind]
1110
+ public typealias RawValue = Swift.String
1111
+ nonisolated public static var allCases: [TerraSDK.MenstrualEvent.Kind] {
1112
+ get
1113
+ }
1114
+ public var rawValue: Swift.String {
1115
+ get
1116
+ }
1117
+ }
1118
+ public let id: Foundation.UUID
1119
+ public let kind: TerraSDK.MenstrualEvent.Kind
1120
+ public let instant: Foundation.Date
1121
+ public let value: Swift.String?
1122
+ public let source: TerraSDK.SampleSource
1123
+ public let userEntered: Swift.Bool
1124
+ public let timeZone: Foundation.TimeZone?
1125
+ public let storeIdentifier: Swift.String
1126
+ public init(id: Foundation.UUID, kind: TerraSDK.MenstrualEvent.Kind, storeIdentifier: Swift.String, instant: Foundation.Date, value: Swift.String? = nil, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1127
+ public static func == (a: TerraSDK.MenstrualEvent, b: TerraSDK.MenstrualEvent) -> Swift.Bool
1128
+ public typealias ID = Foundation.UUID
1129
+ }
1130
+ public struct DietaryQuantity : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1131
+ public let id: Foundation.UUID
1132
+ public let nutrient: TerraSDK.Nutrient
1133
+ public let value: Swift.Double
1134
+ public let interval: Foundation.DateInterval
1135
+ public let mealType: TerraSDK.MealType
1136
+ public let name: Swift.String?
1137
+ public let foodCorrelationID: Foundation.UUID?
1138
+ public let source: TerraSDK.SampleSource
1139
+ public let userEntered: Swift.Bool
1140
+ public let timeZone: Foundation.TimeZone?
1141
+ public init(id: Foundation.UUID, nutrient: TerraSDK.Nutrient, value: Swift.Double, interval: Foundation.DateInterval, mealType: TerraSDK.MealType = .unknown, name: Swift.String? = nil, foodCorrelationID: Foundation.UUID? = nil, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1142
+ public static func == (a: TerraSDK.DietaryQuantity, b: TerraSDK.DietaryQuantity) -> Swift.Bool
1143
+ public typealias ID = Foundation.UUID
1144
+ }
1145
+ public enum MealType : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1146
+ case breakfast
1147
+ case lunch
1148
+ case dinner
1149
+ case snack
1150
+ case unknown
1151
+ public init?(rawValue: Swift.String)
1152
+ public typealias AllCases = [TerraSDK.MealType]
1153
+ public typealias RawValue = Swift.String
1154
+ nonisolated public static var allCases: [TerraSDK.MealType] {
1155
+ get
1156
+ }
1157
+ public var rawValue: Swift.String {
1158
+ get
1159
+ }
1160
+ }
1161
+ public enum Nutrient : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1162
+ case energyConsumed
1163
+ case protein
1164
+ case carbohydrates
1165
+ case fatTotal
1166
+ case fatSaturated
1167
+ case fatMonounsaturated
1168
+ case fatPolyunsaturated
1169
+ case sugar
1170
+ case fiber
1171
+ case cholesterol
1172
+ case sodium
1173
+ case potassium
1174
+ case calcium
1175
+ case iron
1176
+ case magnesium
1177
+ case zinc
1178
+ case phosphorus
1179
+ case iodine
1180
+ case manganese
1181
+ case molybdenum
1182
+ case selenium
1183
+ case copper
1184
+ case chromium
1185
+ case chloride
1186
+ case caffeine
1187
+ case vitaminA
1188
+ case vitaminC
1189
+ case vitaminD
1190
+ case vitaminE
1191
+ case vitaminK
1192
+ case vitaminB6
1193
+ case vitaminB12
1194
+ case thiamin
1195
+ case riboflavin
1196
+ case niacin
1197
+ case folate
1198
+ case biotin
1199
+ case pantothenicAcid
1200
+ public var unit: Swift.String {
1201
+ get
1202
+ }
1203
+ public init?(rawValue: Swift.String)
1204
+ public typealias AllCases = [TerraSDK.Nutrient]
1205
+ public typealias RawValue = Swift.String
1206
+ nonisolated public static var allCases: [TerraSDK.Nutrient] {
1207
+ get
1208
+ }
1209
+ public var rawValue: Swift.String {
1210
+ get
1211
+ }
1212
+ }
1213
+ public struct HydrationSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1214
+ public let id: Foundation.UUID
1215
+ public let interval: Foundation.DateInterval
1216
+ public let millilitres: Swift.Double
1217
+ public let source: TerraSDK.SampleSource
1218
+ public let userEntered: Swift.Bool
1219
+ public let timeZone: Foundation.TimeZone?
1220
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, millilitres: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1221
+ public static func == (a: TerraSDK.HydrationSample, b: TerraSDK.HydrationSample) -> Swift.Bool
1222
+ public typealias ID = Foundation.UUID
1223
+ }
1224
+ public struct PlannedWorkout : Swift.Sendable, Swift.Equatable, Swift.Identifiable, Swift.Decodable {
1225
+ public let id: Swift.String
1226
+ public let plannedOn: Foundation.DateComponents
1227
+ public let activity: TerraSDK.WorkoutActivity
1228
+ public let title: Swift.String?
1229
+ public let completedAt: Foundation.Date?
1230
+ public init(id: Swift.String, plannedOn: Foundation.DateComponents, activity: TerraSDK.WorkoutActivity, title: Swift.String? = nil, completedAt: Foundation.Date? = nil)
1231
+ public init(from decoder: any Swift.Decoder) throws
1232
+ public static func == (a: TerraSDK.PlannedWorkout, b: TerraSDK.PlannedWorkout) -> Swift.Bool
1233
+ public typealias ID = Swift.String
1234
+ }
1235
+ public struct SampleSource : Swift.Sendable, Swift.Equatable, Swift.Hashable {
1236
+ public let name: Swift.String
1237
+ public let bundleID: Swift.String
1238
+ public let productType: Swift.String?
1239
+ public let deviceType: TerraSDK.DeviceType?
1240
+ public init(name: Swift.String, bundleID: Swift.String, productType: Swift.String? = nil, deviceType: TerraSDK.DeviceType? = nil)
1241
+ public static func == (a: TerraSDK.SampleSource, b: TerraSDK.SampleSource) -> Swift.Bool
1242
+ public func hash(into hasher: inout Swift.Hasher)
1243
+ public var hashValue: Swift.Int {
1244
+ get
1245
+ }
1246
+ }
1247
+ public enum DeviceType : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1248
+ case phone
1249
+ case scale
1250
+ case sensor
1251
+ public init?(rawValue: Swift.String)
1252
+ public typealias AllCases = [TerraSDK.DeviceType]
1253
+ public typealias RawValue = Swift.String
1254
+ nonisolated public static var allCases: [TerraSDK.DeviceType] {
1255
+ get
1256
+ }
1257
+ public var rawValue: Swift.String {
1258
+ get
1259
+ }
1260
+ }
1261
+ public enum MotionContext : Swift.String, Swift.Sendable, Swift.Equatable {
1262
+ case unknown
1263
+ case sedentary
1264
+ case active
1265
+ public init?(rawValue: Swift.String)
1266
+ public typealias RawValue = Swift.String
1267
+ public var rawValue: Swift.String {
1268
+ get
1269
+ }
1270
+ }
1271
+ public struct HeartRateSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1272
+ public let id: Foundation.UUID
1273
+ public let time: Foundation.Date
1274
+ public let beatsPerMinute: Swift.Double
1275
+ public let source: TerraSDK.SampleSource
1276
+ public let motionContext: TerraSDK.MotionContext?
1277
+ public let userEntered: Swift.Bool
1278
+ public let timeZone: Foundation.TimeZone?
1279
+ public init(id: Foundation.UUID, time: Foundation.Date, beatsPerMinute: Swift.Double, source: TerraSDK.SampleSource, motionContext: TerraSDK.MotionContext? = nil, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1280
+ public static func == (a: TerraSDK.HeartRateSample, b: TerraSDK.HeartRateSample) -> Swift.Bool
1281
+ public typealias ID = Foundation.UUID
1282
+ }
1283
+ public struct StepCount : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1284
+ public let interval: Foundation.DateInterval
1285
+ public let steps: Swift.Int
1286
+ public let source: TerraSDK.SampleSource
1287
+ public let userEntered: Swift.Bool
1288
+ public let uuid: Foundation.UUID?
1289
+ public let timeZone: Foundation.TimeZone?
1290
+ public var id: Swift.String {
1291
+ get
1292
+ }
1293
+ public init(interval: Foundation.DateInterval, steps: Swift.Int, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil, uuid: Foundation.UUID? = nil)
1294
+ public static func == (a: TerraSDK.StepCount, b: TerraSDK.StepCount) -> Swift.Bool
1295
+ public typealias ID = Swift.String
1296
+ }
1297
+ public struct RestingHeartRateSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1298
+ public let id: Foundation.UUID
1299
+ public let interval: Foundation.DateInterval
1300
+ public let beatsPerMinute: Swift.Double
1301
+ public let source: TerraSDK.SampleSource
1302
+ public let userEntered: Swift.Bool
1303
+ public let timeZone: Foundation.TimeZone?
1304
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, beatsPerMinute: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1305
+ public static func == (a: TerraSDK.RestingHeartRateSample, b: TerraSDK.RestingHeartRateSample) -> Swift.Bool
1306
+ public typealias ID = Foundation.UUID
1307
+ }
1308
+ public struct SleepSegment : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1309
+ public let id: Foundation.UUID
1310
+ public let interval: Foundation.DateInterval
1311
+ public let stage: TerraSDK.SleepStage
1312
+ public let source: TerraSDK.SampleSource
1313
+ public let userEntered: Swift.Bool
1314
+ public let timeZone: Foundation.TimeZone?
1315
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, stage: TerraSDK.SleepStage, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1316
+ public static func == (a: TerraSDK.SleepSegment, b: TerraSDK.SleepSegment) -> Swift.Bool
1317
+ public typealias ID = Foundation.UUID
1318
+ }
1319
+ public enum SleepStage : Swift.Sendable, Swift.Equatable {
1320
+ case inBed
1321
+ case awake
1322
+ case asleep
1323
+ case light
1324
+ case deep
1325
+ case rem
1326
+ case unknown(Swift.String)
1327
+ public static func == (a: TerraSDK.SleepStage, b: TerraSDK.SleepStage) -> Swift.Bool
1328
+ }
1329
+ public struct Workout : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1330
+ public let id: Foundation.UUID
1331
+ public let interval: Foundation.DateInterval
1332
+ public let activity: TerraSDK.WorkoutActivity
1333
+ public let activityTypeCode: Swift.Int
1334
+ public let indoor: Swift.Bool
1335
+ public let activeEnergyKilocalories: Swift.Double?
1336
+ public let distanceMeters: Swift.Double?
1337
+ public let source: TerraSDK.SampleSource
1338
+ public let userEntered: Swift.Bool
1339
+ public let timeZone: Foundation.TimeZone?
1340
+ public let stats: TerraSDK.WorkoutStats?
1341
+ public let events: [TerraSDK.WorkoutEvent]
1342
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, activity: TerraSDK.WorkoutActivity, activityTypeCode: Swift.Int, indoor: Swift.Bool = false, activeEnergyKilocalories: Swift.Double? = nil, distanceMeters: Swift.Double? = nil, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil, stats: TerraSDK.WorkoutStats? = nil, events: [TerraSDK.WorkoutEvent] = [])
1343
+ public static func == (a: TerraSDK.Workout, b: TerraSDK.Workout) -> Swift.Bool
1344
+ public typealias ID = Foundation.UUID
1345
+ }
1346
+ public struct WorkoutStats : Swift.Sendable, Swift.Equatable {
1347
+ public let steps: Swift.Int?
1348
+ public let basalEnergyKilocalories: Swift.Double?
1349
+ public let swimmingStrokes: Swift.Int?
1350
+ public let swimmingLaps: Swift.Int?
1351
+ public let elevationGainMeters: Swift.Double?
1352
+ public var isEmpty: Swift.Bool {
1353
+ get
1354
+ }
1355
+ public init(steps: Swift.Int? = nil, basalEnergyKilocalories: Swift.Double? = nil, swimmingStrokes: Swift.Int? = nil, swimmingLaps: Swift.Int? = nil, elevationGainMeters: Swift.Double? = nil)
1356
+ public static func == (a: TerraSDK.WorkoutStats, b: TerraSDK.WorkoutStats) -> Swift.Bool
1357
+ }
1358
+ public struct WorkoutEvent : Swift.Sendable, Swift.Equatable {
1359
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1360
+ case lap
1361
+ case segment
1362
+ case pause
1363
+ case resume
1364
+ case marker
1365
+ public init?(rawValue: Swift.String)
1366
+ public typealias AllCases = [TerraSDK.WorkoutEvent.Kind]
1367
+ public typealias RawValue = Swift.String
1368
+ nonisolated public static var allCases: [TerraSDK.WorkoutEvent.Kind] {
1369
+ get
1370
+ }
1371
+ public var rawValue: Swift.String {
1372
+ get
1373
+ }
1374
+ }
1375
+ public let kind: TerraSDK.WorkoutEvent.Kind
1376
+ public let interval: Foundation.DateInterval
1377
+ public init(kind: TerraSDK.WorkoutEvent.Kind, interval: Foundation.DateInterval)
1378
+ public static func == (a: TerraSDK.WorkoutEvent, b: TerraSDK.WorkoutEvent) -> Swift.Bool
1379
+ }
1380
+ public struct WorkoutIntensitySample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1381
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1382
+ case speed
1383
+ case power
1384
+ case cadence
1385
+ public var unit: Swift.String {
1386
+ get
1387
+ }
1388
+ public init?(rawValue: Swift.String)
1389
+ public typealias AllCases = [TerraSDK.WorkoutIntensitySample.Kind]
1390
+ public typealias RawValue = Swift.String
1391
+ nonisolated public static var allCases: [TerraSDK.WorkoutIntensitySample.Kind] {
1392
+ get
1393
+ }
1394
+ public var rawValue: Swift.String {
1395
+ get
1396
+ }
1397
+ }
1398
+ public let id: Foundation.UUID
1399
+ public let kind: TerraSDK.WorkoutIntensitySample.Kind
1400
+ public let workoutId: Foundation.UUID
1401
+ public let interval: Foundation.DateInterval
1402
+ public let value: Swift.Double
1403
+ public let source: TerraSDK.SampleSource
1404
+ public let userEntered: Swift.Bool
1405
+ public let timeZone: Foundation.TimeZone?
1406
+ public init(id: Foundation.UUID, kind: TerraSDK.WorkoutIntensitySample.Kind, workoutId: Foundation.UUID, interval: Foundation.DateInterval, value: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1407
+ public static func == (a: TerraSDK.WorkoutIntensitySample, b: TerraSDK.WorkoutIntensitySample) -> Swift.Bool
1408
+ public typealias ID = Foundation.UUID
1409
+ }
1410
+ public enum WorkoutActivity : Swift.Sendable, Swift.Hashable {
1411
+ case running
1412
+ case walking
1413
+ case cycling
1414
+ case swimming
1415
+ case strengthTraining
1416
+ case other(Swift.String)
1417
+ public static func == (a: TerraSDK.WorkoutActivity, b: TerraSDK.WorkoutActivity) -> Swift.Bool
1418
+ public func hash(into hasher: inout Swift.Hasher)
1419
+ public var hashValue: Swift.Int {
1420
+ get
1421
+ }
1422
+ }
1423
+ public struct DayTotal : Swift.Sendable, Swift.Equatable {
1424
+ public enum Metric : Swift.String, Swift.Sendable, Swift.CaseIterable {
1425
+ case steps
1426
+ case distanceWalkingRunning
1427
+ case distanceCycling
1428
+ case distanceSwimming
1429
+ case distanceWheelchair
1430
+ case activeEnergyBurned
1431
+ case basalEnergyBurned
1432
+ case flightsClimbed
1433
+ case swimmingStrokeCount
1434
+ case appleExerciseTime
1435
+ case appleMoveTime
1436
+ case appleStandTime
1437
+ case appleStandHours
1438
+ public var intradayKind: TerraSDK.IntradaySample.Kind? {
1439
+ get
1440
+ }
1441
+ public var unit: Swift.String {
1442
+ get
1443
+ }
1444
+ public init?(rawValue: Swift.String)
1445
+ public typealias AllCases = [TerraSDK.DayTotal.Metric]
1446
+ public typealias RawValue = Swift.String
1447
+ nonisolated public static var allCases: [TerraSDK.DayTotal.Metric] {
1448
+ get
1449
+ }
1450
+ public var rawValue: Swift.String {
1451
+ get
1452
+ }
1453
+ }
1454
+ public let metric: TerraSDK.DayTotal.Metric
1455
+ public let interval: Foundation.DateInterval
1456
+ public let value: Swift.Double
1457
+ public let unit: Swift.String
1458
+ public let timeZone: Foundation.TimeZone?
1459
+ public init(metric: TerraSDK.DayTotal.Metric, interval: Foundation.DateInterval, value: Swift.Double, unit: Swift.String, timeZone: Foundation.TimeZone? = nil)
1460
+ public static func == (a: TerraSDK.DayTotal, b: TerraSDK.DayTotal) -> Swift.Bool
1461
+ }
1462
+ public struct DayTotalPolicy : Swift.Sendable, Swift.Equatable {
1463
+ public var excludeUserEntered: Swift.Bool
1464
+ public init(excludeUserEntered: Swift.Bool = false)
1465
+ public static let `default`: TerraSDK.DayTotalPolicy
1466
+ public static func == (a: TerraSDK.DayTotalPolicy, b: TerraSDK.DayTotalPolicy) -> Swift.Bool
1467
+ }
1468
+ public struct IntradaySample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1469
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1470
+ case activeEnergy
1471
+ case basalEnergy
1472
+ case distance
1473
+ case floorsClimbed
1474
+ public var unit: Swift.String {
1475
+ get
1476
+ }
1477
+ public init?(rawValue: Swift.String)
1478
+ public typealias AllCases = [TerraSDK.IntradaySample.Kind]
1479
+ public typealias RawValue = Swift.String
1480
+ nonisolated public static var allCases: [TerraSDK.IntradaySample.Kind] {
1481
+ get
1482
+ }
1483
+ public var rawValue: Swift.String {
1484
+ get
1485
+ }
1486
+ }
1487
+ public let id: Foundation.UUID
1488
+ public let kind: TerraSDK.IntradaySample.Kind
1489
+ public let interval: Foundation.DateInterval
1490
+ public let value: Swift.Double
1491
+ public let source: TerraSDK.SampleSource
1492
+ public let userEntered: Swift.Bool
1493
+ public let timeZone: Foundation.TimeZone?
1494
+ public init(id: Foundation.UUID, kind: TerraSDK.IntradaySample.Kind, interval: Foundation.DateInterval, value: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1495
+ public static func == (a: TerraSDK.IntradaySample, b: TerraSDK.IntradaySample) -> Swift.Bool
1496
+ public typealias ID = Foundation.UUID
1497
+ }
1498
+ public struct WorkoutRoute : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1499
+ public let id: Foundation.UUID
1500
+ public let workoutId: Foundation.UUID
1501
+ public let interval: Foundation.DateInterval
1502
+ public let points: [TerraSDK.RoutePoint]
1503
+ public let source: TerraSDK.SampleSource
1504
+ public let timeZone: Foundation.TimeZone?
1505
+ public init(id: Foundation.UUID, workoutId: Foundation.UUID, interval: Foundation.DateInterval, points: [TerraSDK.RoutePoint], source: TerraSDK.SampleSource, timeZone: Foundation.TimeZone? = nil)
1506
+ public static let minimumSecondsBetweenPoints: Swift.Double
1507
+ public static let maximumPoints: Swift.Int
1508
+ public static func withinCaps(_ points: [TerraSDK.RoutePoint]) -> [TerraSDK.RoutePoint]
1509
+ public static func == (a: TerraSDK.WorkoutRoute, b: TerraSDK.WorkoutRoute) -> Swift.Bool
1510
+ public typealias ID = Foundation.UUID
1511
+ }
1512
+ public struct RoutePoint : Swift.Sendable, Swift.Equatable, Swift.Hashable {
1513
+ public let time: Foundation.Date
1514
+ public let latitude: Swift.Double
1515
+ public let longitude: Swift.Double
1516
+ public init(time: Foundation.Date, latitude: Swift.Double, longitude: Swift.Double)
1517
+ public static func == (a: TerraSDK.RoutePoint, b: TerraSDK.RoutePoint) -> Swift.Bool
1518
+ public func hash(into hasher: inout Swift.Hasher)
1519
+ public var hashValue: Swift.Int {
1520
+ get
1521
+ }
1522
+ }
1523
+ public struct LinkTransition : Swift.Sendable, Swift.Hashable {
1524
+ public let opened: Swift.Int
1525
+ public let ended: Swift.Int?
1526
+ public init(opened: Swift.Int, ended: Swift.Int?)
1527
+ public static func == (a: TerraSDK.LinkTransition, b: TerraSDK.LinkTransition) -> Swift.Bool
1528
+ public func hash(into hasher: inout Swift.Hasher)
1529
+ public var hashValue: Swift.Int {
1530
+ get
1531
+ }
1532
+ }
1533
+ public struct StoredConnection : Swift.Sendable, Swift.Equatable, Swift.Codable {
1534
+ public let source: TerraSDK.Source
1535
+ public let userID: Swift.String
1536
+ public var providerUserID: Swift.String
1537
+ public var generation: Swift.Int
1538
+ public var devID: Swift.String
1539
+ public var revokedAt: Foundation.Date?
1540
+ public var dayZones: [TerraSDK.DayZoneStretch]
1541
+ public var endUser: Swift.String?
1542
+ public init(source: TerraSDK.Source, userID: Swift.String, providerUserID: Swift.String = "", generation: Swift.Int = 0, devID: Swift.String = "", revokedAt: Foundation.Date? = nil, dayZones: [TerraSDK.DayZoneStretch] = [], endUser: Swift.String? = nil)
1543
+ public init(from decoder: any Swift.Decoder) throws
1544
+ public static func == (a: TerraSDK.StoredConnection, b: TerraSDK.StoredConnection) -> Swift.Bool
1545
+ public func encode(to encoder: any Swift.Encoder) throws
1546
+ }
1547
+ public struct DayZoneStretch : Swift.Sendable, Swift.Equatable, Swift.Codable {
1548
+ public let start: Foundation.Date
1549
+ public let end: Foundation.Date
1550
+ public let zone: Swift.String
1551
+ public init(start: Foundation.Date, end: Foundation.Date, zone: Swift.String)
1552
+ public static let limit: Swift.Int
1553
+ public static func == (a: TerraSDK.DayZoneStretch, b: TerraSDK.DayZoneStretch) -> Swift.Bool
1554
+ public func encode(to encoder: any Swift.Encoder) throws
1555
+ public init(from decoder: any Swift.Decoder) throws
1556
+ }
1557
+ public struct StoredBackfillRequest : Swift.Sendable, Swift.Equatable, Swift.Codable {
1558
+ public let reference: Swift.String
1559
+ public let dataType: TerraSDK.UploadDataType
1560
+ public let start: Foundation.Date
1561
+ public let end: Foundation.Date
1562
+ public var servedThrough: Foundation.Date
1563
+ public var failedRuns: Swift.Int
1564
+ public let receivedAt: Foundation.Date
1565
+ public static let queueLimit: Swift.Int
1566
+ public init(reference: Swift.String, dataType: TerraSDK.UploadDataType, start: Foundation.Date, end: Foundation.Date, servedThrough: Foundation.Date? = nil, failedRuns: Swift.Int = 0, receivedAt: Foundation.Date)
1567
+ public static func == (a: TerraSDK.StoredBackfillRequest, b: TerraSDK.StoredBackfillRequest) -> Swift.Bool
1568
+ public func encode(to encoder: any Swift.Encoder) throws
1569
+ public init(from decoder: any Swift.Decoder) throws
1570
+ }
1571
+ public struct PendingRevocation : Swift.Sendable, Swift.Equatable, Swift.Codable {
1572
+ public let source: TerraSDK.Source
1573
+ public let providerUserID: Swift.String
1574
+ public let generation: Swift.Int
1575
+ public var attempts: Swift.Int
1576
+ public let deferredAt: Foundation.Date
1577
+ public var isDeliverable: Swift.Bool {
1578
+ get
1579
+ }
1580
+ public init(source: TerraSDK.Source, providerUserID: Swift.String, generation: Swift.Int, attempts: Swift.Int = 0, deferredAt: Foundation.Date)
1581
+ public static func == (a: TerraSDK.PendingRevocation, b: TerraSDK.PendingRevocation) -> Swift.Bool
1582
+ public func encode(to encoder: any Swift.Encoder) throws
1583
+ public init(from decoder: any Swift.Decoder) throws
1584
+ }
1585
+ public struct LinkDiagnostics : Swift.Sendable, Swift.Equatable {
1586
+ public let generation: Swift.Int
1587
+ public let lastDelivery: Foundation.Date?
1588
+ public let isRetrying: Swift.Bool
1589
+ public let isRevoked: Swift.Bool
1590
+ public init(generation: Swift.Int, lastDelivery: Foundation.Date?, isRetrying: Swift.Bool, isRevoked: Swift.Bool)
1591
+ public static func == (a: TerraSDK.LinkDiagnostics, b: TerraSDK.LinkDiagnostics) -> Swift.Bool
1592
+ }
1593
+ public protocol DeviceStore : Swift.Sendable {
1594
+ func loadConnection(source: TerraSDK.Source) throws -> TerraSDK.StoredConnection?
1595
+ var storageDomain: Swift.String { get }
1596
+ func activeDevID() throws -> Swift.String?
1597
+ @discardableResult
1598
+ func claimDevID(_ devID: Swift.String) throws -> Swift.Bool
1599
+ func loadRequestedAccess() throws -> TerraSDK.HealthAccess
1600
+ @discardableResult
1601
+ func recordRequestedAccess(_ access: TerraSDK.HealthAccess) throws -> TerraSDK.HealthAccess
1602
+ func loadProviderUserID() throws -> Swift.String?
1603
+ func saveProviderUserID(_ id: Swift.String) throws
1604
+ func loadSyncedThrough(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1605
+ func saveSyncedThrough(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1606
+ func loadSyncedFrom(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1607
+ func saveSyncedFrom(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1608
+ func loadServerBackfills(source: TerraSDK.Source) throws -> [TerraSDK.StoredBackfillRequest]
1609
+ @discardableResult
1610
+ func upsertServerBackfill(_ request: TerraSDK.StoredBackfillRequest, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1611
+ func removeServerBackfill(reference: Swift.String, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1612
+ func beginLink(source: TerraSDK.Source, owing revocation: TerraSDK.PendingRevocation?) throws -> TerraSDK.LinkTransition
1613
+ func completeLink(_ connection: TerraSDK.StoredConnection) throws
1614
+ @discardableResult
1615
+ func updateConnection(_ connection: TerraSDK.StoredConnection, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1616
+ @discardableResult
1617
+ func endLink(source: TerraSDK.Source, ifGeneration generation: Swift.Int?, owing revocation: TerraSDK.PendingRevocation?) throws -> Swift.Int?
1618
+ func claimSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1619
+ func releaseSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1620
+ func beginRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1621
+ func endRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1622
+ func lastWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) -> Foundation.Date?
1623
+ func noteWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, at time: Foundation.Date)
1624
+ func pausedUntil(source: TerraSDK.Source) -> Foundation.Date?
1625
+ func pause(source: TerraSDK.Source, until: Foundation.Date)
1626
+ func linkDiagnostics(source: TerraSDK.Source) throws -> TerraSDK.LinkDiagnostics?
1627
+ func saveLastDelivery(_ date: Foundation.Date, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1628
+ func loadDiagnosticsSends() throws -> [TerraSDK.DiagnosticsSend]
1629
+ func reserveDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend, notWithin interval: Foundation.TimeInterval, automaticLimit limit: Swift.Int?) throws -> Swift.Bool
1630
+ func releaseDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend) throws
1631
+ func loadObservationAnchor(key: Swift.String) throws -> Foundation.Data?
1632
+ func saveObservationAnchor(_ anchor: Foundation.Data, key: Swift.String) throws
1633
+ func linkGeneration(source: TerraSDK.Source) -> Swift.Int
1634
+ func claimWakeSync(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1635
+ func takeWakesOwed(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1636
+ func releaseWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1637
+ func loadDeferredObservations(source: TerraSDK.Source) throws -> [TerraSDK.DataCategory : TerraSDK.DeferredWake]
1638
+ @discardableResult
1639
+ func deferObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeferredWake
1640
+ func retireObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, ifStillAt wake: TerraSDK.DeferredWake) throws
1641
+ func loadPendingRevocations(source: TerraSDK.Source) throws -> [TerraSDK.PendingRevocation]
1642
+ func savePendingRevocation(_ revocation: TerraSDK.PendingRevocation) throws
1643
+ func removePendingRevocation(source: TerraSDK.Source, generation: Swift.Int) throws
1644
+ func claimRevocations(source: TerraSDK.Source) -> Swift.Bool
1645
+ @discardableResult
1646
+ func releaseRevocations(source: TerraSDK.Source) -> Swift.Bool
1647
+ func claimLink(source: TerraSDK.Source) -> Swift.Bool
1648
+ func releaseLink(source: TerraSDK.Source)
1649
+ func loadSyncAnchor(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Data?
1650
+ func saveSyncAnchor(_ anchor: Foundation.Data, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1651
+ }
1652
+ @_hasMissingDesignatedInitializers final public class Terra : Swift.Sendable {
1653
+ @available(iOSApplicationExtension, unavailable)
1654
+ convenience public init(devID: Swift.String, tokenProvider: (@Sendable () async throws -> Swift.String)? = nil, dayTotals: TerraSDK.DayTotalPolicy = .default)
1655
+ convenience public init(devID: Swift.String, tokenProvider: (@Sendable () async throws -> Swift.String)? = nil, backgroundRestricted: @escaping @Sendable () async -> Swift.Bool, inBackground: @escaping @Sendable () async -> Swift.Bool = { false }, unlocks: (@Sendable () -> _Concurrency.AsyncStream<Swift.Void>)? = nil, dayTotals: TerraSDK.DayTotalPolicy = .default)
1656
+ @discardableResult
1657
+ final public func connect(_ source: TerraSDK.Source, for endUser: TerraSDK.EndUser) async throws -> TerraSDK.Connection
1658
+ @discardableResult
1659
+ final public func connect(_ source: TerraSDK.Source, for endUser: TerraSDK.EndUser, using token: Swift.String) async throws -> TerraSDK.Connection
1660
+ final public var connections: [TerraSDK.Connection] {
1661
+ get async throws
1662
+ }
1663
+ final public var permissions: TerraSDK.Permissions {
1664
+ get
1665
+ }
1666
+ final public var diagnostics: TerraSDK.Diagnostics {
1667
+ get
1668
+ }
1669
+ final public var body: TerraSDK.BodyMetrics {
1670
+ get
1671
+ }
1672
+ final public var nutrition: TerraSDK.NutritionMetrics {
1673
+ get
1674
+ }
1675
+ final public var daily: TerraSDK.DailyMetrics {
1676
+ get
1677
+ }
1678
+ final public var sleep: TerraSDK.SleepMetrics {
1679
+ get
1680
+ }
1681
+ final public var activity: TerraSDK.ActivityMetrics {
1682
+ get
1683
+ }
1684
+ @objc deinit
1685
+ }
1686
+ public struct Diagnostics : Swift.Sendable {
1687
+ public func events() -> _Concurrency.AsyncStream<TerraSDK.TerraEvent>
1688
+ public func lastDelivery(for source: TerraSDK.Source = .health) async -> Foundation.Date?
1689
+ public func state(for source: TerraSDK.Source = .health) async -> TerraSDK.DiagnosticsState
1690
+ public func report(for source: TerraSDK.Source = .health) async -> TerraSDK.SupportReport
1691
+ public func send(for source: TerraSDK.Source = .health) async throws
1692
+ }
1693
+ public struct PlannedWorkouts : Swift.Sendable {
1694
+ public func planned() async throws -> [TerraSDK.PlannedWorkout]
1695
+ public func markComplete(id: Swift.String, at time: Foundation.Date = Date()) async throws
1696
+ public func delete(id: Swift.String) async throws
1697
+ public func schedulingStatus() async -> TerraSDK.WorkoutSchedulingStatus
1698
+ @discardableResult
1699
+ public func requestScheduling() async -> TerraSDK.WorkoutSchedulingStatus
1700
+ }
1701
+ public struct Permissions : Swift.Sendable {
1702
+ public func request(read: [TerraSDK.DataCategory] = [], write: [TerraSDK.DataCategory] = [], workouts: [TerraSDK.WorkoutScope] = []) async throws
1703
+ public func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
1704
+ public func status(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
1705
+ public var requested: TerraSDK.HealthAccess {
1706
+ get async
1707
+ }
1708
+ }
1709
+ public struct NutritionMetrics : Swift.Sendable {
1710
+ @discardableResult
1711
+ public func log(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
1712
+ public func delete(id: Foundation.UUID) async throws
1713
+ }
1714
+ public struct BodyMetrics : Swift.Sendable {
1715
+ @discardableResult
1716
+ public func log(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
1717
+ @discardableResult
1718
+ public func log(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
1719
+ @available(*, deprecated, message: "use terra.nutrition.log(_:) - meals moved to their own namespace")
1720
+ @discardableResult
1721
+ public func log(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
1722
+ public func delete(id: Foundation.UUID) async throws
1723
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1724
+ public func heartRate(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.HeartRateSample]
1725
+ }
1726
+ public struct DailyMetrics : Swift.Sendable {
1727
+ @discardableResult
1728
+ public func log(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
1729
+ public func delete(id: Foundation.UUID) async throws
1730
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1731
+ public func steps(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.StepCount]
1732
+ }
1733
+ public struct SleepMetrics : Swift.Sendable {
1734
+ @discardableResult
1735
+ public func log(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
1736
+ public func delete(id: Foundation.UUID) async throws
1737
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1738
+ public func segments(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.SleepSegment]
1739
+ }
1740
+ public struct ActivityMetrics : Swift.Sendable {
1741
+ @discardableResult
1742
+ public func log(_ entries: [TerraSDK.WorkoutEntry]) async throws -> [Foundation.UUID]
1743
+ public func delete(id: Foundation.UUID) async throws
1744
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1745
+ public func workouts(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.Workout]
1746
+ }
1747
+ public enum Source : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable, Swift.Codable {
1748
+ case health
1749
+ public init?(rawValue: Swift.String)
1750
+ public typealias AllCases = [TerraSDK.Source]
1751
+ public typealias RawValue = Swift.String
1752
+ nonisolated public static var allCases: [TerraSDK.Source] {
1753
+ get
1754
+ }
1755
+ public var rawValue: Swift.String {
1756
+ get
1757
+ }
1758
+ }
1759
+ public enum DataCategory : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable, Swift.Codable {
1760
+ case activity
1761
+ case body
1762
+ case daily
1763
+ case sleep
1764
+ case nutrition
1765
+ case menstruation
1766
+ case athlete
1767
+ case healthObservation
1768
+ public init?(rawValue: Swift.String)
1769
+ public typealias AllCases = [TerraSDK.DataCategory]
1770
+ public typealias RawValue = Swift.String
1771
+ nonisolated public static var allCases: [TerraSDK.DataCategory] {
1772
+ get
1773
+ }
1774
+ public var rawValue: Swift.String {
1775
+ get
1776
+ }
1777
+ }
1778
+ public enum PermissionStatus : Swift.Sendable, Swift.Equatable {
1779
+ case granted
1780
+ case denied
1781
+ case notDetermined
1782
+ case notDisclosed
1783
+ case unavailable
1784
+ case unsupported
1785
+ public static func == (a: TerraSDK.PermissionStatus, b: TerraSDK.PermissionStatus) -> Swift.Bool
1786
+ public func hash(into hasher: inout Swift.Hasher)
1787
+ public var hashValue: Swift.Int {
1788
+ get
1789
+ }
1790
+ }
1791
+ public enum TimeRange : Swift.Sendable, Swift.Equatable {
1792
+ case lastHours(Swift.Int)
1793
+ case lastDays(Swift.Int)
1794
+ case today
1795
+ case between(Foundation.Date, Foundation.Date)
1796
+ public func resolve(now: Foundation.Date = Date(), calendar: Foundation.Calendar = .current) -> Foundation.DateInterval
1797
+ public static func == (a: TerraSDK.TimeRange, b: TerraSDK.TimeRange) -> Swift.Bool
1798
+ }
1799
+ public enum UploadDataType : Swift.String, Swift.Sendable, Swift.CaseIterable, Swift.Codable {
1800
+ case daily
1801
+ case sleep
1802
+ case activity
1803
+ case body
1804
+ case nutrition
1805
+ case menstruation
1806
+ case athlete
1807
+ case healthObservation
1808
+ public static var routable: [TerraSDK.UploadDataType] {
1809
+ get
1810
+ }
1811
+ public init?(rawValue: Swift.String)
1812
+ public typealias AllCases = [TerraSDK.UploadDataType]
1813
+ public typealias RawValue = Swift.String
1814
+ nonisolated public static var allCases: [TerraSDK.UploadDataType] {
1815
+ get
1816
+ }
1817
+ public var rawValue: Swift.String {
1818
+ get
1819
+ }
1820
+ }
1821
+ public let sdkVersion: Swift.String
1822
+ @available(iOS 17.0, macOS 15.0, *)
1823
+ public struct WorkoutKitSchedule : TerraSDK.WorkoutSchedule {
1824
+ public init()
1825
+ public func status() async -> TerraSDK.WorkoutSchedulingStatus
1826
+ public func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1827
+ public var capacity: Swift.Int {
1828
+ get
1829
+ }
1830
+ public func scheduled() async -> [TerraSDK.ScheduledWorkout]
1831
+ public func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1832
+ public func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1833
+ public func remove(_ id: Foundation.UUID) async
1834
+ }
1835
+ public enum WorkoutSchedulingStatus : Swift.String, Swift.Sendable, Swift.Equatable, Swift.CaseIterable {
1836
+ case unsupported
1837
+ case notDetermined
1838
+ case denied
1839
+ case authorized
1840
+ public init?(rawValue: Swift.String)
1841
+ public typealias AllCases = [TerraSDK.WorkoutSchedulingStatus]
1842
+ public typealias RawValue = Swift.String
1843
+ nonisolated public static var allCases: [TerraSDK.WorkoutSchedulingStatus] {
1844
+ get
1845
+ }
1846
+ public var rawValue: Swift.String {
1847
+ get
1848
+ }
1849
+ }
1850
+ public struct ScheduledWorkout : Swift.Sendable, Swift.Equatable {
1851
+ public let id: Foundation.UUID
1852
+ public let date: Foundation.DateComponents
1853
+ public let isComplete: Swift.Bool
1854
+ public init(id: Foundation.UUID, date: Foundation.DateComponents, isComplete: Swift.Bool = false)
1855
+ public static func == (a: TerraSDK.ScheduledWorkout, b: TerraSDK.ScheduledWorkout) -> Swift.Bool
1856
+ }
1857
+ public enum WorkoutScheduleRefusal : Swift.String, Swift.Error, Swift.Sendable, Swift.Equatable {
1858
+ case activityUnsupported
1859
+ case goalUnsupported
1860
+ case malformed
1861
+ case noWorkout
1862
+ case past
1863
+ case completed
1864
+ public init?(rawValue: Swift.String)
1865
+ public typealias RawValue = Swift.String
1866
+ public var rawValue: Swift.String {
1867
+ get
1868
+ }
1869
+ }
1870
+ public struct WorkoutComposition : Swift.Sendable, Swift.Equatable, Swift.Codable {
1871
+ public var displayName: Swift.String?
1872
+ public var activity: Swift.String
1873
+ public var location: Swift.String
1874
+ public var warmup: TerraSDK.WorkoutComposition.Step?
1875
+ public var blocks: [TerraSDK.WorkoutComposition.Block]
1876
+ public var cooldown: TerraSDK.WorkoutComposition.Step?
1877
+ public init(displayName: Swift.String? = nil, activity: Swift.String, location: Swift.String = "outdoor", warmup: TerraSDK.WorkoutComposition.Step? = nil, blocks: [TerraSDK.WorkoutComposition.Block] = [], cooldown: TerraSDK.WorkoutComposition.Step? = nil)
1878
+ public init(from decoder: any Swift.Decoder) throws
1879
+ public struct Block : Swift.Sendable, Swift.Equatable, Swift.Codable {
1880
+ public var steps: [TerraSDK.WorkoutComposition.IntervalStep]
1881
+ public var iterations: Swift.Int
1882
+ public init(steps: [TerraSDK.WorkoutComposition.IntervalStep], iterations: Swift.Int = 1)
1883
+ public static func == (a: TerraSDK.WorkoutComposition.Block, b: TerraSDK.WorkoutComposition.Block) -> Swift.Bool
1884
+ public func encode(to encoder: any Swift.Encoder) throws
1885
+ public init(from decoder: any Swift.Decoder) throws
1886
+ }
1887
+ public struct IntervalStep : Swift.Sendable, Swift.Equatable, Swift.Codable {
1888
+ public var purpose: Swift.String
1889
+ public var step: TerraSDK.WorkoutComposition.Step
1890
+ public init(purpose: Swift.String, step: TerraSDK.WorkoutComposition.Step)
1891
+ public static func == (a: TerraSDK.WorkoutComposition.IntervalStep, b: TerraSDK.WorkoutComposition.IntervalStep) -> Swift.Bool
1892
+ public func encode(to encoder: any Swift.Encoder) throws
1893
+ public init(from decoder: any Swift.Decoder) throws
1894
+ }
1895
+ public struct Step : Swift.Sendable, Swift.Equatable, Swift.Codable {
1896
+ public var goal: TerraSDK.WorkoutComposition.Goal
1897
+ public var alert: TerraSDK.WorkoutComposition.Alert?
1898
+ public init(goal: TerraSDK.WorkoutComposition.Goal, alert: TerraSDK.WorkoutComposition.Alert? = nil)
1899
+ public static func == (a: TerraSDK.WorkoutComposition.Step, b: TerraSDK.WorkoutComposition.Step) -> Swift.Bool
1900
+ public func encode(to encoder: any Swift.Encoder) throws
1901
+ public init(from decoder: any Swift.Decoder) throws
1902
+ }
1903
+ public struct Goal : Swift.Sendable, Swift.Equatable, Swift.Codable {
1904
+ public var type: Swift.String
1905
+ public var value: Swift.Double?
1906
+ public var unit: Swift.String?
1907
+ public init(type: Swift.String, value: Swift.Double? = nil, unit: Swift.String? = nil)
1908
+ public static func == (a: TerraSDK.WorkoutComposition.Goal, b: TerraSDK.WorkoutComposition.Goal) -> Swift.Bool
1909
+ public func encode(to encoder: any Swift.Encoder) throws
1910
+ public init(from decoder: any Swift.Decoder) throws
1911
+ }
1912
+ public struct Alert : Swift.Sendable, Swift.Equatable, Swift.Codable {
1913
+ public var type: Swift.String
1914
+ public var zone: Swift.Int?
1915
+ public var target: TerraSDK.WorkoutComposition.Target?
1916
+ public var metric: Swift.String?
1917
+ public init(type: Swift.String, zone: Swift.Int? = nil, target: TerraSDK.WorkoutComposition.Target? = nil, metric: Swift.String? = nil)
1918
+ public static func == (a: TerraSDK.WorkoutComposition.Alert, b: TerraSDK.WorkoutComposition.Alert) -> Swift.Bool
1919
+ public func encode(to encoder: any Swift.Encoder) throws
1920
+ public init(from decoder: any Swift.Decoder) throws
1921
+ }
1922
+ public struct Target : Swift.Sendable, Swift.Equatable, Swift.Codable {
1923
+ public var lowerBound: Swift.Double?
1924
+ public var upperBound: Swift.Double?
1925
+ public var unit: Swift.String?
1926
+ public init(lowerBound: Swift.Double? = nil, upperBound: Swift.Double? = nil, unit: Swift.String? = nil)
1927
+ public static func == (a: TerraSDK.WorkoutComposition.Target, b: TerraSDK.WorkoutComposition.Target) -> Swift.Bool
1928
+ public func encode(to encoder: any Swift.Encoder) throws
1929
+ public init(from decoder: any Swift.Decoder) throws
1930
+ }
1931
+ public static func == (a: TerraSDK.WorkoutComposition, b: TerraSDK.WorkoutComposition) -> Swift.Bool
1932
+ public func encode(to encoder: any Swift.Encoder) throws
1933
+ }
1934
+ public protocol WorkoutSchedule : Swift.Sendable {
1935
+ func status() async -> TerraSDK.WorkoutSchedulingStatus
1936
+ func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1937
+ var capacity: Swift.Int { get }
1938
+ func scheduled() async -> [TerraSDK.ScheduledWorkout]
1939
+ func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1940
+ func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1941
+ func remove(_ id: Foundation.UUID) async
1942
+ }
1943
+ public struct WorkoutScheduleUnconfirmed : Swift.Error, Swift.Sendable, Swift.Equatable {
1944
+ public init()
1945
+ public static func == (a: TerraSDK.WorkoutScheduleUnconfirmed, b: TerraSDK.WorkoutScheduleUnconfirmed) -> Swift.Bool
1946
+ }
1947
+ public struct UnavailableWorkoutSchedule : TerraSDK.WorkoutSchedule {
1948
+ public init()
1949
+ public func status() async -> TerraSDK.WorkoutSchedulingStatus
1950
+ public func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1951
+ public var capacity: Swift.Int {
1952
+ get
1953
+ }
1954
+ public func scheduled() async -> [TerraSDK.ScheduledWorkout]
1955
+ public func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1956
+ public func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1957
+ public func remove(_ id: Foundation.UUID) async
1958
+ }
1959
+ public struct HeartRateEntry : Swift.Sendable, Swift.Equatable {
1960
+ public let time: Foundation.Date
1961
+ public let beatsPerMinute: Swift.Double
1962
+ public let recordID: Foundation.UUID
1963
+ public init(time: Foundation.Date, beatsPerMinute: Swift.Double, recordID: Foundation.UUID = UUID())
1964
+ public static func == (a: TerraSDK.HeartRateEntry, b: TerraSDK.HeartRateEntry) -> Swift.Bool
1965
+ }
1966
+ public struct StepEntry : Swift.Sendable, Swift.Equatable {
1967
+ public let interval: Foundation.DateInterval
1968
+ public let steps: Swift.Int
1969
+ public let recordID: Foundation.UUID
1970
+ public init(interval: Foundation.DateInterval, steps: Swift.Int, recordID: Foundation.UUID = UUID())
1971
+ public static func == (a: TerraSDK.StepEntry, b: TerraSDK.StepEntry) -> Swift.Bool
1972
+ }
1973
+ public struct SleepEntry : Swift.Sendable, Swift.Equatable {
1974
+ public let interval: Foundation.DateInterval
1975
+ public let stage: TerraSDK.SleepStage
1976
+ public let recordID: Foundation.UUID
1977
+ public init(interval: Foundation.DateInterval, stage: TerraSDK.SleepStage, recordID: Foundation.UUID = UUID())
1978
+ public static func == (a: TerraSDK.SleepEntry, b: TerraSDK.SleepEntry) -> Swift.Bool
1979
+ }
1980
+ public struct WorkoutEntry : Swift.Sendable, Swift.Equatable {
1981
+ public let interval: Foundation.DateInterval
1982
+ public let activity: TerraSDK.WorkoutActivity
1983
+ public let totalEnergyKilocalories: Swift.Double?
1984
+ public let totalDistanceMeters: Swift.Double?
1985
+ public let recordID: Foundation.UUID
1986
+ public init(interval: Foundation.DateInterval, activity: TerraSDK.WorkoutActivity, totalEnergyKilocalories: Swift.Double? = nil, totalDistanceMeters: Swift.Double? = nil, recordID: Foundation.UUID = UUID())
1987
+ public static func == (a: TerraSDK.WorkoutEntry, b: TerraSDK.WorkoutEntry) -> Swift.Bool
1988
+ }
1989
+ public struct WorkoutScope : Swift.Sendable, Swift.Hashable {
1990
+ public var activity: TerraSDK.WorkoutActivity
1991
+ public var energy: Swift.Bool
1992
+ public var distance: Swift.Bool
1993
+ public init(activity: TerraSDK.WorkoutActivity, energy: Swift.Bool = false, distance: Swift.Bool = false)
1994
+ public static func == (a: TerraSDK.WorkoutScope, b: TerraSDK.WorkoutScope) -> Swift.Bool
1995
+ public func hash(into hasher: inout Swift.Hasher)
1996
+ public var hashValue: Swift.Int {
1997
+ get
1998
+ }
1999
+ }
2000
+ public struct BodyEntry : Swift.Sendable, Swift.Equatable {
2001
+ public let time: Foundation.Date
2002
+ public var bodyMassKilograms: Swift.Double?
2003
+ public var bodyFatPercent: Swift.Double?
2004
+ public var bodyMassIndex: Swift.Double?
2005
+ public var heightMeters: Swift.Double?
2006
+ public var leanBodyMassKilograms: Swift.Double?
2007
+ public var bodyTemperatureCelsius: Swift.Double?
2008
+ public var oxygenSaturationPercent: Swift.Double?
2009
+ public var bloodGlucoseMilligramsPerDeciliter: Swift.Double?
2010
+ public var bloodPressureSystolicMillimetersOfMercury: Swift.Double?
2011
+ public var bloodPressureDiastolicMillimetersOfMercury: Swift.Double?
2012
+ public let recordID: Foundation.UUID
2013
+ public init(time: Foundation.Date, bodyMassKilograms: Swift.Double? = nil, bodyFatPercent: Swift.Double? = nil, bodyMassIndex: Swift.Double? = nil, heightMeters: Swift.Double? = nil, leanBodyMassKilograms: Swift.Double? = nil, bodyTemperatureCelsius: Swift.Double? = nil, oxygenSaturationPercent: Swift.Double? = nil, bloodGlucoseMilligramsPerDeciliter: Swift.Double? = nil, bloodPressureSystolicMillimetersOfMercury: Swift.Double? = nil, bloodPressureDiastolicMillimetersOfMercury: Swift.Double? = nil, recordID: Foundation.UUID = UUID())
2014
+ public var isEmpty: Swift.Bool {
2015
+ get
2016
+ }
2017
+ public static func == (a: TerraSDK.BodyEntry, b: TerraSDK.BodyEntry) -> Swift.Bool
2018
+ }
2019
+ public struct NutritionEntry : Swift.Sendable, Swift.Equatable {
2020
+ public let interval: Foundation.DateInterval
2021
+ public var name: Swift.String?
2022
+ public var nutrients: TerraSDK.NutritionEntry.Nutrients
2023
+ public let recordID: Foundation.UUID
2024
+ public init(interval: Foundation.DateInterval, name: Swift.String? = nil, nutrients: TerraSDK.NutritionEntry.Nutrients, recordID: Foundation.UUID = UUID())
2025
+ public var isEmpty: Swift.Bool {
2026
+ get
2027
+ }
2028
+ public struct Nutrients : Swift.Sendable, Swift.Equatable {
2029
+ public var energyKilocalories: Swift.Double?
2030
+ public var proteinGrams: Swift.Double?
2031
+ public var carbohydratesGrams: Swift.Double?
2032
+ public var fiberGrams: Swift.Double?
2033
+ public var sugarGrams: Swift.Double?
2034
+ public var fatTotalGrams: Swift.Double?
2035
+ public var fatSaturatedGrams: Swift.Double?
2036
+ public var fatMonounsaturatedGrams: Swift.Double?
2037
+ public var fatPolyunsaturatedGrams: Swift.Double?
2038
+ public var cholesterolMilligrams: Swift.Double?
2039
+ public var sodiumMilligrams: Swift.Double?
2040
+ public var potassiumMilligrams: Swift.Double?
2041
+ public var calciumMilligrams: Swift.Double?
2042
+ public var ironMilligrams: Swift.Double?
2043
+ public var magnesiumMilligrams: Swift.Double?
2044
+ public var zincMilligrams: Swift.Double?
2045
+ public var waterLiters: Swift.Double?
2046
+ public var caffeineMilligrams: Swift.Double?
2047
+ public var vitaminAMicrograms: Swift.Double?
2048
+ public var vitaminCMilligrams: Swift.Double?
2049
+ public var vitaminDMicrograms: Swift.Double?
2050
+ public var vitaminEMilligrams: Swift.Double?
2051
+ public var vitaminKMicrograms: Swift.Double?
2052
+ public var vitaminB6Milligrams: Swift.Double?
2053
+ public var vitaminB12Micrograms: Swift.Double?
2054
+ public var folateMicrograms: Swift.Double?
2055
+ public var thiaminMilligrams: Swift.Double?
2056
+ public var riboflavinMilligrams: Swift.Double?
2057
+ public var niacinMilligrams: Swift.Double?
2058
+ public var biotinMicrograms: Swift.Double?
2059
+ public var pantothenicAcidMilligrams: Swift.Double?
2060
+ public var phosphorusMilligrams: Swift.Double?
2061
+ public var iodineMicrograms: Swift.Double?
2062
+ public var chromiumMicrograms: Swift.Double?
2063
+ public var copperMilligrams: Swift.Double?
2064
+ public var manganeseMilligrams: Swift.Double?
2065
+ public var molybdenumMicrograms: Swift.Double?
2066
+ public var seleniumMicrograms: Swift.Double?
2067
+ public var chlorideMilligrams: Swift.Double?
2068
+ public init(energyKilocalories: Swift.Double? = nil, proteinGrams: Swift.Double? = nil, carbohydratesGrams: Swift.Double? = nil, fiberGrams: Swift.Double? = nil, sugarGrams: Swift.Double? = nil, fatTotalGrams: Swift.Double? = nil, fatSaturatedGrams: Swift.Double? = nil, fatMonounsaturatedGrams: Swift.Double? = nil, fatPolyunsaturatedGrams: Swift.Double? = nil, cholesterolMilligrams: Swift.Double? = nil, sodiumMilligrams: Swift.Double? = nil, potassiumMilligrams: Swift.Double? = nil, calciumMilligrams: Swift.Double? = nil, ironMilligrams: Swift.Double? = nil, magnesiumMilligrams: Swift.Double? = nil, zincMilligrams: Swift.Double? = nil, waterLiters: Swift.Double? = nil, caffeineMilligrams: Swift.Double? = nil, vitaminAMicrograms: Swift.Double? = nil, vitaminCMilligrams: Swift.Double? = nil, vitaminDMicrograms: Swift.Double? = nil, vitaminEMilligrams: Swift.Double? = nil, vitaminKMicrograms: Swift.Double? = nil, vitaminB6Milligrams: Swift.Double? = nil, vitaminB12Micrograms: Swift.Double? = nil, folateMicrograms: Swift.Double? = nil, thiaminMilligrams: Swift.Double? = nil, riboflavinMilligrams: Swift.Double? = nil, niacinMilligrams: Swift.Double? = nil, biotinMicrograms: Swift.Double? = nil, pantothenicAcidMilligrams: Swift.Double? = nil, phosphorusMilligrams: Swift.Double? = nil, iodineMicrograms: Swift.Double? = nil, chromiumMicrograms: Swift.Double? = nil, copperMilligrams: Swift.Double? = nil, manganeseMilligrams: Swift.Double? = nil, molybdenumMicrograms: Swift.Double? = nil, seleniumMicrograms: Swift.Double? = nil, chlorideMilligrams: Swift.Double? = nil)
2069
+ public static func == (a: TerraSDK.NutritionEntry.Nutrients, b: TerraSDK.NutritionEntry.Nutrients) -> Swift.Bool
2070
+ }
2071
+ public static func == (a: TerraSDK.NutritionEntry, b: TerraSDK.NutritionEntry) -> Swift.Bool
2072
+ }
2073
+ extension TerraSDK.AthleteProfile.BiologicalSex : Swift.RawRepresentable {}
2074
+ extension TerraSDK.AthleteProfile.ActivityMoveMode : Swift.RawRepresentable {}
2075
+ extension TerraSDK.UploadContentEncoding : Swift.Hashable {}
2076
+ extension TerraSDK.UploadContentEncoding : Swift.RawRepresentable {}
2077
+ extension TerraSDK.BodyMetric : Swift.RawRepresentable {}
2078
+ extension TerraSDK.BloodGlucoseUnit : Swift.RawRepresentable {}
2079
+ extension TerraSDK.GlucoseMealTime : Swift.RawRepresentable {}
2080
+ extension TerraSDK.GlucoseSpecimen : Swift.RawRepresentable {}
2081
+ extension TerraSDK.BodyTemperatureMetric : Swift.RawRepresentable {}
2082
+ extension TerraSDK.HeartRateVariabilityMetric : Swift.RawRepresentable {}
2083
+ extension TerraSDK.VO2MaxTestType : Swift.RawRepresentable {}
2084
+ extension TerraSDK.InsulinDeliveryReason : Swift.RawRepresentable {}
2085
+ extension TerraSDK.Electrocardiogram.Classification : Swift.Equatable {}
2086
+ extension TerraSDK.Electrocardiogram.Classification : Swift.Hashable {}
2087
+ extension TerraSDK.Electrocardiogram.Classification : Swift.RawRepresentable {}
2088
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.Equatable {}
2089
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.Hashable {}
2090
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.RawRepresentable {}
2091
+ extension TerraSDK.DataCategory : Swift.RawRepresentable {}
2092
+ extension TerraSDK.TerraEvent.FailureCode : Swift.Hashable {}
2093
+ extension TerraSDK.TerraEvent.FailureCode : Swift.RawRepresentable {}
2094
+ extension TerraSDK.DeviceKeyRevokeOutcome : Swift.Hashable {}
2095
+ extension TerraSDK.DeviceKeyRevokeOutcome : Swift.RawRepresentable {}
2096
+ extension TerraSDK.DiagnosticsReason : Swift.Hashable {}
2097
+ extension TerraSDK.DiagnosticsReason : Swift.RawRepresentable {}
2098
+ extension TerraSDK.HealthObservation.Category : Swift.RawRepresentable {}
2099
+ extension TerraSDK.HealthObservation.Severity : Swift.RawRepresentable {}
2100
+ extension TerraSDK.MenstruationFlowDay.Flow : Swift.RawRepresentable {}
2101
+ extension TerraSDK.MenstrualEvent.Kind : Swift.RawRepresentable {}
2102
+ extension TerraSDK.MealType : Swift.RawRepresentable {}
2103
+ extension TerraSDK.Nutrient : Swift.RawRepresentable {}
2104
+ extension TerraSDK.DeviceType : Swift.RawRepresentable {}
2105
+ extension TerraSDK.MotionContext : Swift.Hashable {}
2106
+ extension TerraSDK.MotionContext : Swift.RawRepresentable {}
2107
+ extension TerraSDK.WorkoutEvent.Kind : Swift.Equatable {}
2108
+ extension TerraSDK.WorkoutEvent.Kind : Swift.Hashable {}
2109
+ extension TerraSDK.WorkoutEvent.Kind : Swift.RawRepresentable {}
2110
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.Equatable {}
2111
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.Hashable {}
2112
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.RawRepresentable {}
2113
+ extension TerraSDK.DayTotal.Metric : Swift.Equatable {}
2114
+ extension TerraSDK.DayTotal.Metric : Swift.Hashable {}
2115
+ extension TerraSDK.DayTotal.Metric : Swift.RawRepresentable {}
2116
+ extension TerraSDK.IntradaySample.Kind : Swift.Equatable {}
2117
+ extension TerraSDK.IntradaySample.Kind : Swift.Hashable {}
2118
+ extension TerraSDK.IntradaySample.Kind : Swift.RawRepresentable {}
2119
+ extension TerraSDK.Source : Swift.RawRepresentable {}
2120
+ extension TerraSDK.PermissionStatus : Swift.Hashable {}
2121
+ extension TerraSDK.UploadDataType : Swift.Equatable {}
2122
+ extension TerraSDK.UploadDataType : Swift.Hashable {}
2123
+ extension TerraSDK.UploadDataType : Swift.RawRepresentable {}
2124
+ extension TerraSDK.WorkoutSchedulingStatus : Swift.Hashable {}
2125
+ extension TerraSDK.WorkoutSchedulingStatus : Swift.RawRepresentable {}
2126
+ extension TerraSDK.WorkoutScheduleRefusal : Swift.Hashable {}
2127
+ extension TerraSDK.WorkoutScheduleRefusal : Swift.RawRepresentable {}