@tryterra/react-native 0.0.0-stage → 2.2.1

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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +142 -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 +557 -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/ReadConversions.kt +250 -0
  11. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Rejections.kt +150 -0
  12. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/StreamRegistry.kt +77 -0
  13. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridge.kt +86 -0
  14. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeOpsImpl.kt +300 -0
  15. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeStreamsImpl.kt +50 -0
  16. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TokenBroker.kt +198 -0
  17. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeErrors.kt +217 -0
  18. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeOps.kt +582 -0
  19. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeTypes.kt +1569 -0
  20. package/android/src/healthConnectOnly/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +11 -0
  21. package/android/src/main/AndroidManifest.xml +24 -0
  22. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraBridgeModule.kt +96 -0
  23. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraReactNativePackage.kt +26 -0
  24. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraStartup.kt +46 -0
  25. package/android/src/samsung/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +13 -0
  26. package/docs/availability.md +396 -0
  27. package/frameworks/TerraSDK.xcframework/Info.plist +48 -0
  28. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Info.plist +0 -0
  29. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.abi.json +82672 -0
  30. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +2186 -0
  31. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2186 -0
  32. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  33. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftinterface +2163 -0
  34. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  35. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/TerraSDK +0 -0
  36. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  37. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  38. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6594 -0
  39. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Info.plist +0 -0
  40. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +82672 -0
  41. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +2186 -0
  42. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2186 -0
  43. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  44. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2163 -0
  45. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +82672 -0
  46. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +2186 -0
  47. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2186 -0
  48. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  49. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2163 -0
  50. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  51. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/TerraSDK +0 -0
  52. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/_CodeSignature/CodeResources +223 -0
  53. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  54. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  55. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6595 -0
  56. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/TerraSDK.yml +6513 -0
  57. package/ios/TerraBridgeCore/BridgeBootstrap.swift +89 -0
  58. package/ios/TerraBridgeCore/BridgeHost.swift +13 -0
  59. package/ios/TerraBridgeCore/Conversions+Reads.swift +259 -0
  60. package/ios/TerraBridgeCore/Conversions.swift +594 -0
  61. package/ios/TerraBridgeCore/Generated/BridgeErrors.swift +179 -0
  62. package/ios/TerraBridgeCore/Generated/BridgeOps.swift +967 -0
  63. package/ios/TerraBridgeCore/Generated/BridgeTypes.swift +2050 -0
  64. package/ios/TerraBridgeCore/Locked.swift +15 -0
  65. package/ios/TerraBridgeCore/README.md +1 -0
  66. package/ios/TerraBridgeCore/Rejections.swift +130 -0
  67. package/ios/TerraBridgeCore/RuntimeAttachment.swift +60 -0
  68. package/ios/TerraBridgeCore/StreamRegistry.swift +59 -0
  69. package/ios/TerraBridgeCore/TerraBridge.swift +122 -0
  70. package/ios/TerraBridgeCore/TerraBridgeOpsImpl.swift +318 -0
  71. package/ios/TerraBridgeCore/TerraBridgeStreamsImpl.swift +60 -0
  72. package/ios/TerraBridgeCore/TokenBroker.swift +147 -0
  73. package/ios/TerraBridgeModule.mm +79 -0
  74. package/ios/TerraBridgeModuleImpl.swift +49 -0
  75. package/ios/TerraReactNative.swift +19 -0
  76. package/lib/EndUser.d.ts +12 -0
  77. package/lib/EndUser.js +13 -0
  78. package/lib/NativeTerraBridge.d.ts +23 -0
  79. package/lib/NativeTerraBridge.js +13 -0
  80. package/lib/Terra.d.ts +223 -0
  81. package/lib/Terra.js +336 -0
  82. package/lib/TerraError.d.ts +42 -0
  83. package/lib/TerraError.js +95 -0
  84. package/lib/createTerra.d.ts +8 -0
  85. package/lib/createTerra.js +19 -0
  86. package/lib/generated/client.d.ts +128 -0
  87. package/lib/generated/client.js +256 -0
  88. package/lib/generated/codecs.d.ts +219 -0
  89. package/lib/generated/codecs.js +2066 -0
  90. package/lib/generated/errors.d.ts +13 -0
  91. package/lib/generated/errors.js +68 -0
  92. package/lib/generated/ops.d.ts +13 -0
  93. package/lib/generated/ops.js +161 -0
  94. package/lib/generated/streams.d.ts +23 -0
  95. package/lib/generated/streams.js +58 -0
  96. package/lib/generated/types.d.ts +794 -0
  97. package/lib/generated/types.js +224 -0
  98. package/lib/index.d.ts +29 -0
  99. package/lib/index.js +55 -0
  100. package/package.json +71 -4
  101. package/src/EndUser.ts +15 -0
  102. package/src/NativeTerraBridge.ts +27 -0
  103. package/src/Terra.ts +592 -0
  104. package/src/TerraError.ts +116 -0
  105. package/src/createTerra.ts +18 -0
  106. package/src/generated/client.ts +315 -0
  107. package/src/generated/codecs.ts +1989 -0
  108. package/src/generated/errors.ts +113 -0
  109. package/src/generated/ops.ts +233 -0
  110. package/src/generated/streams.ts +74 -0
  111. package/src/generated/types.ts +1222 -0
  112. package/src/index.ts +54 -0
