Skip to content

SensorKit iOS xcode15.3 b1

Alex Soto edited this page Jul 9, 2024 · 2 revisions

#SensorKit.framework https://github.com/xamarin/xamarin-macios/pull/20780

diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSample.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSample.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSample.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSample.h	2024-01-19 02:57:08
@@ -0,0 +1,102 @@
+//
+//  SRElectrocardiogramSample.h
+//  SensorKit
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <SensorKit/SRDefines.h>
+#import <SensorKit/SRElectrocardiogramSession.h>
+#import <Foundation/Foundation.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/*!
+ * @typedef SRElectrocardiogramDataFlags
+ * @brief Flags indicating sensor context or events that occurred during
+ * the sample reading
+ *
+ * @discussion
+ * These flags can provide some indication of data validity or other system conditions
+ * that may influence how the recorded data should be treated.
+ *
+ */
+typedef NS_OPTIONS(NSUInteger, SRElectrocardiogramDataFlags) {
+    SRElectrocardiogramDataFlagsNone = 0,
+
+    /*!
+     * @const SRElectrocardiogramDataFlagsSignalInvalid
+     * @brief Indicates an invalid sensor signal in the ECG data
+     */
+    SRElectrocardiogramDataFlagsSignalInvalid = 1 << 0,
+
+    /*!
+     * @const SRElectrocardiogramDataFlagsCrownTouched
+     * @brief Indicates ECG data was recorded when the crown was being touched
+     */
+    SRElectrocardiogramDataFlagsCrownTouched = 1 << 1,
+} API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRElectrocardiogramData : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (nonatomic, readonly, assign) SRElectrocardiogramDataFlags flags;
+
+/*!
+ * @property value
+ *
+ * @brief Value of the ECG AC data in microvolts
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitElectricPotentialDifference *> *value;
+@end
+
+/*!
+ * @typedef SRElectrocardiogramLead
+ * @brief Which lead was used to record the ECG data
+ */
+typedef NS_ENUM(NSInteger, SRElectrocardiogramLead) {
+    SRElectrocardiogramLeadRightArmMinusLeftArm = 1,
+    SRElectrocardiogramLeadLeftArmMinusRightArm,
+} API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRElectrocardiogramSample : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ * @property date
+ *
+ * @brief Date of the start of the batch of ECG data
+ *
+ */
+@property (nonatomic, readonly, strong) NSDate *date;
+
+/*!
+ * @property frequency
+ *
+ * @brief Frequency in hertz at which the ECG data was recorded
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitFrequency *> *frequency;
+
+/*!
+ * @property session
+ *
+ * @brief The session to which this sample belongs
+ *
+ */
+@property (nonatomic, readonly, strong) SRElectrocardiogramSession *session;
+
+@property (nonatomic, readonly, assign) SRElectrocardiogramLead lead;
+
+@property (nonatomic, readonly, copy) NSArray<SRElectrocardiogramData *> *data;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSession.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSession.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSession.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRElectrocardiogramSession.h	2024-01-19 02:57:08
@@ -0,0 +1,76 @@
+//
+//  SRElectrocardiogramSession.h
+//  SensorKit
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <SensorKit/SRDefines.h>
+#import <Foundation/Foundation.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/*!
+ * @typedef SRElectrocardiogramSessionState
+ * @brief
+ * The state of the ECG session when this sample was taken
+ *
+ */
+typedef NS_ENUM(NSInteger, SRElectrocardiogramSessionState) {
+    SRElectrocardiogramSessionStateBegin = 1,
+    SRElectrocardiogramSessionStateActive,
+    SRElectrocardiogramSessionStateEnd,
+} API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+/*!
+ * @typedef SRElectrocardiogramSessionGuidance
+ * @brief
+ * The type of session used to record the ECG sample
+ *
+ * @const SRElectrocardiogramSessionGuidanceGuided
+ * @brief
+ * A session, usually of fixed duration, where the user is provided coaching to guide the ECG readings
+ *
+ * @const SRElectrocardiogramSessionGuidanceUnguided
+ * @brief
+ * A session, usually of undefined duration, where the user is not provided coaching to guide the ECG readings
+ *
+ */
+typedef NS_ENUM(NSInteger, SRElectrocardiogramSessionGuidance) {
+    SRElectrocardiogramSessionGuidanceGuided = 1,
+    SRElectrocardiogramSessionGuidanceUnguided,
+} API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRElectrocardiogramSession : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ * @property state
+ *
+ * @brief The state of the ECG session when the sample was recorded
+ *
+ */
+@property (nonatomic, readonly, assign) SRElectrocardiogramSessionState state;
+
+/*!
+ * @property sessionGuidance
+ *
+ * @brief The type of session guidance during the the ECG session
+ */
+@property (nonatomic, readonly, assign) SRElectrocardiogramSessionGuidance sessionGuidance;
+
+/*!
+ * @property identifier
+ *
+ * @discussion
+ * Used to tie samples across multiple \c SRFetchResult s to the same session
+ *
+ */
+@property (nonatomic, readonly, copy) NSString *identifier;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRPhotoplethysmogramSample.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRPhotoplethysmogramSample.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRPhotoplethysmogramSample.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRPhotoplethysmogramSample.h	2024-01-11 22:36:11
@@ -0,0 +1,291 @@
+//
+//  SRPhotoplethysmogramSample.h
+//  SensorKit
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <SensorKit/SRDefines.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+typedef NSString *SRPhotoplethysmogramOpticalSampleCondition NS_TYPED_ENUM;
+SR_EXTERN SRPhotoplethysmogramOpticalSampleCondition const SRPhotoplethysmogramOpticalSampleConditionSignalSaturation API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+SR_EXTERN SRPhotoplethysmogramOpticalSampleCondition const SRPhotoplethysmogramOpticalSampleConditionUnreliableNoise API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRPhotoplethysmogramOpticalSample : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ * @property emitter
+ *
+ * @brief The index of the LED in use during the sample reading
+ *
+ */
+@property (nonatomic, readonly, assign) NSInteger emitter;
+
+/*!
+ * @property activePhotodiodeIndexes
+ *
+ * @brief The set of photodiodes in use during the sample reading
+ *
+ */
+@property (nonatomic, readonly, strong) NSIndexSet *activePhotodiodeIndexes;
+
+/*!
+ * @property signalIdentifier
+ *
+ * @brief identifier to distinguish between different signals produced 
+ * using the same photodiodes and emitters
+ *
+ * @discussion
+ * To provide the same quality of service certain system conditions may require configuring the 
+ * PPG sensor behavior differently while using the same photodiodes and emitters. This
+ * identifier can be used distinguish between the different signals generated by these
+ * different configurations.
+ */
+@property (nonatomic, readonly, assign) NSInteger signalIdentifier;
+
+/*!
+ * @property nominalWavelength
+ *
+ * @brief the wavelength in nanometers the emitter was designed to produce while
+ * operating at a specific temperature
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitLength *> *nominalWavelength;
+
+/*!
+ * @property effectiveWavelength
+ *
+ * @brief a temperature compensated wavelength in nanometers estimate that the emitter is producing
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitLength *> *effectiveWavelength;
+
+/*!
+ * @property samplingFrequency
+ *
+ * @brief Sampling frequency of PPG data in Hz
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitFrequency *> *samplingFrequency;
+
+/*!
+ * @property nanosecondsSinceStart
+ *
+ * @brief nanoseconds since the \c SRPhotoplethysmogramSample start date of the 
+ * specific optical sample
+ *
+ */
+@property (nonatomic, readonly, assign) int64_t nanosecondsSinceStart;
+
+/*!
+ * @property normalizedReflectance
+ *
+ * @brief The PPG waveform
+ *
+ * @discussion This may be \c nil when the sensor data reading is invalid
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSNumber *normalizedReflectance NS_REFINED_FOR_SWIFT;
+
+/*!
+ * @property whiteNoise
+ *
+ * @brief White noise estimation
+ *
+ * @discussion This may be \c nil when the sensor data reading is invalid
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSNumber *whiteNoise NS_REFINED_FOR_SWIFT;
+
+/*!
+ * @property pinkNoise
+ *
+ * @brief Pink noise estimation
+ *
+ * @discussion This may be \c nil when the sensor data reading is invalid
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSNumber *pinkNoise NS_REFINED_FOR_SWIFT;
+
+/*!
+ * @property backgroundNoise
+ *
+ * @brief Estimated ambient noise intrusion
+ *
+ * @discussion This may be \c nil when the sensor data reading is invalid
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSNumber *backgroundNoise NS_REFINED_FOR_SWIFT;
+
+/*!
+ * @property backgroundNoiseOffset
+ *
+ * @brief Estimated electronics noise floor level of the sensor
+ *
+ * @discussion 
+ * To estimate the total ambient noise, subtract scaled background noise offset 
+ * from the background noise. The scaling factor can be computed based on
+ * the researcher's digital filter setup.
+ * This may be \c nil when the sensor data reading is invalid
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSNumber *backgroundNoiseOffset NS_REFINED_FOR_SWIFT;
+
+/*!
+ * @property conditions
+ * @brief Flags indicating sensor context or conditions that may effect
+ * the sample reading
+ *
+ * @discussion
+ * These flags can provide some indication of data validity or other system conditions
+ * that may influence how the recorded data should be treated.
+ *
+ */
+@property (nonatomic, readonly, copy) NSArray<SRPhotoplethysmogramOpticalSampleCondition> *conditions;
+
+@end
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRPhotoplethysmogramAccelerometerSample : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ * @property nanosecondsSinceStart
+ *
+ * @brief nanoseconds since the \c SRPhotoplethysmogramSample start date of the specific 
+ * accelerometer sample
+ *
+ */
+@property (nonatomic, readonly, assign) int64_t nanosecondsSinceStart;
+
+/*!
+ * @property samplingFrequency
+ *
+ * @brief Sampling frequency of accelerometer data in Hz
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitFrequency *> *samplingFrequency;
+
+/*!
+ * @property x
+ *
+ * @brief X-axis acceleration in G's
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitAcceleration *> *x;
+
+/*!
+ * @property y
+ *
+ * @brief Y-axis acceleration in G's
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitAcceleration *> *y;
+
+/*!
+ * @property z
+ *
+ * @brief Z-axis acceleration in G's
+ *
+ */
+@property (nonatomic, readonly, strong) NSMeasurement<NSUnitAcceleration *> *z;
+
+@end
+
+typedef NSString *SRPhotoplethysmogramSampleUsage NS_TYPED_ENUM;
+
+/*!
+ * @typedef SRPhotoplethysmogramSampleUsageForegroundHeartRate
+ * @brief A heart rate reading actively taken by a user in an app context
+ *
+ * @discussion
+ * Typically driven by the user using the HeartRate app or a workout session.
+ */
+SR_EXTERN SRPhotoplethysmogramSampleUsage const SRPhotoplethysmogramSampleUsageForegroundHeartRate API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+/*!
+ * @const SRPhotoplethysmogramSampleUsageDeepBreathing
+ * @brief A sensor reading actively taken by a user in a deep breathing context
+ *
+ * @discussion
+ * Typically driven by the user performing a reflect or breathe session
+ * in the Mindfulness app.
+ */
+SR_EXTERN SRPhotoplethysmogramSampleUsage const SRPhotoplethysmogramSampleUsageDeepBreathing API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+/*!
+ * @const SRPhotoplethysmogramSampleUsageForegroundBloodOxygen
+ * @brief A blood oxygen reading actively taken by a user in app context
+ *
+ * @discussion
+ * Typically driven by the user using the BloodOxygen app
+ */
+SR_EXTERN SRPhotoplethysmogramSampleUsage const SRPhotoplethysmogramSampleUsageForegroundBloodOxygen API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+/*!
+ * @const SRPhotoplethysmogramSampleUsageBackgroundSystem
+ * @brief A sample reading passively taken by the system
+ *
+ * @discussion
+ * These are driven by the system to perform the various heart features of watchOS
+ * (e.g., background blood oxygen, afib notifications, low cardio notifications, etc)
+ */
+SR_EXTERN SRPhotoplethysmogramSampleUsage const SRPhotoplethysmogramSampleUsageBackgroundSystem API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos);
+
+NS_SWIFT_SENDABLE
+SR_EXTERN API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, visionos) API_UNAVAILABLE(tvos, macos)
+@interface SRPhotoplethysmogramSample : NSObject <NSCopying, NSSecureCoding>
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ * @property startDate
+ *
+ * @brief the start date of a data collection session
+ *
+ */
+@property (nonatomic, readonly, strong) NSDate *startDate;
+
+/*!
+ * @property nanosecondsSinceStart
+ *
+ * @brief nanoseconds since the start date of this specific sample
+ *
+ */
+@property (nonatomic, readonly, assign) int64_t nanosecondsSinceStart;
+
+/*!
+ * @property usage
+ * @brief How the sensor was being used during the sample reading
+ *
+ * @discussion It is possible for these to occur in combination
+ */
+@property (nonatomic, readonly, copy) NSArray<SRPhotoplethysmogramSampleUsage> *usage;
+
+@property (nonatomic, readonly, copy) NSArray<SRPhotoplethysmogramOpticalSample *> *opticalSamples;
+
+@property (nonatomic, readonly, copy) NSArray<SRPhotoplethysmogramAccelerometerSample *> *accelerometerSamples;
+
+/*!
+ * @property temperature
+ *
+ * @brief temperature of the PPG sensors in the watch, measured in celsius
+ *
+ * @discussion
+ * This may be \c nil when the sensor data reading is invalid or if is not supported by the hardware
+ *
+ */
+@property (nonatomic, readonly, strong, nullable) NSMeasurement<NSUnitTemperature *> *temperature;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRSensors.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRSensors.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRSensors.h	2023-11-12 12:34:58
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SRSensors.h	2024-01-19 02:57:08
@@ -306,4 +306,29 @@
  */
 SR_EXTERN SRSensor const SRSensorOdometer API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(watchos, macos, visionos) API_UNAVAILABLE(tvos);
 
