UNPKG

react-native-healthkit-bridge

Version:

A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries

59 lines (48 loc) 1.83 kB
import { HealthKitQuantitySample, HealthKitCategorySample, HealthKitWorkout } from '../entities/HealthKitSample'; import { HealthKitIdentifier, HealthKitUnit, DateRange } from '../value-objects/HealthKitIdentifier'; export interface HealthKitRepository { // Autorização requestAuthorization(): Promise<boolean>; requestSelectiveAuthorization(identifiers: HealthKitIdentifier[]): Promise<boolean>; getAuthorizationStatus(identifiers: HealthKitIdentifier[]): Promise<AuthorizationStatus[]>; // Consultas por período getQuantitySamples( identifier: HealthKitIdentifier, unit: HealthKitUnit, dateRange: DateRange ): Promise<HealthKitQuantitySample[]>; getCategorySamples( identifier: HealthKitIdentifier, dateRange: DateRange ): Promise<HealthKitCategorySample[]>; getWorkouts(dateRange: DateRange): Promise<HealthKitWorkout[]>; // Consultas por dias (conveniência) getQuantitySamplesForDays( identifier: HealthKitIdentifier, unit: HealthKitUnit, days: number ): Promise<HealthKitQuantitySample[]>; getCategorySamplesForDays( identifier: HealthKitIdentifier, days: number ): Promise<HealthKitCategorySample[]>; getWorkoutsForDays(days: number): Promise<HealthKitWorkout[]>; // Verificação de disponibilidade isAvailable(): boolean; } export interface AuthorizationStatus { readonly identifier: string; readonly status: 'notDetermined' | 'sharingDenied' | 'sharingAuthorized' | 'unknown'; } export interface HealthKitTypeInfo { readonly identifier: string; readonly name: string; readonly description: string; readonly category: string; readonly type: string; } export interface HealthKitRepositoryConfig { readonly defaultDays?: number; readonly enableLogging?: boolean; readonly retryAttempts?: number; }