import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; import type { HealthConnectRecord, Permission } from './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; initialize(providerPackageName: string): Promise; openHealthConnectSettings: () => void; openHealthConnectDataManagement: (providerPackageName?: string) => void; requestPermission( permissions: Permission[], providerPackageName: string ): Promise; getGrantedPermissions(): Promise; revokeAllPermissions(): Promise; insertRecords(records: HealthConnectRecord[]): Promise; readRecords( recordType: string, options: ReadRecordsOptions ): Promise>; readRecord(recordType: string, recordId: string): Promise<{}>; getChangesToken(recordType: string): Promise; getChanges(recordType: string, token: string): Promise<{}>; aggregateRecord(record: { recordType: string; startTime: string; endTime: string; }): Promise<{}>; deleteRecordsByUuids( recordType: string, recordIdsList: string[], clientRecordIdsList: string[] ): Promise; deleteRecordsByTimeRange( recordType: string, timeRangeFilter: Object ): Promise; } export default TurboModuleRegistry.getEnforcing('HealthConnect');