+
+/*!
+ * @const SRSensorElectrocardiogram
+ *
+ * @brief
+ * ECG sensor stream
+ *
+ * @discussion
+ * This stream stores samples of the ECG sensor
+ * Fetches from this stream return objects of type \c NSArray<SRElectrocardiogramSample *> *  
+ */
+SR_EXTERN SRSensor const SRSensorElectrocardiogram API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, macos, visionos) API_UNAVAILABLE(tvos);
+
+/*!
+ * @const SRSensorPhotoplethysmogram
+ *
+ * @brief
+ * PPG sensor stream
+ *
+ * @discussion
+ * This stream stores samples of the PPG sensor
+ * Fetches from this stream return objects of type \c NSArray<SRPhotoplethysmogramSample *> *
+ */
+SR_EXTERN SRSensor const SRSensorPhotoplethysmogram API_AVAILABLE(ios(17.4)) API_UNAVAILABLE(watchos, macos, visionos) API_UNAVAILABLE(tvos);
+
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.apinotes /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.apinotes
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.apinotes	2023-11-12 12:12:09
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.apinotes	2024-01-19 02:36:49
@@ -25,6 +25,10 @@
   SwiftName: SRAmbientLightSample.Chromaticity
 - Name: SRDeviceUsageCategoryKey
   SwiftName: SRDeviceUsageReport.CategoryKey
