react-native-healthkit-bridge
Version:
A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries
29 lines (28 loc) • 1.66 kB
text/typescript
import {
HealthKitTypeInfo
} from '../../domain/repositories/HealthKitRepository';
import {
HealthKitAuthorizationStatusItem
} from '../../../core/types/HealthKitTypes';
import {
HealthKitSample,
HealthKitCategorySample,
HealthKitWorkout
} from '../../domain/entities/HealthKitSample';
export interface HealthKitDataSource {
requestAuthorization(): Promise<boolean>;
requestSelectiveAuthorization(readTypes: string[], writeTypes?: string[]): Promise<boolean>;
getAuthorizationStatus(identifiers: string[]): Promise<HealthKitAuthorizationStatusItem[]>;
getAvailableTypes(): Promise<HealthKitTypeInfo[]>;
getTypeInfo(identifier: string): Promise<HealthKitTypeInfo>;
getQuantitySamplesForDays(identifier: string, unit: string, days: number): Promise<HealthKitSample[]>;
getCategorySamplesForDays(identifier: string, days: number): Promise<HealthKitCategorySample[]>;
getWorkoutsForDays(days: number): Promise<HealthKitWorkout[]>;
getQuantitySamplesForRange(identifier: string, unit: string, startDate: string, endDate: string): Promise<HealthKitSample[]>;
getCategorySamplesForRange(identifier: string, startDate: string, endDate: string): Promise<HealthKitCategorySample[]>;
getWorkoutsForRange(startDate: string, endDate: string): Promise<HealthKitWorkout[]>;
getQuantitySamplesWithRange(identifier: string, unit: string, startDate: number, endDate: number): Promise<number[]>;
getCategorySamplesWithRange(identifier: string, startDate: number, endDate: number): Promise<HealthKitCategorySample[]>;
getWorkoutsWithRange(startDate: number, endDate: number): Promise<HealthKitWorkout[]>;
isAvailable(): boolean;
}