UNPKG

react-native-health-connect

Version:

React native library for health connect (Android only)

73 lines (69 loc) 2.24 kB
import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; import type { HealthConnectRecord, Permission, WriteExerciseRoutePermission, ReadHealthDataHistoryPermission, } from './types'; import type { ExerciseRoute } from './types/base.types'; type ReadRecordsOptions = { startTime: string; endTime: string; dataOriginFilter?: string[]; ascendingOrder?: boolean; pageSize?: number; pageToken?: string; }; //@TODO: Fix and refactor types when codegen starts supporting type imports and generics export interface Spec extends TurboModule { getSdkStatus(providerPackageName: string): Promise<number>; initialize(providerPackageName: string): Promise<boolean>; openHealthConnectSettings: () => void; openHealthConnectDataManagement: (providerPackageName?: string) => void; requestPermission( permissions: ( | Permission | WriteExerciseRoutePermission | ReadHealthDataHistoryPermission )[] ): Promise<Permission[]>; requestExerciseRoute(recordId: string): Promise<ExerciseRoute>; getGrantedPermissions(): Promise<Permission[]>; revokeAllPermissions(): Promise<void>; insertRecords(records: HealthConnectRecord[]): Promise<string[]>; readRecords(recordType: string, options: ReadRecordsOptions): Promise<{}>; readRecord(recordType: string, recordId: string): Promise<{}>; aggregateRecord(record: { recordType: string; startTime: string; endTime: string; }): Promise<{}>; aggregateGroupByDuration(record: { recordType: string; startTime: string; endTime: string; timeRangeSlicer: Object; }): Promise<[]>; aggregateGroupByPeriod(record: { recordType: string; startTime: string; endTime: string; timeRangeSlicer: Object; }): Promise<[]>; getChanges(request: { changesToken?: string; recordTypes?: string[]; dataOriginFilters?: string[]; }): Promise<{}>; deleteRecordsByUuids( recordType: string, recordIdsList: string[], clientRecordIdsList: string[] ): Promise<void>; deleteRecordsByTimeRange( recordType: string, timeRangeFilter: Object ): Promise<void>; } export default TurboModuleRegistry.getEnforcing<Spec>('HealthConnect');