react-native-healthkit-bridge
Version:
A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries
74 lines (73 loc) • 3.29 kB
TypeScript
export declare const HEALTHKIT_CONFIG: {
readonly DEFAULT_DAYS: 7;
readonly MOCK_DELAY: 1000;
readonly AUTHORIZATION_CHANCE: 0.9;
readonly CACHE_TTL: 300000;
readonly CACHE_MAX_SIZE: 100;
readonly CACHE_ENABLED: true;
readonly MAX_RETRIES: 3;
readonly RETRY_DELAY: 1000;
readonly QUERY_TIMEOUT: 30000;
readonly METRICS_ENABLED: true;
readonly METRICS_RETENTION: number;
readonly LOGGING_ENABLED: true;
readonly LOG_LEVEL: "debug" | "info" | "warn" | "error";
readonly CATEGORIES: {
readonly ACTIVITY: "activity";
readonly HEART: "heart";
readonly BODY: "body";
readonly NUTRITION: "nutrition";
readonly SLEEP: "sleep";
readonly MINDFULNESS: "mindfulness";
readonly WORKOUT: "workout";
readonly HEARING: "hearing";
};
readonly DEFAULT_TYPES: {
readonly QUANTITY: readonly ["stepCount", "distanceWalkingRunning", "activeEnergyBurned", "heartRate", "bodyMass", "height", "bloodPressureSystolic", "bloodPressureDiastolic", "bloodGlucose", "oxygenSaturation"];
readonly CATEGORY: readonly ["sleepAnalysis", "mindfulSession", "workoutType"];
readonly SPECIAL: readonly ["workout", "audiogram", "electrocardiogram"];
};
readonly DEFAULT_UNITS: {
readonly stepCount: "count";
readonly distanceWalkingRunning: "m";
readonly activeEnergyBurned: "kcal";
readonly heartRate: "count/min";
readonly bodyMass: "kg";
readonly height: "m";
readonly bloodPressureSystolic: "mmHg";
readonly bloodPressureDiastolic: "mmHg";
readonly bloodGlucose: "mg/dL";
readonly oxygenSaturation: "%";
readonly flightsClimbed: "count";
readonly appleExerciseTime: "min";
};
readonly VALIDATION: {
readonly MAX_DAYS: 365;
readonly MIN_DAYS: 1;
readonly MAX_DATE_RANGE: number;
readonly MIN_DATE_RANGE: number;
readonly MAX_IDENTIFIER_LENGTH: 100;
readonly MAX_BATCH_SIZE: 50;
};
readonly ERROR_CODES: {
readonly UNAUTHORIZED: "HEALTHKIT_UNAUTHORIZED";
readonly NOT_AVAILABLE: "HEALTHKIT_NOT_AVAILABLE";
readonly INVALID_PARAMETER: "HEALTHKIT_INVALID_PARAMETER";
readonly QUERY_FAILED: "HEALTHKIT_QUERY_FAILED";
readonly TIMEOUT: "HEALTHKIT_TIMEOUT";
readonly NETWORK_ERROR: "HEALTHKIT_NETWORK_ERROR";
readonly UNKNOWN_ERROR: "HEALTHKIT_UNKNOWN_ERROR";
};
readonly ERROR_MESSAGES: {
readonly UNAUTHORIZED: "Access to HealthKit not authorized";
readonly NOT_AVAILABLE: "HealthKit is not available on this platform";
readonly INVALID_PARAMETER: "Invalid parameter provided";
readonly QUERY_FAILED: "Failed to execute query on HealthKit";
readonly TIMEOUT: "Timeout executing operation";
readonly NETWORK_ERROR: "Network error accessing HealthKit";
readonly UNKNOWN_ERROR: "Unknown error occurred";
};
};
export type HealthKitConfig = typeof HEALTHKIT_CONFIG;
export type HealthKitCategory = typeof HEALTHKIT_CONFIG.CATEGORIES[keyof typeof HEALTHKIT_CONFIG.CATEGORIES];
export type HealthKitErrorCode = typeof HEALTHKIT_CONFIG.ERROR_CODES[keyof typeof HEALTHKIT_CONFIG.ERROR_CODES];