+- Name: SRPhotoplethysmogramOpticalSampleCondition
+  SwiftName: SRPhotoplethysmogramOpticalSample.Condition
+- Name: SRPhotoplethysmogramSampleUsage
+  SwiftName: SRPhotoplethysmogramSample.Usage
 Functions:
 - Name: SRAbsoluteTimeGetCurrent
   SwiftName: 'SRAbsoluteTime.current()'
@@ -57,6 +61,20 @@
   SwiftName: SRSpeechMetrics.SessionFlags
 - Name: SRFaceMetricsContext
   SwiftName: SRFaceMetrics.Context
+- Name: SRElectrocardiogramSessionState
+  SwiftName: SRElectrocardiogramSession.State
+- Name: SRElectrocardiogramSessionGuidance
+  SwiftName: SRElectrocardiogramSession.SessionGuidance
+- Name: SRElectrocardiogramDataFlags
+  SwiftName: SRElectrocardiogramData.Flags
+- Name: SRElectrocardiogramLead
+  SwiftName: SRElectrocardiogramSample.Lead
+- Name: SRPhotoplethysmogramPhotodiode
+  SwiftName: SRPhotoplethysmogramOpticalSample.Photodiode
+- Name: SRPhotoplethysmogramDataFlags
+  SwiftName: SRPhotoplethysmogramOpticalSample.Flags
+- Name: SRPhotoplethysmogramUsage
+  SwiftName: SRPhotoplethysmogramSample.Usage
 # Local Variables:
 # mode: yaml
 # End:
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.h	2023-11-12 12:27:18
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/SensorKit.framework/Headers/SensorKit.h	2024-01-19 02:57:07
@@ -30,3 +30,6 @@
 #import <SensorKit/SRMediaEvent.h>
 #import <SensorKit/SRSpeechMetrics.h>
 #import <SensorKit/SRFaceMetrics.h>
+#import <SensorKit/SRElectrocardiogramSession.h>
+#import <SensorKit/SRElectrocardiogramSample.h>
+#import <SensorKit/SRPhotoplethysmogramSample.h>