@@ -0,0 +1,2163 @@
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 bodyReadings(in interval: Foundation.DateInterval, recordTypes: Swift.Set<Swift.String>) async throws -> [TerraSDK.BodyReading]
771
+ public func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
772
+ public func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
773
+ public func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
774
+ public func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
775
+ public func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
776
+ public func athleteProfile() async throws -> TerraSDK.AthleteProfile?
777
+ public func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
778
+ public func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
779
+ }
780
+ @_hasMissingDesignatedInitializers public actor HealthKitStore : TerraSDK.HealthStore {
781
+ nonisolated final public let isAvailable: Swift.Bool
782
+ public init(anchors: any TerraSDK.DeviceStore = KeychainDeviceStore())
783
+ public func readStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
784
+ nonisolated public var canPresentAuthorization: Swift.Bool {
785
+ get
786
+ }
787
+ public func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
788
+ public func requestAccess(_ access: TerraSDK.HealthAccess) async throws
789
+ public func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
790
+ public func save(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
791
+ public func save(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
792
+ public func save(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
793
+ public func writeAccess(for entries: [TerraSDK.WorkoutEntry]) async throws -> TerraSDK.HealthAccess
794
+ public func requireWritable(_ entries: [TerraSDK.WorkoutEntry]) async throws
795
+ public func save(_ entry: TerraSDK.WorkoutEntry) async throws -> Foundation.UUID
796
+ public func delete(_ id: Foundation.UUID, in category: TerraSDK.DataCategory) async throws
797
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int) async throws -> TerraSDK.HealthChanges
798
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
799
+ public func heartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HeartRateSample]
800
+ public func restingHeartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.RestingHeartRateSample]
801
+ public func stepSamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.StepCount]
802
+ public func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
803
+ public func sleep(in interval: Foundation.DateInterval) async throws -> [TerraSDK.SleepSegment]
804
+ public func workouts(in interval: Foundation.DateInterval) async throws -> [TerraSDK.Workout]
805
+ nonisolated public func observe(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) -> _Concurrency.AsyncStream<TerraSDK.ObservedWake>
806
+ public func enableBackgroundObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> Swift.Bool
807
+ public func replayObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> TerraSDK.ObservedChange
808
+ @objc deinit
809
+ @available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
810
+ @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor {
811
+ get
812
+ }
813
+ }
814
+ extension TerraSDK.HealthKitStore {
815
+ public func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
816
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
817
+ nonisolated public var appliesDayTotalPolicy: Swift.Bool {
818
+ get
819
+ }
820
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
821
+ }
822
+ extension TerraSDK.HealthKitStore {
823
+ public func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
824
+ public func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
825
+ }
826
+ public struct HealthObservation : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
827
+ public enum Category : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
828
+ case symptom
829
+ case selfCare
830
+ case lab
831
+ public init?(rawValue: Swift.String)
832
+ public typealias AllCases = [TerraSDK.HealthObservation.Category]
833
+ public typealias RawValue = Swift.String
834
+ nonisolated public static var allCases: [TerraSDK.HealthObservation.Category] {
835
+ get
836
+ }
837
+ public var rawValue: Swift.String {
838
+ get
839
+ }
840
+ }
841
+ public enum Severity : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
842
+ case unspecified
843
+ case notPresent
844
+ case mild
845
+ case moderate
846
+ case severe
847
+ public init?(rawValue: Swift.String)
848
+ public typealias AllCases = [TerraSDK.HealthObservation.Severity]
849
+ public typealias RawValue = Swift.String
850
+ nonisolated public static var allCases: [TerraSDK.HealthObservation.Severity] {
851
+ get
852
+ }
853
+ public var rawValue: Swift.String {
854
+ get
855
+ }
856
+ }
857
+ public enum Value : Swift.Sendable, Swift.Equatable {
858
+ case quantity(Swift.Double, unit: Swift.String)
859
+ public static func == (a: TerraSDK.HealthObservation.Value, b: TerraSDK.HealthObservation.Value) -> Swift.Bool
860
+ }
861
+ public let id: Foundation.UUID
862
+ public let storeIdentifier: Swift.String
863
+ public let category: TerraSDK.HealthObservation.Category
864
+ public let interval: Foundation.DateInterval
865
+ public let severity: TerraSDK.HealthObservation.Severity?
866
+ public let value: TerraSDK.HealthObservation.Value?
867
+ public let source: TerraSDK.SampleSource
868
+ public let userEntered: Swift.Bool
869
+ public let timeZone: Foundation.TimeZone?
870
+ 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)
871
+ public static func == (a: TerraSDK.HealthObservation, b: TerraSDK.HealthObservation) -> Swift.Bool
872
+ public typealias ID = Foundation.UUID
873
+ }
874
+ public struct HealthChanges : Swift.Sendable {
875
+ public var heartRate: [TerraSDK.HeartRateSample]
876
+ public var steps: [TerraSDK.StepCount]
877
+ public var restingHeartRate: [TerraSDK.RestingHeartRateSample]
878
+ public var sleep: [TerraSDK.SleepSegment]
879
+ public var workouts: [TerraSDK.Workout]
880
+ public var workoutIntensity: [TerraSDK.WorkoutIntensitySample]
881
+ public var workoutRoutes: [TerraSDK.WorkoutRoute]
882
+ public var intensityArrivals: [TerraSDK.WorkoutIntensityArrival]
883
+ public var routeArrivals: [TerraSDK.WorkoutRouteArrival]
884
+ public var body: [TerraSDK.BodyReading]
885
+ public var nutrients: [TerraSDK.DietaryQuantity]
886
+ public var hydration: [TerraSDK.HydrationSample]
887
+ public var menstruation: [TerraSDK.MenstruationFlowDay]
888
+ public var menstrualEvents: [TerraSDK.MenstrualEvent]
889
+ public var healthObservations: [TerraSDK.HealthObservation]
890
+ public var athlete: TerraSDK.AthleteProfile?
891
+ public var dayTotals: [TerraSDK.DayTotal]
892
+ public var intraday: [TerraSDK.IntradaySample]
893
+ public var readAt: Foundation.Date?
894
+ public var bodySeriesArrivals: [TerraSDK.BodySeriesArrival]
895
+ public var totalRelevantInstants: [Foundation.Date]
896
+ public var anchor: Foundation.Data?
897
+ public var more: Swift.Bool
898
+ public var isEmpty: Swift.Bool {
899
+ get
900
+ }
901
+ 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)
902
+ }
903
+ public struct BodySeriesArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
904
+ public let id: Foundation.UUID
905
+ public let instant: Foundation.Date
906
+ public init(id: Foundation.UUID, instant: Foundation.Date)
907
+ public static func == (a: TerraSDK.BodySeriesArrival, b: TerraSDK.BodySeriesArrival) -> Swift.Bool
908
+ public func hash(into hasher: inout Swift.Hasher)
909
+ public var hashValue: Swift.Int {
910
+ get
911
+ }
912
+ }
913
+ public struct WorkoutIntensityArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
914
+ public let id: Foundation.UUID
915
+ public let instant: Foundation.Date
916
+ public init(id: Foundation.UUID, instant: Foundation.Date)
917
+ public static func == (a: TerraSDK.WorkoutIntensityArrival, b: TerraSDK.WorkoutIntensityArrival) -> Swift.Bool
918
+ public func hash(into hasher: inout Swift.Hasher)
919
+ public var hashValue: Swift.Int {
920
+ get
921
+ }
922
+ }
923
+ public struct WorkoutRouteArrival : Swift.Sendable, Swift.Equatable, Swift.Hashable {
924
+ public let id: Foundation.UUID
925
+ public let instant: Foundation.Date
926
+ public init(id: Foundation.UUID, instant: Foundation.Date)
927
+ public static func == (a: TerraSDK.WorkoutRouteArrival, b: TerraSDK.WorkoutRouteArrival) -> Swift.Bool
928
+ public func hash(into hasher: inout Swift.Hasher)
929
+ public var hashValue: Swift.Int {
930
+ get
931
+ }
932
+ }
933
+ public protocol HealthStore : Swift.Sendable {
934
+ var isAvailable: Swift.Bool { get }
935
+ var canPresentAuthorization: Swift.Bool { get }
936
+ func readStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
937
+ func requestAccess(_ access: TerraSDK.HealthAccess) async throws
938
+ func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
939
+ func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
940
+ func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
941
+ func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
942
+ var appliesDayTotalPolicy: Swift.Bool { get }
943
+ func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int) async throws -> TerraSDK.HealthChanges
944
+ func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
945
+ func observe(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) -> _Concurrency.AsyncStream<TerraSDK.ObservedWake>
946
+ func enableBackgroundObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> Swift.Bool
947
+ func replayObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source) async -> TerraSDK.ObservedChange
948
+ func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
949
+ func save(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
950
+ func save(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
951
+ func save(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
952
+ func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
953
+ func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
954
+ func save(_ entry: TerraSDK.WorkoutEntry) async throws -> Foundation.UUID
955
+ func writeAccess(for entries: [TerraSDK.WorkoutEntry]) async throws -> TerraSDK.HealthAccess
956
+ func requireWritable(_ entries: [TerraSDK.WorkoutEntry]) async throws
957
+ func delete(_ id: Foundation.UUID, in category: TerraSDK.DataCategory) async throws
958
+ func heartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HeartRateSample]
959
+ func restingHeartRate(in interval: Foundation.DateInterval) async throws -> [TerraSDK.RestingHeartRateSample]
960
+ func stepSamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.StepCount]
961
+ func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
962
+ func sleep(in interval: Foundation.DateInterval) async throws -> [TerraSDK.SleepSegment]
963
+ func workouts(in interval: Foundation.DateInterval) async throws -> [TerraSDK.Workout]
964
+ func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
965
+ func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
966
+ func bodyReadings(in interval: Foundation.DateInterval) async throws -> [TerraSDK.BodyReading]
967
+ func bodyReadings(in interval: Foundation.DateInterval, recordTypes: Swift.Set<Swift.String>) async throws -> [TerraSDK.BodyReading]
968
+ func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
969
+ func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
970
+ func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
971
+ func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
972
+ func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
973
+ func athleteProfile() async throws -> TerraSDK.AthleteProfile?
974
+ }
975
+ extension TerraSDK.HealthStore {
976
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone) async throws -> [TerraSDK.DayTotal]
977
+ public func dayTotals(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DayTotal]
978
+ public func dayTotals(in interval: Foundation.DateInterval, zone: Foundation.TimeZone, policy: TerraSDK.DayTotalPolicy) async throws -> [TerraSDK.DayTotal]
979
+ public var appliesDayTotalPolicy: Swift.Bool {
980
+ get
981
+ }
982
+ public func changes(for dataType: TerraSDK.UploadDataType, since anchor: Foundation.Data?, limit: Swift.Int, attachingContents: Swift.Bool) async throws -> TerraSDK.HealthChanges
983
+ public var canPresentAuthorization: Swift.Bool {
984
+ get
985
+ }
986
+ public func servable(_ access: TerraSDK.HealthAccess) async throws -> TerraSDK.HealthAccess
987
+ public func save(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
988
+ public func save(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
989
+ public func bodyReadings(in interval: Foundation.DateInterval) async throws -> [TerraSDK.BodyReading]
990
+ public func bodyReadings(in interval: Foundation.DateInterval, recordTypes: Swift.Set<Swift.String>) async throws -> [TerraSDK.BodyReading]
991
+ public func dietaryQuantities(in interval: Foundation.DateInterval) async throws -> [TerraSDK.DietaryQuantity]
992
+ public func hydration(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HydrationSample]
993
+ public func menstruationFlow(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstruationFlowDay]
994
+ public func athleteProfile() async throws -> TerraSDK.AthleteProfile?
995
+ public func intradaySamples(in interval: Foundation.DateInterval) async throws -> [TerraSDK.IntradaySample]
996
+ public func menstrualEvents(in interval: Foundation.DateInterval) async throws -> [TerraSDK.MenstrualEvent]
997
+ public func healthObservations(in interval: Foundation.DateInterval) async throws -> [TerraSDK.HealthObservation]
998
+ public func workoutIntensity(inside workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutIntensitySample]
999
+ public func workoutRoutes(of workouts: [TerraSDK.Workout]) async throws -> [TerraSDK.WorkoutRoute]
1000
+ }
1001
+ public struct KeychainDeviceStore : TerraSDK.DeviceStore {
1002
+ public var storageDomain: Swift.String {
1003
+ get
1004
+ }
1005
+ public func linkDiagnostics(source: TerraSDK.Source) throws -> TerraSDK.LinkDiagnostics?
1006
+ public func saveLastDelivery(_ date: Foundation.Date, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1007
+ public func loadDiagnosticsSends() throws -> [TerraSDK.DiagnosticsSend]
1008
+ public func reserveDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend, notWithin interval: Foundation.TimeInterval, automaticLimit limit: Swift.Int?) throws -> Swift.Bool
1009
+ public func releaseDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend) throws
1010
+ public func loadObservationAnchor(key: Swift.String) throws -> Foundation.Data?
1011
+ public func saveObservationAnchor(_ anchor: Foundation.Data, key: Swift.String) throws
1012
+ public func linkGeneration(source: TerraSDK.Source) -> Swift.Int
1013
+ public func loadDeferredObservations(source: TerraSDK.Source) throws -> [TerraSDK.DataCategory : TerraSDK.DeferredWake]
1014
+ @discardableResult
1015
+ public func deferObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeferredWake
1016
+ public func retireObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, ifStillAt wake: TerraSDK.DeferredWake) throws
1017
+ public func claimWakeSync(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1018
+ public func takeWakesOwed(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1019
+ public func releaseWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1020
+ public func claimSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1021
+ public func releaseSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1022
+ public func beginRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1023
+ public func endRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1024
+ public func lastWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) -> Foundation.Date?
1025
+ public func noteWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, at time: Foundation.Date)
1026
+ public func pausedUntil(source: TerraSDK.Source) -> Foundation.Date?
1027
+ public func pause(source: TerraSDK.Source, until: Foundation.Date)
1028
+ public func claimLink(source: TerraSDK.Source) -> Swift.Bool
1029
+ public func releaseLink(source: TerraSDK.Source)
1030
+ public init(domain: Swift.String = "co.tryterra.sdk")
1031
+ public func loadConnection(source: TerraSDK.Source) throws -> TerraSDK.StoredConnection?
1032
+ public func completeLink(_ connection: TerraSDK.StoredConnection) throws
1033
+ @discardableResult
1034
+ public func updateConnection(_ connection: TerraSDK.StoredConnection, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1035
+ @discardableResult
1036
+ public func endLink(source: TerraSDK.Source, ifGeneration generation: Swift.Int?, owing revocation: TerraSDK.PendingRevocation?) throws -> Swift.Int?
1037
+ public func loadProviderUserID() throws -> Swift.String?
1038
+ public func saveProviderUserID(_ id: Swift.String) throws
1039
+ public func activeDevID() throws -> Swift.String?
1040
+ @discardableResult
1041
+ public func claimDevID(_ devID: Swift.String) throws -> Swift.Bool
1042
+ public func loadRequestedAccess() throws -> TerraSDK.HealthAccess
1043
+ @discardableResult
1044
+ public func recordRequestedAccess(_ access: TerraSDK.HealthAccess) throws -> TerraSDK.HealthAccess
1045
+ public func loadSyncedThrough(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1046
+ public func saveSyncedThrough(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1047
+ public func loadSyncedFrom(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1048
+ public func saveSyncedFrom(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1049
+ public func loadServerBackfills(source: TerraSDK.Source) throws -> [TerraSDK.StoredBackfillRequest]
1050
+ @discardableResult
1051
+ public func upsertServerBackfill(_ request: TerraSDK.StoredBackfillRequest, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1052
+ public func removeServerBackfill(reference: Swift.String, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1053
+ public func loadPendingRevocations(source: TerraSDK.Source) throws -> [TerraSDK.PendingRevocation]
1054
+ public func claimRevocations(source: TerraSDK.Source) -> Swift.Bool
1055
+ @discardableResult
1056
+ public func releaseRevocations(source: TerraSDK.Source) -> Swift.Bool
1057
+ public func savePendingRevocation(_ revocation: TerraSDK.PendingRevocation) throws
1058
+ public func removePendingRevocation(source: TerraSDK.Source, generation: Swift.Int) throws
1059
+ public func beginLink(source: TerraSDK.Source, owing revocation: TerraSDK.PendingRevocation?) throws -> TerraSDK.LinkTransition
1060
+ public func loadSyncAnchor(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Data?
1061
+ public func saveSyncAnchor(_ anchor: Foundation.Data, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1062
+ }
1063
+ public struct MenstruationFlowDay : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1064
+ public enum Flow : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1065
+ case unspecified
1066
+ case light
1067
+ case medium
1068
+ case heavy
1069
+ case noFlow
1070
+ public init?(rawValue: Swift.String)
1071
+ public typealias AllCases = [TerraSDK.MenstruationFlowDay.Flow]
1072
+ public typealias RawValue = Swift.String
1073
+ nonisolated public static var allCases: [TerraSDK.MenstruationFlowDay.Flow] {
1074
+ get
1075
+ }
1076
+ public var rawValue: Swift.String {
1077
+ get
1078
+ }
1079
+ }
1080
+ public let id: Foundation.UUID
1081
+ public let interval: Foundation.DateInterval
1082
+ public let flow: TerraSDK.MenstruationFlowDay.Flow
1083
+ public let cycleStart: Swift.Bool
1084
+ public let source: TerraSDK.SampleSource
1085
+ public let userEntered: Swift.Bool
1086
+ public let timeZone: Foundation.TimeZone?
1087
+ 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)
1088
+ public static func == (a: TerraSDK.MenstruationFlowDay, b: TerraSDK.MenstruationFlowDay) -> Swift.Bool
1089
+ public typealias ID = Foundation.UUID
1090
+ }
1091
+ public struct MenstrualEvent : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1092
+ public enum Kind : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1093
+ case intermenstrualBleeding
1094
+ case ovulationTest
1095
+ case cervicalMucus
1096
+ case sexualActivity
1097
+ case pregnancyTest
1098
+ case progesteroneTest
1099
+ case pregnancy
1100
+ case lactation
1101
+ case contraceptive
1102
+ case persistentIntermenstrualBleeding
1103
+ case infrequentCycles
1104
+ case irregularCycles
1105
+ case prolongedPeriods
1106
+ case bleedingDuringPregnancy
1107
+ case bleedingAfterPregnancy
1108
+ public var values: [Swift.String] {
1109
+ get
1110
+ }
1111
+ public init?(rawValue: Swift.String)
1112
+ public typealias AllCases = [TerraSDK.MenstrualEvent.Kind]
1113
+ public typealias RawValue = Swift.String
1114
+ nonisolated public static var allCases: [TerraSDK.MenstrualEvent.Kind] {
1115
+ get
1116
+ }
1117
+ public var rawValue: Swift.String {
1118
+ get
1119
+ }
1120
+ }
1121
+ public let id: Foundation.UUID
1122
+ public let kind: TerraSDK.MenstrualEvent.Kind
1123
+ public let instant: Foundation.Date
1124
+ public let value: Swift.String?
1125
+ public let source: TerraSDK.SampleSource
1126
+ public let userEntered: Swift.Bool
1127
+ public let timeZone: Foundation.TimeZone?
1128
+ public let storeIdentifier: Swift.String
1129
+ 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)
1130
+ public static func == (a: TerraSDK.MenstrualEvent, b: TerraSDK.MenstrualEvent) -> Swift.Bool
1131
+ public typealias ID = Foundation.UUID
1132
+ }
1133
+ public struct DietaryQuantity : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1134
+ public let id: Foundation.UUID
1135
+ public let nutrient: TerraSDK.Nutrient
1136
+ public let value: Swift.Double
1137
+ public let interval: Foundation.DateInterval
1138
+ public let mealType: TerraSDK.MealType
1139
+ public let name: Swift.String?
1140
+ public let foodCorrelationID: Foundation.UUID?
1141
+ public let source: TerraSDK.SampleSource
1142
+ public let userEntered: Swift.Bool
1143
+ public let timeZone: Foundation.TimeZone?
1144
+ 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)
1145
+ public static func == (a: TerraSDK.DietaryQuantity, b: TerraSDK.DietaryQuantity) -> Swift.Bool
1146
+ public typealias ID = Foundation.UUID
1147
+ }
1148
+ public enum MealType : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1149
+ case breakfast
1150
+ case lunch
1151
+ case dinner
1152
+ case snack
1153
+ case unknown
1154
+ public init?(rawValue: Swift.String)
1155
+ public typealias AllCases = [TerraSDK.MealType]
1156
+ public typealias RawValue = Swift.String
1157
+ nonisolated public static var allCases: [TerraSDK.MealType] {
1158
+ get
1159
+ }
1160
+ public var rawValue: Swift.String {
1161
+ get
1162
+ }
1163
+ }
1164
+ public enum Nutrient : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1165
+ case energyConsumed
1166
+ case protein
1167
+ case carbohydrates
1168
+ case fatTotal
1169
+ case fatSaturated
1170
+ case fatMonounsaturated
1171
+ case fatPolyunsaturated
1172
+ case sugar
1173
+ case fiber
1174
+ case cholesterol
1175
+ case sodium
1176
+ case potassium
1177
+ case calcium
1178
+ case iron
1179
+ case magnesium
1180
+ case zinc
1181
+ case phosphorus
1182
+ case iodine
1183
+ case manganese
1184
+ case molybdenum
1185
+ case selenium
1186
+ case copper
1187
+ case chromium
1188
+ case chloride
1189
+ case caffeine
1190
+ case vitaminA
1191
+ case vitaminC
1192
+ case vitaminD
1193
+ case vitaminE
1194
+ case vitaminK
1195
+ case vitaminB6
1196
+ case vitaminB12
1197
+ case thiamin
1198
+ case riboflavin
1199
+ case niacin
1200
+ case folate
1201
+ case biotin
1202
+ case pantothenicAcid
1203
+ public var unit: Swift.String {
1204
+ get
1205
+ }
1206
+ public init?(rawValue: Swift.String)
1207
+ public typealias AllCases = [TerraSDK.Nutrient]
1208
+ public typealias RawValue = Swift.String
1209
+ nonisolated public static var allCases: [TerraSDK.Nutrient] {
1210
+ get
1211
+ }
1212
+ public var rawValue: Swift.String {
1213
+ get
1214
+ }
1215
+ }
1216
+ public struct HydrationSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1217
+ public let id: Foundation.UUID
1218
+ public let interval: Foundation.DateInterval
1219
+ public let millilitres: Swift.Double
1220
+ public let source: TerraSDK.SampleSource
1221
+ public let userEntered: Swift.Bool
1222
+ public let timeZone: Foundation.TimeZone?
1223
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, millilitres: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1224
+ public static func == (a: TerraSDK.HydrationSample, b: TerraSDK.HydrationSample) -> Swift.Bool
1225
+ public typealias ID = Foundation.UUID
1226
+ }
1227
+ public struct PlannedWorkout : Swift.Sendable, Swift.Equatable, Swift.Identifiable, Swift.Decodable {
1228
+ public let id: Swift.String
1229
+ public let plannedOn: Foundation.DateComponents
1230
+ public let activity: TerraSDK.WorkoutActivity
1231
+ public let title: Swift.String?
1232
+ public let completedAt: Foundation.Date?
1233
+ public init(id: Swift.String, plannedOn: Foundation.DateComponents, activity: TerraSDK.WorkoutActivity, title: Swift.String? = nil, completedAt: Foundation.Date? = nil)
1234
+ public init(from decoder: any Swift.Decoder) throws
1235
+ public static func == (a: TerraSDK.PlannedWorkout, b: TerraSDK.PlannedWorkout) -> Swift.Bool
1236
+ public typealias ID = Swift.String
1237
+ }
1238
+ public struct SampleSource : Swift.Sendable, Swift.Equatable, Swift.Hashable {
1239
+ public let name: Swift.String
1240
+ public let bundleID: Swift.String
1241
+ public let productType: Swift.String?
1242
+ public let deviceType: TerraSDK.DeviceType?
1243
+ public init(name: Swift.String, bundleID: Swift.String, productType: Swift.String? = nil, deviceType: TerraSDK.DeviceType? = nil)
1244
+ public static func == (a: TerraSDK.SampleSource, b: TerraSDK.SampleSource) -> Swift.Bool
1245
+ public func hash(into hasher: inout Swift.Hasher)
1246
+ public var hashValue: Swift.Int {
1247
+ get
1248
+ }
1249
+ }
1250
+ public enum DeviceType : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable {
1251
+ case phone
1252
+ case scale
1253
+ case sensor
1254
+ public init?(rawValue: Swift.String)
1255
+ public typealias AllCases = [TerraSDK.DeviceType]
1256
+ public typealias RawValue = Swift.String
1257
+ nonisolated public static var allCases: [TerraSDK.DeviceType] {
1258
+ get
1259
+ }
1260
+ public var rawValue: Swift.String {
1261
+ get
1262
+ }
1263
+ }
1264
+ public enum MotionContext : Swift.String, Swift.Sendable, Swift.Equatable {
1265
+ case unknown
1266
+ case sedentary
1267
+ case active
1268
+ public init?(rawValue: Swift.String)
1269
+ public typealias RawValue = Swift.String
1270
+ public var rawValue: Swift.String {
1271
+ get
1272
+ }
1273
+ }
1274
+ public struct HeartRateSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1275
+ public let id: Foundation.UUID
1276
+ public let time: Foundation.Date
1277
+ public let beatsPerMinute: Swift.Double
1278
+ public let source: TerraSDK.SampleSource
1279
+ public let motionContext: TerraSDK.MotionContext?
1280
+ public let userEntered: Swift.Bool
1281
+ public let timeZone: Foundation.TimeZone?
1282
+ 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)
1283
+ public static func == (a: TerraSDK.HeartRateSample, b: TerraSDK.HeartRateSample) -> Swift.Bool
1284
+ public typealias ID = Foundation.UUID
1285
+ }
1286
+ public struct StepCount : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1287
+ public let interval: Foundation.DateInterval
1288
+ public let steps: Swift.Int
1289
+ public let source: TerraSDK.SampleSource
1290
+ public let userEntered: Swift.Bool
1291
+ public let uuid: Foundation.UUID?
1292
+ public let timeZone: Foundation.TimeZone?
1293
+ public var id: Swift.String {
1294
+ get
1295
+ }
1296
+ public init(interval: Foundation.DateInterval, steps: Swift.Int, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil, uuid: Foundation.UUID? = nil)
1297
+ public static func == (a: TerraSDK.StepCount, b: TerraSDK.StepCount) -> Swift.Bool
1298
+ public typealias ID = Swift.String
1299
+ }
1300
+ public struct RestingHeartRateSample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1301
+ public let id: Foundation.UUID
1302
+ public let interval: Foundation.DateInterval
1303
+ public let beatsPerMinute: Swift.Double
1304
+ public let source: TerraSDK.SampleSource
1305
+ public let userEntered: Swift.Bool
1306
+ public let timeZone: Foundation.TimeZone?
1307
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, beatsPerMinute: Swift.Double, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1308
+ public static func == (a: TerraSDK.RestingHeartRateSample, b: TerraSDK.RestingHeartRateSample) -> Swift.Bool
1309
+ public typealias ID = Foundation.UUID
1310
+ }
1311
+ public struct SleepSegment : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1312
+ public let id: Foundation.UUID
1313
+ public let interval: Foundation.DateInterval
1314
+ public let stage: TerraSDK.SleepStage
1315
+ public let source: TerraSDK.SampleSource
1316
+ public let userEntered: Swift.Bool
1317
+ public let timeZone: Foundation.TimeZone?
1318
+ public init(id: Foundation.UUID, interval: Foundation.DateInterval, stage: TerraSDK.SleepStage, source: TerraSDK.SampleSource, userEntered: Swift.Bool = false, timeZone: Foundation.TimeZone? = nil)
1319
+ public static func == (a: TerraSDK.SleepSegment, b: TerraSDK.SleepSegment) -> Swift.Bool
1320
+ public typealias ID = Foundation.UUID
1321
+ }
1322
+ public enum SleepStage : Swift.Sendable, Swift.Equatable {
1323
+ case inBed
1324
+ case awake
1325
+ case asleep
1326
+ case light
1327
+ case deep
1328
+ case rem
1329
+ case unknown(Swift.String)
1330
+ public static func == (a: TerraSDK.SleepStage, b: TerraSDK.SleepStage) -> Swift.Bool
1331
+ }
1332
+ public struct Workout : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1333
+ public let id: Foundation.UUID
1334
+ public let interval: Foundation.DateInterval
1335
+ public let activity: TerraSDK.WorkoutActivity
1336
+ public let activityTypeCode: Swift.Int
1337
+ public let indoor: Swift.Bool
1338
+ public let activeEnergyKilocalories: Swift.Double?
1339
+ public let distanceMeters: Swift.Double?
1340
+ public let source: TerraSDK.SampleSource
1341
+ public let userEntered: Swift.Bool
1342
+ public let timeZone: Foundation.TimeZone?
1343
+ public let stats: TerraSDK.WorkoutStats?
1344
+ public let events: [TerraSDK.WorkoutEvent]
1345
+ public let title: Swift.String?
1346
+ 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] = [], title: Swift.String? = nil)
1347
+ public static func == (a: TerraSDK.Workout, b: TerraSDK.Workout) -> Swift.Bool
1348
+ public typealias ID = Foundation.UUID
1349
+ }
1350
+ public struct WorkoutStats : Swift.Sendable, Swift.Equatable {
1351
+ public let steps: Swift.Int?
1352
+ public let basalEnergyKilocalories: Swift.Double?
1353
+ public let swimmingStrokes: Swift.Int?
1354
+ public let swimmingLaps: Swift.Int?
1355
+ public let elevationGainMeters: Swift.Double?
1356
+ public var isEmpty: Swift.Bool {
1357
+ get
1358
+ }
1359
+ public init(steps: Swift.Int? = nil, basalEnergyKilocalories: Swift.Double? = nil, swimmingStrokes: Swift.Int? = nil, swimmingLaps: Swift.Int? = nil, elevationGainMeters: Swift.Double? = nil)
1360
+ public static func == (a: TerraSDK.WorkoutStats, b: TerraSDK.WorkoutStats) -> Swift.Bool
1361
+ }
1362
+ public struct WorkoutEvent : Swift.Sendable, Swift.Equatable {
1363
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1364
+ case lap
1365
+ case segment
1366
+ case pause
1367
+ case resume
1368
+ case marker
1369
+ public init?(rawValue: Swift.String)
1370
+ public typealias AllCases = [TerraSDK.WorkoutEvent.Kind]
1371
+ public typealias RawValue = Swift.String
1372
+ nonisolated public static var allCases: [TerraSDK.WorkoutEvent.Kind] {
1373
+ get
1374
+ }
1375
+ public var rawValue: Swift.String {
1376
+ get
1377
+ }
1378
+ }
1379
+ public let kind: TerraSDK.WorkoutEvent.Kind
1380
+ public let interval: Foundation.DateInterval
1381
+ public init(kind: TerraSDK.WorkoutEvent.Kind, interval: Foundation.DateInterval)
1382
+ public static func == (a: TerraSDK.WorkoutEvent, b: TerraSDK.WorkoutEvent) -> Swift.Bool
1383
+ }
1384
+ public struct WorkoutIntensitySample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1385
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1386
+ case speed
1387
+ case power
1388
+ case cadence
1389
+ public var unit: Swift.String {
1390
+ get
1391
+ }
1392
+ public init?(rawValue: Swift.String)
1393
+ public typealias AllCases = [TerraSDK.WorkoutIntensitySample.Kind]
1394
+ public typealias RawValue = Swift.String
1395
+ nonisolated public static var allCases: [TerraSDK.WorkoutIntensitySample.Kind] {
1396
+ get
1397
+ }
1398
+ public var rawValue: Swift.String {
1399
+ get
1400
+ }
1401
+ }
1402
+ public let id: Foundation.UUID
1403
+ public let kind: TerraSDK.WorkoutIntensitySample.Kind
1404
+ public let workoutId: Foundation.UUID
1405
+ public let interval: Foundation.DateInterval
1406
+ public let value: Swift.Double
1407
+ public let source: TerraSDK.SampleSource
1408
+ public let userEntered: Swift.Bool
1409
+ public let timeZone: Foundation.TimeZone?
1410
+ 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)
1411
+ public static func == (a: TerraSDK.WorkoutIntensitySample, b: TerraSDK.WorkoutIntensitySample) -> Swift.Bool
1412
+ public typealias ID = Foundation.UUID
1413
+ }
1414
+ public enum WorkoutActivity : Swift.Sendable, Swift.Hashable {
1415
+ case running
1416
+ case walking
1417
+ case cycling
1418
+ case swimming
1419
+ case strengthTraining
1420
+ case other(Swift.String)
1421
+ public static func == (a: TerraSDK.WorkoutActivity, b: TerraSDK.WorkoutActivity) -> Swift.Bool
1422
+ public func hash(into hasher: inout Swift.Hasher)
1423
+ public var hashValue: Swift.Int {
1424
+ get
1425
+ }
1426
+ }
1427
+ public struct DayTotal : Swift.Sendable, Swift.Equatable {
1428
+ public enum Metric : Swift.String, Swift.Sendable, Swift.CaseIterable {
1429
+ case steps
1430
+ case distanceWalkingRunning
1431
+ case distanceCycling
1432
+ case distanceSwimming
1433
+ case distanceWheelchair
1434
+ case activeEnergyBurned
1435
+ case basalEnergyBurned
1436
+ case flightsClimbed
1437
+ case swimmingStrokeCount
1438
+ case appleExerciseTime
1439
+ case appleMoveTime
1440
+ case appleStandTime
1441
+ case appleStandHours
1442
+ public var intradayKind: TerraSDK.IntradaySample.Kind? {
1443
+ get
1444
+ }
1445
+ public var unit: Swift.String {
1446
+ get
1447
+ }
1448
+ public init?(rawValue: Swift.String)
1449
+ public typealias AllCases = [TerraSDK.DayTotal.Metric]
1450
+ public typealias RawValue = Swift.String
1451
+ nonisolated public static var allCases: [TerraSDK.DayTotal.Metric] {
1452
+ get
1453
+ }
1454
+ public var rawValue: Swift.String {
1455
+ get
1456
+ }
1457
+ }
1458
+ public let metric: TerraSDK.DayTotal.Metric
1459
+ public let interval: Foundation.DateInterval
1460
+ public let value: Swift.Double
1461
+ public let unit: Swift.String
1462
+ public let timeZone: Foundation.TimeZone?
1463
+ public init(metric: TerraSDK.DayTotal.Metric, interval: Foundation.DateInterval, value: Swift.Double, unit: Swift.String, timeZone: Foundation.TimeZone? = nil)
1464
+ public static func == (a: TerraSDK.DayTotal, b: TerraSDK.DayTotal) -> Swift.Bool
1465
+ }
1466
+ public struct DayTotalPolicy : Swift.Sendable, Swift.Equatable {
1467
+ public var excludeUserEntered: Swift.Bool
1468
+ public init(excludeUserEntered: Swift.Bool = false)
1469
+ public static let `default`: TerraSDK.DayTotalPolicy
1470
+ public static func == (a: TerraSDK.DayTotalPolicy, b: TerraSDK.DayTotalPolicy) -> Swift.Bool
1471
+ }
1472
+ public struct IntradaySample : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1473
+ public enum Kind : Swift.String, Swift.Sendable, Swift.CaseIterable {
1474
+ case activeEnergy
1475
+ case basalEnergy
1476
+ case distance
1477
+ case floorsClimbed
1478
+ public var unit: Swift.String {
1479
+ get
1480
+ }
1481
+ public init?(rawValue: Swift.String)
1482
+ public typealias AllCases = [TerraSDK.IntradaySample.Kind]
1483
+ public typealias RawValue = Swift.String
1484
+ nonisolated public static var allCases: [TerraSDK.IntradaySample.Kind] {
1485
+ get
1486
+ }
1487
+ public var rawValue: Swift.String {
1488
+ get
1489
+ }
1490
+ }
1491
+ public let id: Foundation.UUID
1492
+ public let kind: TerraSDK.IntradaySample.Kind
1493
+ public let interval: Foundation.DateInterval
1494
+ public let value: Swift.Double
1495
+ public let source: TerraSDK.SampleSource
1496
+ public let userEntered: Swift.Bool
1497
+ public let timeZone: Foundation.TimeZone?
1498
+ 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)
1499
+ public static func == (a: TerraSDK.IntradaySample, b: TerraSDK.IntradaySample) -> Swift.Bool
1500
+ public typealias ID = Foundation.UUID
1501
+ }
1502
+ public struct WorkoutRoute : Swift.Sendable, Swift.Equatable, Swift.Identifiable {
1503
+ public let id: Foundation.UUID
1504
+ public let workoutId: Foundation.UUID
1505
+ public let interval: Foundation.DateInterval
1506
+ public let points: [TerraSDK.RoutePoint]
1507
+ public let source: TerraSDK.SampleSource
1508
+ public let timeZone: Foundation.TimeZone?
1509
+ public init(id: Foundation.UUID, workoutId: Foundation.UUID, interval: Foundation.DateInterval, points: [TerraSDK.RoutePoint], source: TerraSDK.SampleSource, timeZone: Foundation.TimeZone? = nil)
1510
+ public static let minimumSecondsBetweenPoints: Swift.Double
1511
+ public static let maximumPoints: Swift.Int
1512
+ public static func withinCaps(_ points: [TerraSDK.RoutePoint]) -> [TerraSDK.RoutePoint]
1513
+ public static func == (a: TerraSDK.WorkoutRoute, b: TerraSDK.WorkoutRoute) -> Swift.Bool
1514
+ public typealias ID = Foundation.UUID
1515
+ }
1516
+ public struct RoutePoint : Swift.Sendable, Swift.Equatable, Swift.Hashable {
1517
+ public let time: Foundation.Date
1518
+ public let latitude: Swift.Double
1519
+ public let longitude: Swift.Double
1520
+ public init(time: Foundation.Date, latitude: Swift.Double, longitude: Swift.Double)
1521
+ public static func == (a: TerraSDK.RoutePoint, b: TerraSDK.RoutePoint) -> Swift.Bool
1522
+ public func hash(into hasher: inout Swift.Hasher)
1523
+ public var hashValue: Swift.Int {
1524
+ get
1525
+ }
1526
+ }
1527
+ public struct LinkTransition : Swift.Sendable, Swift.Hashable {
1528
+ public let opened: Swift.Int
1529
+ public let ended: Swift.Int?
1530
+ public init(opened: Swift.Int, ended: Swift.Int?)
1531
+ public static func == (a: TerraSDK.LinkTransition, b: TerraSDK.LinkTransition) -> Swift.Bool
1532
+ public func hash(into hasher: inout Swift.Hasher)
1533
+ public var hashValue: Swift.Int {
1534
+ get
1535
+ }
1536
+ }
1537
+ public struct StoredConnection : Swift.Sendable, Swift.Equatable, Swift.Codable {
1538
+ public let source: TerraSDK.Source
1539
+ public let userID: Swift.String
1540
+ public var providerUserID: Swift.String
1541
+ public var generation: Swift.Int
1542
+ public var devID: Swift.String
1543
+ public var revokedAt: Foundation.Date?
1544
+ public var dayZones: [TerraSDK.DayZoneStretch]
1545
+ public var endUser: Swift.String?
1546
+ 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)
1547
+ public init(from decoder: any Swift.Decoder) throws
1548
+ public static func == (a: TerraSDK.StoredConnection, b: TerraSDK.StoredConnection) -> Swift.Bool
1549
+ public func encode(to encoder: any Swift.Encoder) throws
1550
+ }
1551
+ public struct DayZoneStretch : Swift.Sendable, Swift.Equatable, Swift.Codable {
1552
+ public let start: Foundation.Date
1553
+ public let end: Foundation.Date
1554
+ public let zone: Swift.String
1555
+ public init(start: Foundation.Date, end: Foundation.Date, zone: Swift.String)
1556
+ public static let limit: Swift.Int
1557
+ public static func == (a: TerraSDK.DayZoneStretch, b: TerraSDK.DayZoneStretch) -> Swift.Bool
1558
+ public func encode(to encoder: any Swift.Encoder) throws
1559
+ public init(from decoder: any Swift.Decoder) throws
1560
+ }
1561
+ public struct StoredBackfillRequest : Swift.Sendable, Swift.Equatable, Swift.Codable {
1562
+ public let reference: Swift.String
1563
+ public let dataType: TerraSDK.UploadDataType
1564
+ public let start: Foundation.Date
1565
+ public let end: Foundation.Date
1566
+ public var servedThrough: Foundation.Date
1567
+ public var failedRuns: Swift.Int
1568
+ public let receivedAt: Foundation.Date
1569
+ public static let queueLimit: Swift.Int
1570
+ 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)
1571
+ public static func == (a: TerraSDK.StoredBackfillRequest, b: TerraSDK.StoredBackfillRequest) -> Swift.Bool
1572
+ public func encode(to encoder: any Swift.Encoder) throws
1573
+ public init(from decoder: any Swift.Decoder) throws
1574
+ }
1575
+ public struct PendingRevocation : Swift.Sendable, Swift.Equatable, Swift.Codable {
1576
+ public let source: TerraSDK.Source
1577
+ public let providerUserID: Swift.String
1578
+ public let generation: Swift.Int
1579
+ public var attempts: Swift.Int
1580
+ public let deferredAt: Foundation.Date
1581
+ public var isDeliverable: Swift.Bool {
1582
+ get
1583
+ }
1584
+ public init(source: TerraSDK.Source, providerUserID: Swift.String, generation: Swift.Int, attempts: Swift.Int = 0, deferredAt: Foundation.Date)
1585
+ public static func == (a: TerraSDK.PendingRevocation, b: TerraSDK.PendingRevocation) -> Swift.Bool
1586
+ public func encode(to encoder: any Swift.Encoder) throws
1587
+ public init(from decoder: any Swift.Decoder) throws
1588
+ }
1589
+ public struct LinkDiagnostics : Swift.Sendable, Swift.Equatable {
1590
+ public let generation: Swift.Int
1591
+ public let lastDelivery: Foundation.Date?
1592
+ public let isRetrying: Swift.Bool
1593
+ public let isRevoked: Swift.Bool
1594
+ public init(generation: Swift.Int, lastDelivery: Foundation.Date?, isRetrying: Swift.Bool, isRevoked: Swift.Bool)
1595
+ public static func == (a: TerraSDK.LinkDiagnostics, b: TerraSDK.LinkDiagnostics) -> Swift.Bool
1596
+ }
1597
+ public protocol DeviceStore : Swift.Sendable {
1598
+ func loadConnection(source: TerraSDK.Source) throws -> TerraSDK.StoredConnection?
1599
+ var storageDomain: Swift.String { get }
1600
+ func activeDevID() throws -> Swift.String?
1601
+ @discardableResult
1602
+ func claimDevID(_ devID: Swift.String) throws -> Swift.Bool
1603
+ func loadRequestedAccess() throws -> TerraSDK.HealthAccess
1604
+ @discardableResult
1605
+ func recordRequestedAccess(_ access: TerraSDK.HealthAccess) throws -> TerraSDK.HealthAccess
1606
+ func loadProviderUserID() throws -> Swift.String?
1607
+ func saveProviderUserID(_ id: Swift.String) throws
1608
+ func loadSyncedThrough(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1609
+ func saveSyncedThrough(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1610
+ func loadSyncedFrom(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Date?
1611
+ func saveSyncedFrom(_ date: Foundation.Date, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1612
+ func loadServerBackfills(source: TerraSDK.Source) throws -> [TerraSDK.StoredBackfillRequest]
1613
+ @discardableResult
1614
+ func upsertServerBackfill(_ request: TerraSDK.StoredBackfillRequest, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1615
+ func removeServerBackfill(reference: Swift.String, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1616
+ func beginLink(source: TerraSDK.Source, owing revocation: TerraSDK.PendingRevocation?) throws -> TerraSDK.LinkTransition
1617
+ func completeLink(_ connection: TerraSDK.StoredConnection) throws
1618
+ @discardableResult
1619
+ func updateConnection(_ connection: TerraSDK.StoredConnection, ifGeneration generation: Swift.Int) throws -> Swift.Bool
1620
+ @discardableResult
1621
+ func endLink(source: TerraSDK.Source, ifGeneration generation: Swift.Int?, owing revocation: TerraSDK.PendingRevocation?) throws -> Swift.Int?
1622
+ func claimSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1623
+ func releaseSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1624
+ func beginRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1625
+ func endRetry(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int)
1626
+ func lastWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) -> Foundation.Date?
1627
+ func noteWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, at time: Foundation.Date)
1628
+ func pausedUntil(source: TerraSDK.Source) -> Foundation.Date?
1629
+ func pause(source: TerraSDK.Source, until: Foundation.Date)
1630
+ func linkDiagnostics(source: TerraSDK.Source) throws -> TerraSDK.LinkDiagnostics?
1631
+ func saveLastDelivery(_ date: Foundation.Date, source: TerraSDK.Source, ifGeneration generation: Swift.Int) throws
1632
+ func loadDiagnosticsSends() throws -> [TerraSDK.DiagnosticsSend]
1633
+ func reserveDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend, notWithin interval: Foundation.TimeInterval, automaticLimit limit: Swift.Int?) throws -> Swift.Bool
1634
+ func releaseDiagnosticsSend(_ send: TerraSDK.DiagnosticsSend) throws
1635
+ func loadObservationAnchor(key: Swift.String) throws -> Foundation.Data?
1636
+ func saveObservationAnchor(_ anchor: Foundation.Data, key: Swift.String) throws
1637
+ func linkGeneration(source: TerraSDK.Source) -> Swift.Int
1638
+ func claimWakeSync(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Bool
1639
+ func takeWakesOwed(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1640
+ func releaseWakeSync(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, generation: Swift.Int) -> Swift.Set<TerraSDK.DataCategory>
1641
+ func loadDeferredObservations(source: TerraSDK.Source) throws -> [TerraSDK.DataCategory : TerraSDK.DeferredWake]
1642
+ @discardableResult
1643
+ func deferObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, generation: Swift.Int) throws -> TerraSDK.DeferredWake
1644
+ func retireObservation(_ category: TerraSDK.DataCategory, source: TerraSDK.Source, ifStillAt wake: TerraSDK.DeferredWake) throws
1645
+ func loadPendingRevocations(source: TerraSDK.Source) throws -> [TerraSDK.PendingRevocation]
1646
+ func savePendingRevocation(_ revocation: TerraSDK.PendingRevocation) throws
1647
+ func removePendingRevocation(source: TerraSDK.Source, generation: Swift.Int) throws
1648
+ func claimRevocations(source: TerraSDK.Source) -> Swift.Bool
1649
+ @discardableResult
1650
+ func releaseRevocations(source: TerraSDK.Source) -> Swift.Bool
1651
+ func claimLink(source: TerraSDK.Source) -> Swift.Bool
1652
+ func releaseLink(source: TerraSDK.Source)
1653
+ func loadSyncAnchor(source: TerraSDK.Source, dataType: TerraSDK.UploadDataType) throws -> Foundation.Data?
1654
+ func saveSyncAnchor(_ anchor: Foundation.Data, source: TerraSDK.Source, dataType: TerraSDK.UploadDataType, ifGeneration generation: Swift.Int) throws
1655
+ }
1656
+ @_hasMissingDesignatedInitializers final public class Terra : Swift.Sendable {
1657
+ @available(iOSApplicationExtension, unavailable)
1658
+ convenience public init(devID: Swift.String, tokenProvider: (@Sendable () async throws -> Swift.String)? = nil, dayTotals: TerraSDK.DayTotalPolicy = .default)
1659
+ 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)
1660
+ @discardableResult
1661
+ final public func connect(_ source: TerraSDK.Source, for endUser: TerraSDK.EndUser) async throws -> TerraSDK.Connection
1662
+ @discardableResult
1663
+ final public func connect(_ source: TerraSDK.Source, for endUser: TerraSDK.EndUser, using token: Swift.String) async throws -> TerraSDK.Connection
1664
+ final public var connections: [TerraSDK.Connection] {
1665
+ get async throws
1666
+ }
1667
+ final public var permissions: TerraSDK.Permissions {
1668
+ get
1669
+ }
1670
+ final public var diagnostics: TerraSDK.Diagnostics {
1671
+ get
1672
+ }
1673
+ final public var body: TerraSDK.BodyMetrics {
1674
+ get
1675
+ }
1676
+ final public var nutrition: TerraSDK.NutritionMetrics {
1677
+ get
1678
+ }
1679
+ final public var daily: TerraSDK.DailyMetrics {
1680
+ get
1681
+ }
1682
+ final public var sleep: TerraSDK.SleepMetrics {
1683
+ get
1684
+ }
1685
+ final public var activity: TerraSDK.ActivityMetrics {
1686
+ get
1687
+ }
1688
+ final public var menstruation: TerraSDK.MenstruationMetrics {
1689
+ get
1690
+ }
1691
+ final public var athlete: TerraSDK.AthleteMetrics {
1692
+ get
1693
+ }
1694
+ final public func availability(for source: TerraSDK.Source = .health) async -> TerraSDK.StoreAvailability
1695
+ @objc deinit
1696
+ }
1697
+ public enum StoreAvailability : Swift.Sendable, Swift.Equatable {
1698
+ case available
1699
+ case unsupportedDevice
1700
+ public static func == (a: TerraSDK.StoreAvailability, b: TerraSDK.StoreAvailability) -> Swift.Bool
1701
+ public func hash(into hasher: inout Swift.Hasher)
1702
+ public var hashValue: Swift.Int {
1703
+ get
1704
+ }
1705
+ }
1706
+ public struct Diagnostics : Swift.Sendable {
1707
+ public func events() -> _Concurrency.AsyncStream<TerraSDK.TerraEvent>
1708
+ public func lastDelivery(for source: TerraSDK.Source = .health) async -> Foundation.Date?
1709
+ public func state(for source: TerraSDK.Source = .health) async -> TerraSDK.DiagnosticsState
1710
+ public func report(for source: TerraSDK.Source = .health) async -> TerraSDK.SupportReport
1711
+ public func send(for source: TerraSDK.Source = .health) async throws
1712
+ }
1713
+ public struct PlannedWorkouts : Swift.Sendable {
1714
+ public func planned() async throws -> [TerraSDK.PlannedWorkout]
1715
+ public func markComplete(id: Swift.String, at time: Foundation.Date = Date()) async throws
1716
+ public func delete(id: Swift.String) async throws
1717
+ public func schedulingStatus() async -> TerraSDK.WorkoutSchedulingStatus
1718
+ @discardableResult
1719
+ public func requestScheduling() async -> TerraSDK.WorkoutSchedulingStatus
1720
+ }
1721
+ public struct Permissions : Swift.Sendable {
1722
+ public func request(read: [TerraSDK.DataCategory] = [], write: [TerraSDK.DataCategory] = [], workouts: [TerraSDK.WorkoutScope] = []) async throws
1723
+ public func writeStatus(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
1724
+ public func status(for category: TerraSDK.DataCategory) async -> TerraSDK.PermissionStatus
1725
+ public var requested: TerraSDK.HealthAccess {
1726
+ get async
1727
+ }
1728
+ }
1729
+ public struct NutritionMetrics : Swift.Sendable {
1730
+ @discardableResult
1731
+ public func log(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
1732
+ public func delete(id: Foundation.UUID) async throws
1733
+ public func quantities(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.DietaryQuantity]
1734
+ public func hydration(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.HydrationSample]
1735
+ }
1736
+ public struct MenstruationMetrics : Swift.Sendable {
1737
+ public func flow(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.MenstruationFlowDay]
1738
+ public func events(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.MenstrualEvent]
1739
+ }
1740
+ public struct AthleteMetrics : Swift.Sendable {
1741
+ public func profile() async throws -> TerraSDK.AthleteProfile?
1742
+ }
1743
+ public struct BodyMetrics : Swift.Sendable {
1744
+ @discardableResult
1745
+ public func log(_ entries: [TerraSDK.HeartRateEntry]) async throws -> [Foundation.UUID]
1746
+ @discardableResult
1747
+ public func log(_ entries: [TerraSDK.BodyEntry]) async throws -> [Foundation.UUID]
1748
+ @available(*, deprecated, message: "use terra.nutrition.log(_:) - meals moved to their own namespace")
1749
+ @discardableResult
1750
+ public func log(_ entries: [TerraSDK.NutritionEntry]) async throws -> [Foundation.UUID]
1751
+ public func delete(id: Foundation.UUID) async throws
1752
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1753
+ public func heartRate(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.HeartRateSample]
1754
+ public func restingHeartRate(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.RestingHeartRateSample]
1755
+ public func readings(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.BodyReading]
1756
+ }
1757
+ public struct DailyMetrics : Swift.Sendable {
1758
+ @discardableResult
1759
+ public func log(_ entries: [TerraSDK.StepEntry]) async throws -> [Foundation.UUID]
1760
+ public func delete(id: Foundation.UUID) async throws
1761
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1762
+ public func steps(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.StepCount]
1763
+ public func totals(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.DayTotal]
1764
+ public func intraday(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.IntradaySample]
1765
+ }
1766
+ public struct SleepMetrics : Swift.Sendable {
1767
+ @discardableResult
1768
+ public func log(_ entries: [TerraSDK.SleepEntry]) async throws -> [Foundation.UUID]
1769
+ public func delete(id: Foundation.UUID) async throws
1770
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1771
+ public func segments(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.SleepSegment]
1772
+ }
1773
+ public struct ActivityMetrics : Swift.Sendable {
1774
+ @discardableResult
1775
+ public func log(_ entries: [TerraSDK.WorkoutEntry]) async throws -> [Foundation.UUID]
1776
+ public func delete(id: Foundation.UUID) async throws
1777
+ public func changes() async -> _Concurrency.AsyncStream<TerraSDK.HealthChange>
1778
+ public func workouts(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.Workout]
1779
+ public func routes(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.WorkoutRoute]
1780
+ public func intensity(in range: TerraSDK.TimeRange) async throws -> [TerraSDK.WorkoutIntensitySample]
1781
+ }
1782
+ public enum Source : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable, Swift.Codable {
1783
+ case health
1784
+ public init?(rawValue: Swift.String)
1785
+ public typealias AllCases = [TerraSDK.Source]
1786
+ public typealias RawValue = Swift.String
1787
+ nonisolated public static var allCases: [TerraSDK.Source] {
1788
+ get
1789
+ }
1790
+ public var rawValue: Swift.String {
1791
+ get
1792
+ }
1793
+ }
1794
+ public enum DataCategory : Swift.String, Swift.Sendable, Swift.Hashable, Swift.CaseIterable, Swift.Codable {
1795
+ case activity
1796
+ case body
1797
+ case daily
1798
+ case sleep
1799
+ case nutrition
1800
+ case menstruation
1801
+ case athlete
1802
+ case healthObservation
1803
+ public init?(rawValue: Swift.String)
1804
+ public typealias AllCases = [TerraSDK.DataCategory]
1805
+ public typealias RawValue = Swift.String
1806
+ nonisolated public static var allCases: [TerraSDK.DataCategory] {
1807
+ get
1808
+ }
1809
+ public var rawValue: Swift.String {
1810
+ get
1811
+ }
1812
+ }
1813
+ public enum PermissionStatus : Swift.Sendable, Swift.Equatable {
1814
+ case granted
1815
+ case denied
1816
+ case notDetermined
1817
+ case notDisclosed
1818
+ case unavailable
1819
+ case unsupported
1820
+ public static func == (a: TerraSDK.PermissionStatus, b: TerraSDK.PermissionStatus) -> Swift.Bool
1821
+ public func hash(into hasher: inout Swift.Hasher)
1822
+ public var hashValue: Swift.Int {
1823
+ get
1824
+ }
1825
+ }
1826
+ public enum TimeRange : Swift.Sendable, Swift.Equatable {
1827
+ case lastHours(Swift.Int)
1828
+ case lastDays(Swift.Int)
1829
+ case today
1830
+ case between(Foundation.Date, Foundation.Date)
1831
+ public func resolve(now: Foundation.Date = Date(), calendar: Foundation.Calendar = .current) -> Foundation.DateInterval
1832
+ public static func == (a: TerraSDK.TimeRange, b: TerraSDK.TimeRange) -> Swift.Bool
1833
+ }
1834
+ public enum UploadDataType : Swift.String, Swift.Sendable, Swift.CaseIterable, Swift.Codable {
1835
+ case daily
1836
+ case sleep
1837
+ case activity
1838
+ case body
1839
+ case nutrition
1840
+ case menstruation
1841
+ case athlete
1842
+ case healthObservation
1843
+ public static var routable: [TerraSDK.UploadDataType] {
1844
+ get
1845
+ }
1846
+ public init?(rawValue: Swift.String)
1847
+ public typealias AllCases = [TerraSDK.UploadDataType]
1848
+ public typealias RawValue = Swift.String
1849
+ nonisolated public static var allCases: [TerraSDK.UploadDataType] {
1850
+ get
1851
+ }
1852
+ public var rawValue: Swift.String {
1853
+ get
1854
+ }
1855
+ }
1856
+ public let sdkVersion: Swift.String
1857
+ @available(iOS 17.0, macOS 15.0, *)
1858
+ public struct WorkoutKitSchedule : TerraSDK.WorkoutSchedule {
1859
+ public init()
1860
+ public func status() async -> TerraSDK.WorkoutSchedulingStatus
1861
+ public func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1862
+ public var capacity: Swift.Int {
1863
+ get
1864
+ }
1865
+ public func scheduled() async -> [TerraSDK.ScheduledWorkout]
1866
+ public func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1867
+ public func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1868
+ public func remove(_ id: Foundation.UUID) async
1869
+ }
1870
+ public enum WorkoutSchedulingStatus : Swift.String, Swift.Sendable, Swift.Equatable, Swift.CaseIterable {
1871
+ case unsupported
1872
+ case notDetermined
1873
+ case denied
1874
+ case authorized
1875
+ public init?(rawValue: Swift.String)
1876
+ public typealias AllCases = [TerraSDK.WorkoutSchedulingStatus]
1877
+ public typealias RawValue = Swift.String
1878
+ nonisolated public static var allCases: [TerraSDK.WorkoutSchedulingStatus] {
1879
+ get
1880
+ }
1881
+ public var rawValue: Swift.String {
1882
+ get
1883
+ }
1884
+ }
1885
+ public struct ScheduledWorkout : Swift.Sendable, Swift.Equatable {
1886
+ public let id: Foundation.UUID
1887
+ public let date: Foundation.DateComponents
1888
+ public let isComplete: Swift.Bool
1889
+ public init(id: Foundation.UUID, date: Foundation.DateComponents, isComplete: Swift.Bool = false)
1890
+ public static func == (a: TerraSDK.ScheduledWorkout, b: TerraSDK.ScheduledWorkout) -> Swift.Bool
1891
+ }
1892
+ public enum WorkoutScheduleRefusal : Swift.String, Swift.Error, Swift.Sendable, Swift.Equatable {
1893
+ case activityUnsupported
1894
+ case goalUnsupported
1895
+ case malformed
1896
+ case noWorkout
1897
+ case past
1898
+ case completed
1899
+ public init?(rawValue: Swift.String)
1900
+ public typealias RawValue = Swift.String
1901
+ public var rawValue: Swift.String {
1902
+ get
1903
+ }
1904
+ }
1905
+ public struct WorkoutComposition : Swift.Sendable, Swift.Equatable, Swift.Codable {
1906
+ public var displayName: Swift.String?
1907
+ public var activity: Swift.String
1908
+ public var location: Swift.String
1909
+ public var warmup: TerraSDK.WorkoutComposition.Step?
1910
+ public var blocks: [TerraSDK.WorkoutComposition.Block]
1911
+ public var cooldown: TerraSDK.WorkoutComposition.Step?
1912
+ 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)
1913
+ public init(from decoder: any Swift.Decoder) throws
1914
+ public struct Block : Swift.Sendable, Swift.Equatable, Swift.Codable {
1915
+ public var steps: [TerraSDK.WorkoutComposition.IntervalStep]
1916
+ public var iterations: Swift.Int
1917
+ public init(steps: [TerraSDK.WorkoutComposition.IntervalStep], iterations: Swift.Int = 1)
1918
+ public static func == (a: TerraSDK.WorkoutComposition.Block, b: TerraSDK.WorkoutComposition.Block) -> 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 IntervalStep : Swift.Sendable, Swift.Equatable, Swift.Codable {
1923
+ public var purpose: Swift.String
1924
+ public var step: TerraSDK.WorkoutComposition.Step
1925
+ public init(purpose: Swift.String, step: TerraSDK.WorkoutComposition.Step)
1926
+ public static func == (a: TerraSDK.WorkoutComposition.IntervalStep, b: TerraSDK.WorkoutComposition.IntervalStep) -> Swift.Bool
1927
+ public func encode(to encoder: any Swift.Encoder) throws
1928
+ public init(from decoder: any Swift.Decoder) throws
1929
+ }
1930
+ public struct Step : Swift.Sendable, Swift.Equatable, Swift.Codable {
1931
+ public var goal: TerraSDK.WorkoutComposition.Goal
1932
+ public var alert: TerraSDK.WorkoutComposition.Alert?
1933
+ public init(goal: TerraSDK.WorkoutComposition.Goal, alert: TerraSDK.WorkoutComposition.Alert? = nil)
1934
+ public static func == (a: TerraSDK.WorkoutComposition.Step, b: TerraSDK.WorkoutComposition.Step) -> Swift.Bool
1935
+ public func encode(to encoder: any Swift.Encoder) throws
1936
+ public init(from decoder: any Swift.Decoder) throws
1937
+ }
1938
+ public struct Goal : Swift.Sendable, Swift.Equatable, Swift.Codable {
1939
+ public var type: Swift.String
1940
+ public var value: Swift.Double?
1941
+ public var unit: Swift.String?
1942
+ public init(type: Swift.String, value: Swift.Double? = nil, unit: Swift.String? = nil)
1943
+ public static func == (a: TerraSDK.WorkoutComposition.Goal, b: TerraSDK.WorkoutComposition.Goal) -> Swift.Bool
1944
+ public func encode(to encoder: any Swift.Encoder) throws
1945
+ public init(from decoder: any Swift.Decoder) throws
1946
+ }
1947
+ public struct Alert : Swift.Sendable, Swift.Equatable, Swift.Codable {
1948
+ public var type: Swift.String
1949
+ public var zone: Swift.Int?
1950
+ public var target: TerraSDK.WorkoutComposition.Target?
1951
+ public var metric: Swift.String?
1952
+ public init(type: Swift.String, zone: Swift.Int? = nil, target: TerraSDK.WorkoutComposition.Target? = nil, metric: Swift.String? = nil)
1953
+ public static func == (a: TerraSDK.WorkoutComposition.Alert, b: TerraSDK.WorkoutComposition.Alert) -> Swift.Bool
1954
+ public func encode(to encoder: any Swift.Encoder) throws
1955
+ public init(from decoder: any Swift.Decoder) throws
1956
+ }
1957
+ public struct Target : Swift.Sendable, Swift.Equatable, Swift.Codable {
1958
+ public var lowerBound: Swift.Double?
1959
+ public var upperBound: Swift.Double?
1960
+ public var unit: Swift.String?
1961
+ public init(lowerBound: Swift.Double? = nil, upperBound: Swift.Double? = nil, unit: Swift.String? = nil)
1962
+ public static func == (a: TerraSDK.WorkoutComposition.Target, b: TerraSDK.WorkoutComposition.Target) -> Swift.Bool
1963
+ public func encode(to encoder: any Swift.Encoder) throws
1964
+ public init(from decoder: any Swift.Decoder) throws
1965
+ }
1966
+ public static func == (a: TerraSDK.WorkoutComposition, b: TerraSDK.WorkoutComposition) -> Swift.Bool
1967
+ public func encode(to encoder: any Swift.Encoder) throws
1968
+ }
1969
+ public protocol WorkoutSchedule : Swift.Sendable {
1970
+ func status() async -> TerraSDK.WorkoutSchedulingStatus
1971
+ func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1972
+ var capacity: Swift.Int { get }
1973
+ func scheduled() async -> [TerraSDK.ScheduledWorkout]
1974
+ func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1975
+ func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1976
+ func remove(_ id: Foundation.UUID) async
1977
+ }
1978
+ public struct WorkoutScheduleUnconfirmed : Swift.Error, Swift.Sendable, Swift.Equatable {
1979
+ public init()
1980
+ public static func == (a: TerraSDK.WorkoutScheduleUnconfirmed, b: TerraSDK.WorkoutScheduleUnconfirmed) -> Swift.Bool
1981
+ }
1982
+ public struct UnavailableWorkoutSchedule : TerraSDK.WorkoutSchedule {
1983
+ public init()
1984
+ public func status() async -> TerraSDK.WorkoutSchedulingStatus
1985
+ public func requestAuthorization() async -> TerraSDK.WorkoutSchedulingStatus
1986
+ public var capacity: Swift.Int {
1987
+ get
1988
+ }
1989
+ public func scheduled() async -> [TerraSDK.ScheduledWorkout]
1990
+ public func schedule(_ workout: TerraSDK.WorkoutComposition, id: Foundation.UUID, at date: Foundation.DateComponents) async throws
1991
+ public func move(_ id: Foundation.UUID, to date: Foundation.DateComponents) async throws -> Swift.Bool
1992
+ public func remove(_ id: Foundation.UUID) async
1993
+ }
1994
+ public struct HeartRateEntry : Swift.Sendable, Swift.Equatable {
1995
+ public let time: Foundation.Date
1996
+ public let beatsPerMinute: Swift.Double
1997
+ public let recordID: Foundation.UUID
1998
+ public init(time: Foundation.Date, beatsPerMinute: Swift.Double, recordID: Foundation.UUID = UUID())
1999
+ public static func == (a: TerraSDK.HeartRateEntry, b: TerraSDK.HeartRateEntry) -> Swift.Bool
2000
+ }
2001
+ public struct StepEntry : Swift.Sendable, Swift.Equatable {
2002
+ public let interval: Foundation.DateInterval
2003
+ public let steps: Swift.Int
2004
+ public let recordID: Foundation.UUID
2005
+ public init(interval: Foundation.DateInterval, steps: Swift.Int, recordID: Foundation.UUID = UUID())
2006
+ public static func == (a: TerraSDK.StepEntry, b: TerraSDK.StepEntry) -> Swift.Bool
2007
+ }
2008
+ public struct SleepEntry : Swift.Sendable, Swift.Equatable {
2009
+ public let interval: Foundation.DateInterval
2010
+ public let stage: TerraSDK.SleepStage
2011
+ public let recordID: Foundation.UUID
2012
+ public init(interval: Foundation.DateInterval, stage: TerraSDK.SleepStage, recordID: Foundation.UUID = UUID())
2013
+ public static func == (a: TerraSDK.SleepEntry, b: TerraSDK.SleepEntry) -> Swift.Bool
2014
+ }
2015
+ public struct WorkoutEntry : Swift.Sendable, Swift.Equatable {
2016
+ public let interval: Foundation.DateInterval
2017
+ public let activity: TerraSDK.WorkoutActivity
2018
+ public let totalEnergyKilocalories: Swift.Double?
2019
+ public let totalDistanceMeters: Swift.Double?
2020
+ public let recordID: Foundation.UUID
2021
+ public init(interval: Foundation.DateInterval, activity: TerraSDK.WorkoutActivity, totalEnergyKilocalories: Swift.Double? = nil, totalDistanceMeters: Swift.Double? = nil, recordID: Foundation.UUID = UUID())
2022
+ public static func == (a: TerraSDK.WorkoutEntry, b: TerraSDK.WorkoutEntry) -> Swift.Bool
2023
+ }
2024
+ public struct WorkoutScope : Swift.Sendable, Swift.Hashable {
2025
+ public var activity: TerraSDK.WorkoutActivity
2026
+ public var energy: Swift.Bool
2027
+ public var distance: Swift.Bool
2028
+ public init(activity: TerraSDK.WorkoutActivity, energy: Swift.Bool = false, distance: Swift.Bool = false)
2029
+ public static func == (a: TerraSDK.WorkoutScope, b: TerraSDK.WorkoutScope) -> Swift.Bool
2030
+ public func hash(into hasher: inout Swift.Hasher)
2031
+ public var hashValue: Swift.Int {
2032
+ get
2033
+ }
2034
+ }
2035
+ public struct BodyEntry : Swift.Sendable, Swift.Equatable {
2036
+ public let time: Foundation.Date
2037
+ public var bodyMassKilograms: Swift.Double?
2038
+ public var bodyFatPercent: Swift.Double?
2039
+ public var bodyMassIndex: Swift.Double?
2040
+ public var heightMeters: Swift.Double?
2041
+ public var leanBodyMassKilograms: Swift.Double?
2042
+ public var bodyTemperatureCelsius: Swift.Double?
2043
+ public var oxygenSaturationPercent: Swift.Double?
2044
+ public var bloodGlucoseMilligramsPerDeciliter: Swift.Double?
2045
+ public var bloodPressureSystolicMillimetersOfMercury: Swift.Double?
2046
+ public var bloodPressureDiastolicMillimetersOfMercury: Swift.Double?
2047
+ public let recordID: Foundation.UUID
2048
+ 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())
2049
+ public var isEmpty: Swift.Bool {
2050
+ get
2051
+ }
2052
+ public static func == (a: TerraSDK.BodyEntry, b: TerraSDK.BodyEntry) -> Swift.Bool
2053
+ }
2054
+ public struct NutritionEntry : Swift.Sendable, Swift.Equatable {
2055
+ public let interval: Foundation.DateInterval
2056
+ public var name: Swift.String?
2057
+ public var nutrients: TerraSDK.NutritionEntry.Nutrients
2058
+ public let recordID: Foundation.UUID
2059
+ public init(interval: Foundation.DateInterval, name: Swift.String? = nil, nutrients: TerraSDK.NutritionEntry.Nutrients, recordID: Foundation.UUID = UUID())
2060
+ public var isEmpty: Swift.Bool {
2061
+ get
2062
+ }
2063
+ public struct Nutrients : Swift.Sendable, Swift.Equatable {
2064
+ public var energyKilocalories: Swift.Double?
2065
+ public var proteinGrams: Swift.Double?
2066
+ public var carbohydratesGrams: Swift.Double?
2067
+ public var fiberGrams: Swift.Double?
2068
+ public var sugarGrams: Swift.Double?
2069
+ public var fatTotalGrams: Swift.Double?
2070
+ public var fatSaturatedGrams: Swift.Double?
2071
+ public var fatMonounsaturatedGrams: Swift.Double?
2072
+ public var fatPolyunsaturatedGrams: Swift.Double?
2073
+ public var cholesterolMilligrams: Swift.Double?
2074
+ public var sodiumMilligrams: Swift.Double?
2075
+ public var potassiumMilligrams: Swift.Double?
2076
+ public var calciumMilligrams: Swift.Double?
2077
+ public var ironMilligrams: Swift.Double?
2078
+ public var magnesiumMilligrams: Swift.Double?
2079
+ public var zincMilligrams: Swift.Double?
2080
+ public var waterLiters: Swift.Double?
2081
+ public var caffeineMilligrams: Swift.Double?
2082
+ public var vitaminAMicrograms: Swift.Double?
2083
+ public var vitaminCMilligrams: Swift.Double?
2084
+ public var vitaminDMicrograms: Swift.Double?
2085
+ public var vitaminEMilligrams: Swift.Double?
2086
+ public var vitaminKMicrograms: Swift.Double?
2087
+ public var vitaminB6Milligrams: Swift.Double?
2088
+ public var vitaminB12Micrograms: Swift.Double?
2089
+ public var folateMicrograms: Swift.Double?
2090
+ public var thiaminMilligrams: Swift.Double?
2091
+ public var riboflavinMilligrams: Swift.Double?
2092
+ public var niacinMilligrams: Swift.Double?
2093
+ public var biotinMicrograms: Swift.Double?
2094
+ public var pantothenicAcidMilligrams: Swift.Double?
2095
+ public var phosphorusMilligrams: Swift.Double?
2096
+ public var iodineMicrograms: Swift.Double?
2097
+ public var chromiumMicrograms: Swift.Double?
2098
+ public var copperMilligrams: Swift.Double?
2099
+ public var manganeseMilligrams: Swift.Double?
2100
+ public var molybdenumMicrograms: Swift.Double?
2101
+ public var seleniumMicrograms: Swift.Double?
2102
+ public var chlorideMilligrams: Swift.Double?
2103
+ 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)
2104
+ public static func == (a: TerraSDK.NutritionEntry.Nutrients, b: TerraSDK.NutritionEntry.Nutrients) -> Swift.Bool
2105
+ }
2106
+ public static func == (a: TerraSDK.NutritionEntry, b: TerraSDK.NutritionEntry) -> Swift.Bool
2107
+ }
2108
+ extension TerraSDK.AthleteProfile.BiologicalSex : Swift.RawRepresentable {}
2109
+ extension TerraSDK.AthleteProfile.ActivityMoveMode : Swift.RawRepresentable {}
2110
+ extension TerraSDK.UploadContentEncoding : Swift.Hashable {}
2111
+ extension TerraSDK.UploadContentEncoding : Swift.RawRepresentable {}
2112
+ extension TerraSDK.BodyMetric : Swift.RawRepresentable {}
2113
+ extension TerraSDK.BloodGlucoseUnit : Swift.RawRepresentable {}
2114
+ extension TerraSDK.GlucoseMealTime : Swift.RawRepresentable {}
2115
+ extension TerraSDK.GlucoseSpecimen : Swift.RawRepresentable {}
2116
+ extension TerraSDK.BodyTemperatureMetric : Swift.RawRepresentable {}
2117
+ extension TerraSDK.HeartRateVariabilityMetric : Swift.RawRepresentable {}
2118
+ extension TerraSDK.VO2MaxTestType : Swift.RawRepresentable {}
2119
+ extension TerraSDK.InsulinDeliveryReason : Swift.RawRepresentable {}
2120
+ extension TerraSDK.Electrocardiogram.Classification : Swift.Equatable {}
2121
+ extension TerraSDK.Electrocardiogram.Classification : Swift.Hashable {}
2122
+ extension TerraSDK.Electrocardiogram.Classification : Swift.RawRepresentable {}
2123
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.Equatable {}
2124
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.Hashable {}
2125
+ extension TerraSDK.Electrocardiogram.SymptomsStatus : Swift.RawRepresentable {}
2126
+ extension TerraSDK.DataCategory : Swift.RawRepresentable {}
2127
+ extension TerraSDK.TerraEvent.FailureCode : Swift.Hashable {}
2128
+ extension TerraSDK.TerraEvent.FailureCode : Swift.RawRepresentable {}
2129
+ extension TerraSDK.DeviceKeyRevokeOutcome : Swift.Hashable {}
2130
+ extension TerraSDK.DeviceKeyRevokeOutcome : Swift.RawRepresentable {}
2131
+ extension TerraSDK.DiagnosticsReason : Swift.Hashable {}
2132
+ extension TerraSDK.DiagnosticsReason : Swift.RawRepresentable {}
2133
+ extension TerraSDK.HealthObservation.Category : Swift.RawRepresentable {}
2134
+ extension TerraSDK.HealthObservation.Severity : Swift.RawRepresentable {}
2135
+ extension TerraSDK.MenstruationFlowDay.Flow : Swift.RawRepresentable {}
2136
+ extension TerraSDK.MenstrualEvent.Kind : Swift.RawRepresentable {}
2137
+ extension TerraSDK.MealType : Swift.RawRepresentable {}
2138
+ extension TerraSDK.Nutrient : Swift.RawRepresentable {}
2139
+ extension TerraSDK.DeviceType : Swift.RawRepresentable {}
2140
+ extension TerraSDK.MotionContext : Swift.Hashable {}
2141
+ extension TerraSDK.MotionContext : Swift.RawRepresentable {}
2142
+ extension TerraSDK.WorkoutEvent.Kind : Swift.Equatable {}
2143
+ extension TerraSDK.WorkoutEvent.Kind : Swift.Hashable {}
2144
+ extension TerraSDK.WorkoutEvent.Kind : Swift.RawRepresentable {}
2145
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.Equatable {}
2146
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.Hashable {}
2147
+ extension TerraSDK.WorkoutIntensitySample.Kind : Swift.RawRepresentable {}
2148
+ extension TerraSDK.DayTotal.Metric : Swift.Equatable {}
2149
+ extension TerraSDK.DayTotal.Metric : Swift.Hashable {}
2150
+ extension TerraSDK.DayTotal.Metric : Swift.RawRepresentable {}
2151
+ extension TerraSDK.IntradaySample.Kind : Swift.Equatable {}
2152
+ extension TerraSDK.IntradaySample.Kind : Swift.Hashable {}
2153
+ extension TerraSDK.IntradaySample.Kind : Swift.RawRepresentable {}
2154
+ extension TerraSDK.StoreAvailability : Swift.Hashable {}
2155
+ extension TerraSDK.Source : Swift.RawRepresentable {}
2156
+ extension TerraSDK.PermissionStatus : Swift.Hashable {}
2157
+ extension TerraSDK.UploadDataType : Swift.Equatable {}
2158
+ extension TerraSDK.UploadDataType : Swift.Hashable {}
2159
+ extension TerraSDK.UploadDataType : Swift.RawRepresentable {}
2160
+ extension TerraSDK.WorkoutSchedulingStatus : Swift.Hashable {}
2161
+ extension TerraSDK.WorkoutSchedulingStatus : Swift.RawRepresentable {}
2162
+ extension TerraSDK.WorkoutScheduleRefusal : Swift.Hashable {}
2163
+ extension TerraSDK.WorkoutScheduleRefusal : Swift.RawRepresentable {}