import useHealthkitAuthorization from './hooks/useHealthkitAuthorization'; import { useIsHealthDataAvailable } from './hooks/useIsHealthDataAvailable'; import useMostRecentCategorySample from './hooks/useMostRecentCategorySample'; import useMostRecentQuantitySample from './hooks/useMostRecentQuantitySample'; import useMostRecentWorkout from './hooks/useMostRecentWorkout'; import useSources from './hooks/useSources'; import useStatisticsForQuantity from './hooks/useStatisticsForQuantity'; import useSubscribeToCategorySamples from './hooks/useSubscribeToCategorySamples'; import useSubscribeToChanges from './hooks/useSubscribeToChanges'; import useSubscribeToQuantitySamples from './hooks/useSubscribeToQuantitySamples'; import type { CorrelationSampleTyped, QueryCorrelationSamplesWithAnchorResponseTyped } from './types/CorrelationType'; import type { ElectrocardiogramSamplesWithAnchorResponseTyped, ElectrocardiogramSampleTyped } from './types/ElectrocardiogramSample'; import type { HeartbeatSeriesSamplesWithAnchorResponseTyped, HeartbeatSeriesSampleTyped } from './types/HeartbeatSeries'; import type { MedicationDoseEventsWithAnchorResponseTyped, MedicationDoseEventTyped } from './types/Medication'; import type { QuantityTypeIdentifier } from './types/QuantityTypeIdentifier'; import type { StateOfMindSamplesWithAnchorResponseTyped, StateOfMindSampleTyped } from './types/StateOfMind'; import type { QueryWorkoutSamplesWithAnchorResponseTyped, WorkoutProxyTyped } from './types/Workouts'; import getMostRecentCategorySample from './utils/getMostRecentCategorySample'; import getMostRecentQuantitySample from './utils/getMostRecentQuantitySample'; import getMostRecentWorkout from './utils/getMostRecentWorkout'; import getPreferredUnit from './utils/getPreferredUnit'; import { subscribeToCategorySamples } from './utils/subscribeToCategorySamples'; import { subscribeToChanges } from './utils/subscribeToChanges'; import { subscribeToQuantitySamples } from './utils/subscribeToQuantitySamples'; export * from './types'; declare const currentMajorVersionIOS: number; /** * Quantity types that are not available before iOS 17 */ type QuantityTypesIOS17Plus = 'HKQuantityTypeIdentifierCyclingCadence' | 'HKQuantityTypeIdentifierCyclingFunctionalThresholdPower' | 'HKQuantityTypeIdentifierCyclingPower' | 'HKQuantityTypeIdentifierCyclingSpeed' | 'HKQuantityTypeIdentifierPhysicalEffort' | 'HKQuantityTypeIdentifierTimeInDaylight'; /** * Available quantity types for iOS versions before iOS 17 */ export type AvailableQuantityTypesBeforeIOS17 = Exclude; export { getMostRecentCategorySample, getMostRecentQuantitySample, getMostRecentWorkout, getPreferredUnit, subscribeToCategorySamples, subscribeToChanges, subscribeToQuantitySamples, useHealthkitAuthorization, useIsHealthDataAvailable, useMostRecentCategorySample, useMostRecentQuantitySample, useMostRecentWorkout, useSources, useStatisticsForQuantity, useSubscribeToCategorySamples, useSubscribeToChanges, useSubscribeToQuantitySamples, }; /** * Available quantity types for iOS 17 and later (all quantity types) */ export type AvailableQuantityTypesIOS17Plus = QuantityTypeIdentifier; /** * Get available quantity types based on iOS version * @param majorVersionIOS - iOS major version number (defaults to current iOS version) * @returns Available quantity types for the given iOS version */ export type AvailableQuantityTypes = T extends 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 ? AvailableQuantityTypesIOS17Plus : AvailableQuantityTypesBeforeIOS17; type BoundMethod infer TResult ? TResult : never> = (...args: TMethod extends (...args: infer TArgs) => unknown ? TArgs : never) => TReturn; export declare const authorizationStatusFor: (type: import("./types").ObjectTypeIdentifier) => import("./types").AuthorizationStatus; export declare const requestPerObjectReadAuthorization: (typeIdentifier: import("./types").PerObjectTypeIdentifier) => Promise; export declare const disableAllBackgroundDelivery: () => Promise; export declare const disableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier) => Promise; export declare const enableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier, updateFrequency: import("./types").UpdateFrequency) => Promise; export declare const configureBackgroundTypes: (typeIdentifiers: string[], updateFrequency: import("./types").UpdateFrequency) => Promise; export declare const clearBackgroundTypes: () => Promise; export declare const getBiologicalSex: () => import("./types").BiologicalSex; export declare const getBloodType: () => import("./types").BloodType; export declare const getDateOfBirth: () => Date | undefined; export declare const getFitzpatrickSkinType: () => import("./types").FitzpatrickSkinType; export declare const getPreferredUnits: (identifiers: readonly QuantityTypeIdentifier[], forceUpdate?: boolean) => Promise; export declare const getRequestStatusForAuthorization: (toCheck: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise; export declare const getWheelchairUse: () => import("./types").WheelchairUse; export declare const isHealthDataAvailable: () => boolean; export declare const isHealthDataAvailableAsync: () => Promise; export declare const queryCategorySamples: (identifier: T, options: import("./types").QueryOptionsWithSortOrder) => Promise[]>; export declare const queryCategorySamplesWithAnchor: (identifier: T, options: import("./types").QueryOptionsWithAnchor) => Promise>; export declare const queryCorrelationSamples: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; export declare const queryCorrelationSamplesWithAnchor: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; export declare const queryHeartbeatSeriesSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; export declare const queryHeartbeatSeriesSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; export declare const queryElectrocardiogramSamples: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise, Promise>; export declare const queryElectrocardiogramSamplesWithAnchor: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise, Promise>; export declare const queryQuantitySamples: (identifier: T, options: import("./types").QueryOptionsWithSortOrderAndUnit>) => Promise[]>; export declare const queryQuantitySamplesWithAnchor: (identifier: T, options: import("./types").QueryOptionsWithAnchorAndUnit>) => Promise>; export declare const queryStatisticsForQuantity: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions>) => Promise; export declare const queryStatisticsCollectionForQuantity: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions>) => Promise; export declare const queryStatisticsForQuantitySeparateBySource: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions>) => Promise; export declare const queryStatisticsCollectionForQuantitySeparateBySource: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions>) => Promise; export declare const queryWorkoutSamples: BoundMethod<(options: import("./types").WorkoutQueryOptions) => Promise, Promise>; export declare const queryWorkoutSamplesWithAnchor: BoundMethod<(options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise, Promise>; export declare const querySources: (identifier: import("./types").SampleTypeIdentifier, filter?: import("./types").FilterForSamples) => Promise; export declare const requestAuthorization: (toRequest: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise; export declare const deleteObjects: (objectTypeIdentifier: import("./types").SampleTypeIdentifierWriteable, filter: import("./types").FilterForSamples) => Promise; export declare const saveCategorySample: (identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier) => Promise | undefined>; export declare const saveCorrelationSample: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; export declare const saveQuantitySample: (identifier: T, unit: import("./types").UnitForIdentifier, value: number, start: Date, end: Date, metadata?: import("./types").MetadataForQuantityIdentifier) => Promise | undefined>; export declare const saveWorkoutSample: BoundMethod<(workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; export declare const startWatchApp: (workoutConfiguration: import("./types").WorkoutConfiguration) => Promise; export declare const isProtectedDataAvailable: () => boolean; export declare const queryStateOfMindSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; export declare const queryStateOfMindSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; export declare const saveStateOfMindSample: BoundMethod<(date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; export declare const isQuantityCompatibleWithUnit: (identifier: T, unit: import("./types").UnitForIdentifier) => boolean; export declare const isObjectTypeAvailable: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => boolean; export declare const isObjectTypeAvailableAsync: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => Promise; export declare const areObjectTypesAvailable: (objectTypeIdentifiers: readonly import("./types").ObjectTypeIdentifier[]) => Record; export declare const areObjectTypesAvailableAsync: (objectTypeIdentifiers: import("./types").ObjectTypeIdentifier[]) => Promise>; export declare const requestMedicationsAuthorization: () => Promise; export declare const queryMedications: () => Promise; export declare const queryMedicationEvents: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; export declare const queryMedicationEventsWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; export declare const currentAppSource: () => import("./specs/SourceProxy.nitro").SourceProxy; export declare const getBiologicalSexAsync: () => Promise; export declare const getBloodTypeAsync: () => Promise; export declare const getDateOfBirthAsync: () => Promise; export declare const getFitzpatrickSkinTypeAsync: () => Promise; export declare const getWheelchairUseAsync: () => Promise; declare const _default: { authorizationStatusFor: (type: import("./types").ObjectTypeIdentifier) => import("./types").AuthorizationStatus; isObjectTypeAvailable: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => boolean; isObjectTypeAvailableAsync: (objectTypeIdentifier: import("./types").ObjectTypeIdentifier) => Promise; areObjectTypesAvailable: (objectTypeIdentifiers: readonly import("./types").ObjectTypeIdentifier[]) => Record; areObjectTypesAvailableAsync: (objectTypeIdentifiers: import("./types").ObjectTypeIdentifier[]) => Promise>; isQuantityCompatibleWithUnit: (identifier: T, unit: import("./types").UnitForIdentifier) => boolean; configureBackgroundTypes: (typeIdentifiers: string[], updateFrequency: import("./types").UpdateFrequency) => Promise; clearBackgroundTypes: () => Promise; disableAllBackgroundDelivery: () => Promise; disableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier) => Promise; enableBackgroundDelivery: (typeIdentifier: import("./types").ObjectTypeIdentifier, updateFrequency: import("./types").UpdateFrequency) => Promise; getBiologicalSex: () => import("./types").BiologicalSex; getBloodType: () => import("./types").BloodType; getDateOfBirth: () => Date | undefined; getFitzpatrickSkinType: () => import("./types").FitzpatrickSkinType; getBiologicalSexAsync: () => Promise; getBloodTypeAsync: () => Promise; getDateOfBirthAsync: () => Promise; getFitzpatrickSkinTypeAsync: () => Promise; getWheelchairUseAsync: () => Promise; getMostRecentCategorySample: typeof getMostRecentCategorySample; getMostRecentQuantitySample: typeof getMostRecentQuantitySample; getMostRecentWorkout: () => Promise; getPreferredUnits: (identifiers: readonly QuantityTypeIdentifier[], forceUpdate?: boolean) => Promise; getPreferredUnit: (quantityType: T) => Promise>; getRequestStatusForAuthorization: (toCheck: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise; getWheelchairUse: () => import("./types").WheelchairUse; isHealthDataAvailable: () => boolean; isHealthDataAvailableAsync: () => Promise; queryCategorySamples: (identifier: T, options: import("./types").QueryOptionsWithSortOrder) => Promise[]>; queryCategorySamplesWithAnchor: (identifier: T, options: import("./types").QueryOptionsWithAnchor) => Promise>; queryCorrelationSamples: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; queryCorrelationSamplesWithAnchor: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; queryHeartbeatSeriesSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; queryHeartbeatSeriesSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; queryElectrocardiogramSamples: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithSortOrder) => Promise, Promise>; queryElectrocardiogramSamplesWithAnchor: BoundMethod<(options: import("./types/ElectrocardiogramSample").ECGQueryOptionsWithAnchor) => Promise, Promise>; queryQuantitySamples: (identifier: T, options: import("./types").QueryOptionsWithSortOrderAndUnit>) => Promise[]>; queryQuantitySamplesWithAnchor: (identifier: T, options: import("./types").QueryOptionsWithAnchorAndUnit>) => Promise>; queryStatisticsForQuantity: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions>) => Promise; queryStatisticsCollectionForQuantity: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions>) => Promise; queryStatisticsForQuantitySeparateBySource: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], options?: import("./types").StatisticsQueryOptions>) => Promise; queryStatisticsCollectionForQuantitySeparateBySource: (identifier: T, statistics: readonly import("./types").StatisticsOptions[], anchorDate: Date, intervalComponents: import("./types").IntervalComponents, options?: import("./types").StatisticsQueryOptions>) => Promise; queryWorkoutSamples: BoundMethod<(options: import("./types").WorkoutQueryOptions) => Promise, Promise>; queryWorkoutSamplesWithAnchor: BoundMethod<(options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise, Promise>; querySources: (identifier: import("./types").SampleTypeIdentifier, filter?: import("./types").FilterForSamples) => Promise; requestAuthorization: (toRequest: import("./specs/CoreModule.nitro").AuthDataTypes) => Promise; requestPerObjectReadAuthorization: (typeIdentifier: import("./types").PerObjectTypeIdentifier) => Promise; deleteObjects: (objectTypeIdentifier: import("./types").SampleTypeIdentifierWriteable, filter: import("./types").FilterForSamples) => Promise; saveCategorySample: (identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata?: import("./types").MetadataForCategoryIdentifier) => Promise | undefined>; saveCorrelationSample: BoundMethod<(typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; saveQuantitySample: (identifier: T, unit: import("./types").UnitForIdentifier, value: number, start: Date, end: Date, metadata?: import("./types").MetadataForQuantityIdentifier) => Promise | undefined>; saveWorkoutSample: BoundMethod<(workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals?: import("./types").WorkoutTotals, metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; subscribeToChanges: (identifier: import("./types").SampleTypeIdentifier, callback: (args: import("./types").OnChangeCallbackArgs) => void) => { remove: () => boolean; }; subscribeToQuantitySamples: (identifier: TIdentifier, callback: (args: import("./types").OnQuantitySamplesCallback) => void, after?: Date) => { remove: () => boolean; }; startWatchApp: (workoutConfiguration: import("./types").WorkoutConfiguration) => Promise; isProtectedDataAvailable: () => boolean; queryStateOfMindSamples: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; queryStateOfMindSamplesWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; saveStateOfMindSample: BoundMethod<(date: Date, kind: import("./types").StateOfMindKind, valence: number, labels: readonly import("./types").StateOfMindLabel[], associations: readonly import("./types").StateOfMindAssociation[], metadata?: import("react-native-nitro-modules").AnyMap) => Promise, Promise>; requestMedicationsAuthorization: () => Promise; currentAppSource: () => import("./specs/SourceProxy.nitro").SourceProxy; queryMedicationEventsWithAnchor: BoundMethod<(options: import("./types").QueryOptionsWithAnchor) => Promise, Promise>; queryMedicationEvents: BoundMethod<(options: import("./types").QueryOptionsWithSortOrder) => Promise, Promise>; queryMedications: () => Promise; subscribeToCategorySamples: typeof subscribeToCategorySamples; useSubscribeToCategorySamples: typeof useSubscribeToCategorySamples; useMostRecentCategorySample: typeof useMostRecentCategorySample; useMostRecentQuantitySample: typeof useMostRecentQuantitySample; useMostRecentWorkout: typeof useMostRecentWorkout; useSubscribeToChanges: typeof useSubscribeToChanges; useSubscribeToQuantitySamples: typeof useSubscribeToQuantitySamples; useHealthkitAuthorization: ({ toWrite, toRead, }: { toRead?: readonly import("./types").ObjectTypeIdentifier[]; toWrite?: readonly import("./types").SampleTypeIdentifierWriteable[]; }) => readonly [import("./types").AuthorizationRequestStatus | null, () => Promise]; useIsHealthDataAvailable: () => boolean | null; useSources: typeof useSources; useStatisticsForQuantity: typeof useStatisticsForQuantity; }; export default _default;